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

[ Версия для печати ]
Добавить в Telegram Добавить в Twitter Добавить в Вконтакте Добавить в Одноклассники
Страницы: (3) [1] 2 3   К последнему непрочитанному [ ОТВЕТИТЬ ] [ НОВАЯ ТЕМА ]
RomanRV
24.08.2015 - 17:45
Статус: Offline


Шутник

Регистрация: 6.09.14
Сообщений: 85
66
Всем привет. Мой первый пост. Прошу не ломать. Будет 14 фот.

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

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

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

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

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

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


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

DIY контроллер светодиодного света на кухне
 
[^]
Yap
[x]



Продам слона

Регистрация: 10.12.04
Сообщений: 1488
 
[^]
RomanRV
24.08.2015 - 17:46
Статус: Offline


Шутник

Регистрация: 6.09.14
Сообщений: 85
Контроллер и датчик движения можно купить на ебеях, а можно поискать предприимчивого гражданина в своём регионе, у которого уже все есть. В моём случае - второй вариант.
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 контроллер светодиодного света на кухне
 
[^]
RomanRV
24.08.2015 - 17:47
Статус: Offline


Шутник

Регистрация: 6.09.14
Сообщений: 85
Обрезаем макетку в размер корпуса.

DIY контроллер светодиодного света на кухне
 
[^]
RomanRV
24.08.2015 - 17:47
Статус: Offline


Шутник

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

DIY контроллер светодиодного света на кухне
 
[^]
RomanRV
24.08.2015 - 17:48
Статус: Offline


Шутник

Регистрация: 6.09.14
Сообщений: 85
Примеряем детальки

DIY контроллер светодиодного света на кухне
 
[^]
RomanRV
24.08.2015 - 17:48
Статус: Offline


Шутник

Регистрация: 6.09.14
Сообщений: 85
Производим монтаж


DIY контроллер светодиодного света на кухне
 
[^]
RomanRV
24.08.2015 - 17:49
Статус: Offline


Шутник

Регистрация: 6.09.14
Сообщений: 85
По окончании не толерантно избавляемся от чёрного - моём плату ацетоном.

DIY контроллер светодиодного света на кухне
 
[^]
RomanRV
24.08.2015 - 17:49
Статус: Offline


Шутник

Регистрация: 6.09.14
Сообщений: 85
Примеряем модули в посадочные места, паяем провода датчика и окончательный внешний вид нашего миньона.

DIY контроллер светодиодного света на кухне
 
[^]
RomanRV
24.08.2015 - 17:51
Статус: Offline


Шутник

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

Приступаем к программированию. Логику заложил такую:
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;
}


Это сообщение отредактировал RomanRV - 24.08.2015 - 18:00

DIY контроллер светодиодного света на кухне
 
[^]
RomanRV
24.08.2015 - 17:52
Статус: Offline


Шутник

Регистрация: 6.09.14
Сообщений: 85
Соединяем проводочки, подаем питание и... Сжигаем к фигам контроллер с минипироэффектом ))) Где-то напутал с монтажом, придется переделать. ((

DIY контроллер светодиодного света на кухне
 
[^]
RomanRV
24.08.2015 - 17:53
Статус: Offline


Шутник

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

DIY контроллер светодиодного света на кухне
 
[^]
RomanRV
24.08.2015 - 17:53
Статус: Offline


Шутник

Регистрация: 6.09.14
Сообщений: 85
Также переделываем выводы датчика, разъём от старой сервы - идеально )).

DIY контроллер светодиодного света на кухне
 
[^]
RomanRV
24.08.2015 - 17:54
Статус: Offline


Шутник

Регистрация: 6.09.14
Сообщений: 85
Проложил слой изоленты, к сборке готов.

DIY контроллер светодиодного света на кухне
 
[^]
RomanRV
24.08.2015 - 17:54
Статус: Offline


Шутник

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



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

DIY контроллер светодиодного света на кухне
 
[^]
blackbot
24.08.2015 - 17:59
9
Статус: Online


Ярила

Регистрация: 30.06.11
Сообщений: 1130
рукожоп =)

а насрал термоклея, прям как маститый дядюшка Ляо
 
[^]
fisherman36
24.08.2015 - 18:00
3
Статус: Offline


Юморист

Регистрация: 29.06.12
Сообщений: 464
тема интересная, но с таким количеством технических терминов больше смахивает на статью из научного журнала, ни хрена не понял cry.gif но всё равно, за труды позеленил
 
[^]
paruram
24.08.2015 - 18:01
1
Статус: Offline


Приколист

Регистрация: 28.06.12
Сообщений: 228
А как для rgb ленты придумать? А так молодец. Положил в закладки.
 
[^]
RomanRV
24.08.2015 - 18:03
1
Статус: Offline


Шутник

Регистрация: 6.09.14
Сообщений: 85
Ну так! У них научился ))
 
[^]
Nord30
24.08.2015 - 18:04
0
Статус: Offline


Весельчак

Регистрация: 22.03.15
Сообщений: 136
Красиво
 
[^]
RomanRV
24.08.2015 - 18:05
0
Статус: Offline


Шутник

Регистрация: 6.09.14
Сообщений: 85
Цитата (paruram @ 24.08.2015 - 21:01)
А как для rgb ленты придумать? А так молодец. Положил в закладки.

с rgb так же, только каналов больше нужно, на каждый отдельно. Одной uln2003 уже не хватит, нужно больше.
 
[^]
kazakovy
24.08.2015 - 18:08
6
Статус: Offline


хохмач

Регистрация: 18.07.13
Сообщений: 216
Я конечно в начале хотел такое... Потом прочитал до середины, понял , не хочу, точнее не смогу. Пойду учить жену выключать кнопку т. к. включать уже научил.
 
[^]
Ivkin
24.08.2015 - 18:08
1
Статус: Offline


Юморист

Регистрация: 16.03.14
Сообщений: 506
За Мозг ценник тока видимо с ошибкой, я мин за 990 увидел
 
[^]
Konyara
24.08.2015 - 18:09
0
Статус: Offline


Приколист

Регистрация: 21.02.14
Сообщений: 255
А готовые не продают? А то чет сложновато! Программные коды всякие...
 
[^]
RomanRV
24.08.2015 - 18:16
0
Статус: Offline


Шутник

Регистрация: 6.09.14
Сообщений: 85
Цитата (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.08.2015 - 18:16
 
[^]
TSX
24.08.2015 - 18:18
3
Статус: Offline


Весельчак

Регистрация: 4.08.08
Сообщений: 115
Вместо ULN-ки лучше полевые транзисторы использовать (MOSFET-ы) с простым драйвером на биполярном транзисторе. Чуть сложнее схема, зато не греется, и нагрузку можно посолиднее ставить (например, еще кусок ленты добавить).
P.S. Можно также поставить микросхему драйвера затворов (IR4427 или аналог)

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


 
 



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






Наверх