DIY контроллер светодиодного света на кухне, Автоматический выключатель на ардуино

Добавить в Telegram Добавить в Вконтакте Добавить в Одноклассники
Страницы: 1 2 3  ОТВЕТИТЬ НОВАЯ ТЕМА
RomanRV 24 авг. 2015 г. в 17:45
Шутник  •  На сайте 11 лет
Сообщений: 85
66
Всем привет. Мой первый пост. Прошу не ломать. Будет 14 фот.

Озадачился некоторое время назад подсветкой рабочей зоны на кухне. С выбором светодиодной ленты и профиля сложностей нет, выбор богат на разный вкус и кошелек.

Выбрал угловой, светит под 45градусов. Лента стандартная, холодный белый 60 диодов на метр. Единственное, из эстетических соображений крепил профиль не на штатное крепление (внешняя скоба), а саморезами изнутри до установки ленты.

С выключателем же не все так легко. Самый бюджетный вариант более умного, чем простой тумблер, контроллера нашёлся за 600р. - сенсорный просто вкл/выкл. По отзывам - глючный и присутствует необходимость постоянно трогать руками профиль, а руки на кухне не всегда чистые и целый ритуал (помыть, обсушить, выключить/выключить свет) для простого действия как-то сложно слишком. Следующий уровень - дистанционно управляемые контроллеры, там ценник от 2000, примерно. И не дёшево, и не совсем удобно, т.к. пультов ДУ уже достаточно, новых не хочется.

Включаемся и начинаем ваять контроллер под себя.
1. Мне больше импонирует включение света в рабочей зоне тогда, когда возле неё кто-то есть -> датчик движения тут само то.
2. Включение и выключение света должно быть плавным и гармоничным, чтобы не слепил, когда в темноте подходишь -> нужен умный управлятор.

Ардуино подходит тут как нельзя лучше, на мой взгляд, т.к. являет собой цельный, готовый к работе модуль, а с программированием справится любой, имеющий минимальный опыт общения с бейсиком. А можно просто залить готовый скетч совсем без программирования. Понадобится небольшое умение держать в руках паяльник.
Про ардуино в целом и как загрузить в него нашу программу читаем здесь , сложностей нуль. Если коротко - установить среду разработки, драйвера на программатор, скопировать текст кода в окно программы, воткнуть ардуину в программатор, а программатор в юсб. В программе выбрать нужную плату и сом-порт. Нажать загрузить и подождать 40секунд.

Итак, начинаем создавать себе светового миньона )). Схема подключения такая:


P.S. Пока готовил пост, увидел похожую тему про монтаж ленты на кухне ))) Будем считать мою тему продолжением.

DIY контроллер светодиодного света на кухне
Yap 15.04.2026 - 21:23
Продам слона  •  На сайте 21 год
Контроллер и датчик движения можно купить на ебеях, а можно поискать предприимчивого гражданина в своём регионе, у которого уже все есть. В моём случае - второй вариант.
1. Мозг - Arduino Pro Mini 168 - 160р.
2. Пищеварительная система: обеспечитель правильного питания - линейный стабилизатор TS7809, сделает стабильные 9В из любого 11-30В, в моем случае - из 12В.
3. Глаз - PIR-sensor. Пассивный датчик движения, выдаёт логическую 1 при появлении в поле зрения более яркого в ИК диапазоне объекта на фоне фона )). Т.е. если стоять рядом с ним и двигать рукой - срабатывания не чёткие, но когда входишь в поле зрения - реакция 100% . На типовом датчике есть два регулятора. Чувствительность нужно выставить на максимум, время задержки после срабатывания - на минимум.
4. Скелет - корпус для РЭА любой, подходящий по размерам. Около 150р.
5. Еще скелет - Макетная плата, габаритами сравнимая с выбранным корпусом.
6. Мышцы - микросхема uln2003. Управляет мощными потоками энергии согласно слабым командам мозга. Содержит 7 портов, каждый из которых способен протащить 0.5А. Можно подключать параллельно для увеличения максимального тока. Моя лента потребляет около 5Вт на метр. Одно плечо 1,8м (9Вт), второе 1,2м (6Вт). Вспоминаем школьную физику и считаем, что плечо 1 потребляет (9Вт/12В) 0,75А, второе (6Вт/12В) 0,5А. Параллелим 4 порта на большое плечо и 3 на малое, чтобы работала не одна мышца с перенапряжением, а все сразу по чуть-чуть.
7. Нервы - шлейф. Понадобится 4-х жильный, в него легко трансформируется 6-и или 8-и жильный ))
8. Суставы. Любые доступные разъёмы. Я выбрал схему, при которой основное питание приходит в промежуточную платку, от которой отходят три разъёма: один шлейфом в микроконтроллер, два в разные стороны на светодиодные ленты.
Цена кучи мелочевки в ближайшем электронном лобазе около 150р.
Итого предварительно:
-контроллер 160р
-датчик 170р.
-корпус 150р.
-все остальное 150р.
Итого около 600-700р. - минимальная цена глючного промышленного изделия, которое ещё надо трогать руками для активации.
Не считаю расходники для пайки, паяльник )) и программатор для ардуино про мини (около 200р), т.к. это все многоразовое.

