Добрый день! В этом посте хочу поделится с интернет сообществом о том, как мне довелось сделать автоматическое освещение лестницы в своем двухэтажном коттедже. Около четырех месяцев назад, возвращаясь с работы в полной темноте, я не удачно подскользнулся и сломал две плюсниевых кости (пальца) на левой ступне. Целый месяц пришлось провалятся в постеле, так как наступать на ногу было невероятно больно. Потом еще пол месяца хромал без гипса (у кого были переломы меня сразу поймут). После этой печальной истории я начал задумываться об автоматизации освещения ступенек лестницы. Немного поиграв с поисковыми запросами, нашел для себя очень простое решение в этом блоге, как раз на основе моего любимого микроконтроллера Arduino. Схема не вызвала каких то трудностей, но отпугивало количество и длина проводов, которые мне предстояло смонтировать. До этого ничего подобного не делал. Покупать готовые решения или нанимать кого-то — накладно. В течении месяца заказал нужные комплектующие и не торопясь смонтировал за несколько дней на свою лестницу. Всем кому интересно, что из этого получилось, добро пожаловать под кат!
Компоненты
Приведу примерную стоимость всех компонентов, которые были использованы в работе. Большинство комплектующих куплены в магазинах моего города поэтому приведу все в рублях.
Arduino Pro Mini | 300 р |
Ultrasonic Module HC-SR04 Distance Sensor — 2 шт | 230 р |
Драйвер светодиодов M5450 | 88 р |
Регулятор напряжения L78M05CV | 26 р |
Фоторезистор ФР-764 | 16 р |
Кабель-канал 20×10 мм — 10 М | 100 р |
Провод 2×0,12 — 100 М (с запасом для лент) | 190 р |
Провод 4×0,12 — 20 М (для сенсоров) | 60 р |
Светодиодная лента LSP0603W15 White — 17 шт по 30 см | 1020 р |
Мелочевка: текстолит 15×15 см, хлорное железо, сверло 0,9 мм, штыревые соединители типа PLS, разъемы на плату BLS, термоусадочная трубка, конденсаторы и резисторы | 200 р |
Блок питания 12В (он же корпус) от сигнализации «Парус 4» | Бесплатно |
Итого | 2230 р |
Прототип
Отладку прошивки для Arduino, как и все, я производил на макетной плате с использованием обычных светодиодов.
Схема
С помощью небезызвестной среды для проектирования Eagle CAD была доработана схема автора и печатная плата. Здесь я добавил регулятор напряжения на 5 В, изменил датчики с 3х контактных дорогих Ping на четырех контактные дешевые HC-SR04. Для того, что бы подсветка лестницы срабатывала только в темное время суток, в схему добавлен советский фоторезистор ФР-764 (можно использовать и другой).
Скетч
В скетче используется свободно распространяемая библиотека для работы со светодиодным драйвером M5450, а также библиотека для работы с ультразвуковым дальномером HC-SR04.
[php]
#include "lightuino3.h"
#include "Ultrasonic.h"
//Устанавливаем контакты для первого датчика
#define TRIG_PIN 12
#define ECHO_PIN 13
//Устанавливаем контакты для второго датчика
#define TRIG2_PIN 10
#define ECHO2_PIN 11
//Определяем первый датчик
Ultrasonic OurModuleUp(TRIG_PIN, ECHO_PIN);
//Определяем второй датчик
Ultrasonic OurModuleDown(TRIG2_PIN, ECHO2_PIN);
// pins 0, 1 used by Serial
const unsigned char DataPin = 6;
const unsigned char clockPin = 7;
// задержка между ступеньками
const long lightSpacing = 280;
//задержка свечения всей лестницы
const long lightHold = 10000;
//задержка выстрела сенсоров
const long pingReadDelay = 50;
// Диапазон при котором сработает сенсор
const float minBottomIn = 33.0f;
const float minTopIn = minBottomIn;
LightuinoSink sinks(clockPin, DataPin, 100, 4);
boolean bClimbStarted = false;
boolean bDescentStarted = false;
int val;
void setup() {
Serial.begin(9600);
pinMode(DataPin, OUTPUT);
pinMode(clockPin, OUTPUT);
delay(1000);
sinks.set(0,0,0);
}
void loop() {
val = analogRead(0);
//Проверяем освещенность в помещении
if (val>=1020){
UltrasonicDownFire();//Выстрел нижнего датчика
if(bClimbStarted) {
bClimbStarted = false;
bDescentStarted = false;
climbLightSequence();
}
else {
// Выстрел верхнего датчика
UltrasonicUpFire();
if(bDescentStarted) {
bClimbStarted = false;
bDescentStarted = false;
descentLightSequence();
}
}
delay(pingReadDelay);
}
}
//Обработка верхнего датчика
void UltrasonicUpFire() {
if((OurModuleUp.Ranging(INC) < minTopIn) && (OurModuleUp.Ranging(INC) > 0))
{
Serial.println("Top sensor tripped.");
bDescentStarted = true;
}
}
//Обработка нижнего датчика]
void UltrasonicDownFire() {
if((OurModuleDown.Ranging(INC) < minTopIn) && (OurModuleDown.Ranging(INC) > 0)) {
Serial.println("Bottom sensor tripped.");
bClimbStarted = true;
}
}
void climbLightSequence(){
LedsOnDown();
}
void LedsOnDown(){
//Обнуляем
byte ledState[9];
for (int j=0;j=0;k—)
{
for (int j=8;j>=1;j—)
{
ledState[k] = (ledState[k] >> 1) + 128;
sinks.set(ledState);
delay(lightSpacing);
}
}
//Задержка
delay(lightHold);
//Гасим
for (int k=1;k>=0;k—)
{
for (int j=8;j>=1;j—)
{
ledState[k] = (ledState[k] >> 1);
sinks.set(ledState);
delay(lightSpacing);
}
}
delay(pingReadDelay);
}
void descentLightSequence(){
LedsOnUp();
}
void LedsOnUp(){
//Обнуляем
byte ledState[9];
for (int j=0;j ledState[j] = B00000000;
}
//Зажигаем
for (int k=0;k {
for (int j=0;j {
ledState[k]=(ledState[k] << 1) + 1;
sinks.set(ledState);
delay(lightSpacing);
} }
delay(lightHold);
for (int k=0;k {
for (int j=0;j {
ledState[k]=(ledState[k] << 1);
sinks.set(ledState);
delay(lightSpacing);
}
}
delay(pingReadDelay);
}
[/php]
Немного про монтаж
Так как у меня самая простая деревянная лестница (без подступенной доски), крепление светодиодных лент осуществил с торца каждой ступеньки.
По всей длине проходит кабель-канал с уложенными проводами, который приклеен на жидкие гвозди. Светодиодные ленты изначально имеют клейкую сторону, они прекрасно держатся на дереве.Сенсоры были установлены в начале каждой первой ступени вверху и внизу лестницы. В качестве крепления использовал обычные подрозетники для гипсокартона.Из корпуса блока питания сигнализации был выброшен севший аккумулятор, в место него легко поместился наш контроллер.
Крышка на месте. Размещаем контроллер под лестничной площадкой.
Результат
На самом деле видео не отражает реальной картины. Лестница освещается намного красивее и ярче.
[stextbox id=»custom» caption=»Скачать все необходимые файлы»]
Подскажите, если нет переходника с USB, получится прошить самодельным переходником на MAX232? Может кто уже прошивал, и какие грабли могут быть?
Отвечаю сам. С MAX232, почему то не пошло, а вот с MAX3232 + электоролиты на 0,22, всё прошилось нормально.
Владимир! Скажите, для каких целей Вы вывели на разъём с драйвера, контакты 1,,39,40, так как загорается всего 17 светодиодов?
На всякий случай. Вдруг кому то нужно больше ступеней подсветить 🙂
а RGB ленту использовать можно будет ? с регулятором сигнала РГБ ?
С RGB лентами я не имел дел. Можно сделать все что угодно. Но в данном варианте скорее всего нет. Здесь надо будет и схему и код переделывать однозначно.
Вдохновился. Переделал данный проект под драйвер TLC5940 на 16 каналов с апаратным ШИМ. датчики оставил улььтразвуковые, с растояния метр почти неслышно «щелкания»… еще другу сделал такойже девайс под ленты 1 метр на ступеньку. пришлось правда логику докинуть и ключи TIP122 поставить… зато теперь хоть прожекторы зажигай…
также немного переделал скетч, упростил…
кому интересно могу скинуть…
Игорь, приветствую!
Мне интересно, напишите на почту, пожалуйста. :good:
почта justicebk@gmail.com :blush:
что именно вы хотите? скетч? или схемку?
кстати, пробыывла РГБ… вообщем неинтересно
всетаки это подсветка лестницы а не декоративное пано… а так шо новогодняя елка получается…
ргб — подсветку можно менять (цвет) можно в зависимости от праздника, времени дня / суток, уменьшать / увеличивать яркость. да хотел бы поговорить по поводу монтажа, возможности крепления лент по 1м
И мне нужно))))))))))))) если не трудно,пришлите все. и схему и скетч. Заранее спасибо.
моя почта slvmax@mail.ru
мне интересно но я плохо пишу на русском потому что я не русский, если возможна скиньте мне пожалуйста информацию adress pogriban@mail.ru я в эту сферу новичок и поэтому прошу вас более детально показать н схему и готовый продукт, заранее благодарю
скиньте мне пожалуйста
скиньте мне пожалуйста pogriban@mail.ru
И мне если можно, то тоже скиньте комплект, заранее благодарен.
Yrkin@i.ua
Игорь, расскажите пожалуйста про подключение RGB лент. Если я правильно понимаю каждый цвет подключается к отдельному входу, то есть для TLC5940 на 16 каналов можно подключить 5 RGB лент. Все верно? Этот драйвер на канал дает макс ток 130мА. Для ленты пишут параметр как ток потребления 0,6А/м. Получается к драйверу я могу подключить 5 лент по 20 см? Если нет, то подскажите какой длины ленты будут нормально работать без использования транзисторных ключей.
Буду признателен, если скинете на den-175@yandex.ru схемку и скетч.
Вы, в принципе, сами ответили на все свои вопросы. К одной ТЛС можна подключить пять «ступенек». Ток считаете сами, если не превышает 120 ма — гут, а если нет — логика «не» + ключи.
Сейчас уважаемый Владимир, я надеюсь, нарисует платки… разные варианты под разные ключи и под сборку УЛН. Схемка у него есть, захочет — опубликует в блоге. Так как его драйвер оказался более тяжело доступен чем ТЛС. У меня в планах ближе к концу сентября выложить проект на 16 ступенек на РГБ. Счас думаю над тем, как корректно и красиво менять цвета… скорее всего с пульта, ибо с кнопок не прикольно. Ефекты можна добавить… есть и такая задумка… хотя опять же это больше не к подсветке а к декоративному… 😎
Игорь, здравствуйте!
Очень нужен Ваш совет, свяжитесь пожалуйста со мной!
Или оставьте контакты, я сам с вами свяжусь.
icq 332687448
skype: alimovda
:drinks:
Здравствуйте, Игорь. Вы не могли бы и мне скинуть вашу схему и скетч на guest2004@bk.ru. А то у меня 18 ступеней по одному метру + площадка еще 4 метра.
Буду признателен, если скинете на oleglapo@mail.ru схемку и скетч.
Игорь, приветствую!
Мне интересно, напишите на почту, пожалуйста remizm@mail.ru
И мне нужно). если не трудно,пришлите все. и схему и скетч. Заранее спасибо.
Добрый день.
Игорь, скинте пожалуйста скетч и схемку У меня 16 ступеней по 1,2м + 2 площадки по 3,5м. Хочу поставить RGB ленту. Мой e-mail pigeon@pigeon.md
Спасибо
Здравствуйте, Игорь.
Вы не могли бы и мне скинуть вашу схему и скетч на
viktor95@arcor.de
А то у меня 14 ступеней по одному метру + площадка еще 4 метра.
Заранее благодарен !!
Viktor