Управление уличным освещением.
- Войдите на сайт для отправки комментариев
Пт, 18/11/2016 - 13:29
Добрый день!
Прошу помочь в моем проекте управления уличным освещением. Суть задачи очень проста. Подключаю ардуинку нано, реле, фоторезистор и лампу. Заливаю примитивный скечь:
const int photoPin = A5; const int relPin = 3; void setup() { pinMode(photoPin, INPUT); pinMode(relPin, OUTPUT); } void loop() { if( analogRead(photoPin) < 200 ) digitalWrite(relPin, HIGH); if( analogRead(photoPin) > 600 ) digitalWrite(relPin, LOW); }
Все работает, но не хватает ума как сделать защиту от ложных срабатываний. Когда проезжающие машины освещают фарами двор, свет отключается. И так периодически в течении всего вечера. Подскажите как доработать код, чтобы избежать этого. Зараее благодарю.
Почитать тему "мигаем светодиодом без delay()", ввести в свой цикл loop() понятие "период опроса фотодатчика" = 60 секунд, например, а не со скоростью работы процессора, как это сейчас сделано у Вас. После этого вводим еще одну переменную, в которую кладем предыдущее состояния датчика и условием включения будет "если сейчас светло и в предыдущий раз было светло"...
А можно просто соорудить непрозрачный цилиндрик на фотодатчике и ориентировать выше света фар - чтобы датчик не засвечивали. :) Но паузу между опросами в цикле loop() - все равно надо поставить: чтобы не изнашивался так сильно.
http://iopa4.narod.ru/page10.html
заводите статическую переменную, значение которой меняете при изменении освещенности (с учетом вашего гистерезиса).
решение о реальности события принимаете, если освещенность осталась неизменной в течении защитного интервала времени (например 10-20секунд.)
Как у программиста у меня первая пришедшая на ум мысль, естественно, ввести задержку срабатывания.
Но была высказана, на мой взгляд, и более интересная мысль: направить датчик освещенности в небо.
Спасибо всем за коменты.
Насчет цилиндрика думал, но если его делать очень узким, то в нем постоянно темно и освещенность меняется плохо.
Насчет направить не небо, не вариант. Очень скоро на него осядет пыль и грязь и свет будет постоянно гореть. Нужно будет регулярно лазить и протирать его. Тоже не очень удобно.
Попробую сделать здержку в цикле. Посмотрим что получится.
Ещё раз спасибо.