DIY контроллер светодиодного света на кухне
Обрезаем макетку в размер корпуса.

DIY контроллер светодиодного света на кухне
Любым доступным способом делаем отверстие в крышке корпуса под линзу датчика. Там около 23мм. Я наплавил паяльником дырок по окружности, выломал центр и шарошкой в дрели довёл диаметр до требуемого.

DIY контроллер светодиодного света на кухне
Примеряем детальки

DIY контроллер светодиодного света на кухне
Производим монтаж


DIY контроллер светодиодного света на кухне
По окончании не толерантно избавляемся от чёрного - моём плату ацетоном.

DIY контроллер светодиодного света на кухне
Примеряем модули в посадочные места, паяем провода датчика и окончательный внешний вид нашего миньона.

DIY контроллер светодиодного света на кухне
Собираем разветвитель и заливаем его термосоплями из пистолета. Т.к. этот модуль будет болтаться в зашкафном пространстве, к нему есть три основных требования - механическая прочность, надёжная изоляция мест соединения проводников, небольшие габариты. Термоклей обеспечивает два, прочность за счет текстолита макетной платы.

Приступаем к программированию. Логику заложил такую:
1. При срабатывании датчика ленты загораются с нарастанием яркости от 0 до 100%, причем малое плечо загорается чуть позже, и догоняет большое к концу "розжига".
2. После этого держим яркость обоих лент 100% 3 минуты, в течение которых слушаем датчик.
- Если движения не было - считаем, что все ушли и плавно гасим оба плеча.
- Если произошло хоть одно срабатывание датчика - после окончания 3 минутного интервала запускаем его снова. Время пока тестовое, посмотрим по удобству, добавить не проблема :)
3. Если в момент плавного гашения света сработает датчик - плавно возвращаем яркость в максимум.

Вот код, его можно скопировать в среду Arduino IDE и залить в контроллер. прошу прощения, не знаю, как убрать под спойлер.
Код

#define big_led 3       // пин большой ленты
 #define small_led 6    // пин малой ленты
#define senspin 10,     // пин датчика движения
 #define statled 13     // встроенный светодиод для контроля
#define pause 500
  int stat=0;          // набросаем глобальных переменных
  boolean sens=0;
  int I=0;


void setup (){
 pinMode (big_led, OUTPUT);    // конфигурируем пины
 pinMode (small_led, OUTPUT);
 pinMode (statled, OUTPUT);
 pinMode (senspin,INPUT);
 Serial.begin(9600);           //связь по сериал для отладки
 digitalWrite (big_led, LOW);  // устанавливаем ленты в 0
 digitalWrite (small_led, LOW);

}
void loop(){                    // основной цикл
 sens=digitalRead(senspin);
 digitalWrite(statled, sens);  //встроенный светодиод горит, если есть движение
Serial.print("Motion Sensor: "); Serial.print(sens);
Serial.print("/ Mode: "); Serial.println(stat); // отладочная информация
  if (sens==1 && stat==0) stat=2; //
  if (sens==1 && stat==4) stat=2;
  if (I!=0) restart(I);
 
 switch (stat){ // выбор следующего действия (горит,вкл,выкл)
     case 0: digitalWrite (big_led,LOW);digitalWrite (small_led,LOW);  break;
     case 1: looking(); break;
     case 2: led_on(); break;
     case 4: led_off(); break;
 }
 
 
}

void led_on(){                   // плавно красиво включаем ленты по очереди
int i=0; int i2=0;
for (int i=0; i <=255; i++){
 analogWrite (big_led,i);
 if (i>50) i2=i2+2;
 if (i2>255) i2=255;
analogWrite (small_led,i2);
delay (10);
stat=1;
}
}

void led_off(){                 // плавно гасим свет
 for (int i=255; i >= 0; i--){
     analogWrite(big_led, i);
     analogWrite(small_led, i);
     sens=digitalRead(senspin);
     if (sens==1) {I=i;break;}
     delay(10);}
 stat=0;
}

void looking(){                 // пока свет горит слушаем датчик для
 int Q=0;                      // определения присутствия
 for (int C=0; C<150;C++){
   Q=Q+digitalRead(senspin);delay(200);}
   if (Q!=0) stat=1;
   else stat=4;
}
   
