Всем привет. Решил я сделать светодиодную подсветку к себе в аквариум, да не просто подсветку, а чтобы сама плавно включалась и выключалась в течении суток. Программы писать совсем не умею, поэтому хотел просто использовать пример Fade, и добавить задержки. например как только подается питание на плату, плавно свет плавно включается, ждет 15 часов, плавно выключается, через 9 часов опять плавно включается.. Но куда не пытался вставить delay в код - не получил желаемого результата.. Для вас это дело двух минут, объясните пожалуйста, что нет так делаю?
где ваш код? Тут принято помогать, а не давать готовое P.S. лучше бы добавить RTC (часы реального времени),хотя бы самые дешевые, это даст независимость расписания от пропадания питания.
Использую Arduino Uno и ProMini. Так же есть модуль RTCds1307, но я с ним пока не работал. Хотел сначала что-то попроще. Вот мой "код" int led = 9; int brightness = 0; int fadeAmount = 3; void setup() { pinMode(led, OUTPUT); } void loop() { analogWrite(led, brightness); while(brightness<=200){ brightness = brightness + fadeAmount; } delay(900000); while(brightness>0) { brightness = fadeAmount = -fadeAmount; } delay(480000); }
Ну хотя бы так... А как планируется подключать светодиодную ленту\лампу? Код (C++): int led = 9; int brightness = 0; int fadeAmount = 3; void setup() { pinMode(led, OUTPUT); } void loop() { while(brightness<=200){ analogWrite(led, brightness); brightness = brightness + fadeAmount; } delay(900000); while(brightness>0) { analogWrite(led, brightness); brightness = fadeAmount = -fadeAmount; } delay(480000); }
Попробовал ваш код. Чтобы не ждать 15 часов - сделал задержку 5 сек. лента теперь моргает каждые десять 10 секунд. При этом все остальное время еле еле горит. Подключаю через транзистор КТ815 к БП 12V
Нет, не так. Примерно вот так: Код (C++): int led = 9; int brightness = 0; int fadeAmount = 3; int time_delay=500; void setup() { pinMode(led, OUTPUT); } void loop() { while(brightness<=200){ analogWrite(led, brightness); brightness = brightness + fadeAmount; delay(time_delay); } delay(900000); while(brightness>0) { analogWrite(led, brightness); brightness = brightness - fadeAmount; delay(time_delay); } delay(480000); }
Отлично! Все работает как надо! Спасибо большое! НО! Есть ода проблемка. В момент, когда якобы ночь(delay 480000) светодиоды еле еле горят, хотя не должны совсем. Что с этим можно сделать? Все собрано по этой схеме: только без кнопки и от 12V
Здесь принято благодарить ссылочкой "мне нравится". Перед delay(480000); добавьте analogWrite(led, 0);