Световой будильник с имитацией восхода солнца

Решил сделать световой будильник с имитацией восхода солнца. Устройство очень простое и регулировки особо не требует.

Программа в ардуино настроена так, что при включении питания идет отсчет 4 часов ожидания, затем 4 часа плавного нарастания света и 1 час светит в полную яркость и цикл повторяется через 19 часов.

Перед тем как лечь спать надо включить блок питания в розетку и отсчет пошел. Для переноса времени пораньше или попозже необходимо включить блок питания соответственно пораньше или попозже. Добавив в систему розетку с таймером за 550р получим почти полноценный будильник с имитацией восхода солнца.

Компоненты

Ардуино nano – 1шт

ШИМ регулятор – 3шт

Светодиодная лента RGB – 2м

алюминиевый профиль с матовой крышкой – 2м, для крепления ленты

Блок питания 12В 3А – 1шт

преобразователь для питания ардуино – 12В в 5В

Коробка распаячная 1шт.

Паяем на монтажную плату ардуино, питание через преобразователь. Паяем на монтажную плату 3 ШИМ регулятора. Подключаем 12В с блока питания на выходные контакты ШИМ регулятора и на преобразователь питания ардуино. Теперь соединяем контакты ардуино 3,5,6 с входами ШИМ регуляторов в соответствии с цветами диодов. Выходы ШИМ регуляторов подключаем к светодиодной ленте.

Теперь подключаем светодиодную ленту к каждому ШИМ регулятору свой цвет.

Процесс наладки и проверки.

Цвета регулируются в самом скетче для ардуино.

int led_pinb=3;// пин подключения
int led_pinr=5;
int led_ping=6;
int bv=0;// начальный уровень яркости
int rv=0;
int gv=0;
int b1=1; // шаг нарастания яркости
int r1=1;
int g1=1;
int t1=1;

void setup() {
//Serial.begin(9600);
pinMode(led_pinb, OUTPUT); // выходы дл управления регуляторами ШИМ
pinMode(led_pinr, OUTPUT);
pinMode(led_ping, OUTPUT);
}

void loop() {
if(t1==1){delay(14400000);} // ждем 4 часа до начала нарастания света
t1=2;
analogWrite(led_pinb, bv);// плавное нарастание света в течении 4 часов желтый цвет
analogWrite(led_pinr, rv);
analogWrite(led_ping, gv);
//bv=bv+b1; // для желтого цвета синий не нужен
rv=rv+r1;
gv=rv*0.3; // для желтого цвета зеленого понадобилось 30%
if(rv==255)
{
analogWrite(led_pinb, 255);
analogWrite(led_ping, 255);
delay(3600000); // светим в полную яркости 1 час
bv=0;
rv=0;
gv=0;
analogWrite(led_pinb, bv);// тушим светильник
analogWrite(led_pinr, rv);
analogWrite(led_ping, gv);
delay(68343530); //ждем 19 часов до следующего цикла
}
delay(56470); //
}

Views All Time
Views All Time
387
Views Today
Views Today
1
0

Автор публикации

не в сети 2 дня

koordinator

0
Комментарии: 2Публикации: 230Регистрация: 02-12-2017

Оставьте комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Авторизация
*
*
Генерация пароля