void restart(int i){            // если свет начал гаснуть и случилось движение
do                              // плавно выводим яркость в максимал
{analogWrite (big_led,i);
analogWrite (small_led,i);
i++;
delay (10);}
while (i<=255);
I=0;
stat=1;
}


DIY контроллер светодиодного света на кухне
Соединяем проводочки, подаем питание и... Сжигаем к фигам контроллер с минипироэффектом ))) Где-то напутал с монтажом, придется переделать. ((

DIY контроллер светодиодного света на кухне
Тихонько матерясь отпиливаем новый кусок макетной платы, более вдумчиво собираем пазл из компонентов В результате имеем значительное уменьшение количества проводов. И не спрашивайте даже, почему нельзя было так сделать изначально )))

DIY контроллер светодиодного света на кухне
Также переделываем выводы датчика, разъём от старой сервы - идеально )).

DIY контроллер светодиодного света на кухне
Проложил слой изоленты, к сборке готов.

DIY контроллер светодиодного света на кухне
Вот так расположился пока датчик в кухне. Выше головы, заходя в кухню практически не бросается в глаза. И пара видео с тестов. Интервал гашения пока установлен 2 секунды только ради отладки. В представленном коде уже нормальный 3 минутный интервал.



У меня все, пинайте )).

DIY контроллер светодиодного света на кухне
Все комментарии:
blackbot 24 авг. 2015 г. в 17:59
Ярила  •  На сайте 14 лет
9
рукожоп =)

а насрал термоклея, прям как маститый дядюшка Ляо
fisherman36 24 авг. 2015 г. в 18:00
Хохмач  •  На сайте 13 лет
3
тема интересная, но с таким количеством технических терминов больше смахивает на статью из научного журнала, ни хрена не понял cry.gif но всё равно, за труды позеленил
paruram 24 авг. 2015 г. в 18:01
Приколист  •  На сайте 13 лет
1
А как для rgb ленты придумать? А так молодец. Положил в закладки.
RomanRV автор 24 авг. 2015 г. в 18:03
Шутник  •  На сайте 11 лет
1
Ну так! У них научился ))
Nord30 24 авг. 2015 г. в 18:04
Весельчак  •  На сайте 11 лет
0
Красиво
RomanRV автор 24 авг. 2015 г. в 18:05
Шутник  •  На сайте 11 лет
0
Цитата (paruram @ 24.08.2015 - 21:01)
А как для rgb ленты придумать? А так молодец. Положил в закладки.

с rgb так же, только каналов больше нужно, на каждый отдельно. Одной uln2003 уже не хватит, нужно больше.
kazakovy 24 авг. 2015 г. в 18:08
хохмач  •  На сайте 12 лет
6
Я конечно в начале хотел такое... Потом прочитал до середины, понял , не хочу, точнее не смогу. Пойду учить жену выключать кнопку т. к. включать уже научил.
Ivkin 24 авг. 2015 г. в 18:08
Юморист  •  На сайте 12 лет
1
За Мозг ценник тока видимо с ошибкой, я мин за 990 увидел
Konyara 24 авг. 2015 г. в 18:09
Приколист  •  На сайте 12 лет
0
А готовые не продают? А то чет сложновато! Программные коды всякие...
RomanRV автор 24 авг. 2015 г. в 18:16
Шутник  •  На сайте 11 лет
0
Цитата (Ivkin @ 24.08.2015 - 21:08)
За Мозг ценник тока видимо с ошибкой, я мин за 990 увидел

Не, все правильно
http://ru.aliexpress.com/item/Free-Shippin...2340811597.html

Добавлено в 18:17
Цитата (Konyara @ 24.08.2015 - 21:09)
А готовые не продают? А то чет сложновато! Программные коды всякие...

Все продают ;)

Это сообщение отредактировал RomanRV - 24 авг. 2015 г. в 18:16
TSX 24 авг. 2015 г. в 18:18
Весельчак  •  На сайте 17 лет
3
Вместо ULN-ки лучше полевые транзисторы использовать (MOSFET-ы) с простым драйвером на биполярном транзисторе. Чуть сложнее схема, зато не греется, и нагрузку можно посолиднее ставить (например, еще кусок ленты добавить).
P.S. Можно также поставить микросхему драйвера затворов (IR4427 или аналог)

Это сообщение отредактировал TSX - 24 авг. 2015 г. в 18:21
Понравился пост? Ещё больше интересного в ЯП-Телеграм и ЯП-Max!
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии. Авторизуйтесь, пожалуйста, или зарегистрируйтесь, если не зарегистрированы.
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) Просмотры темы: 19 461
0 Пользователей:
Страницы: 1 2 3  ОТВЕТИТЬ НОВАЯ ТЕМА

 
 

Активные темы



Наверх