Добрый день! В этом посте хочу поделится с интернет сообществом о том, как мне довелось сделать автоматическое освещение лестницы в своем двухэтажном коттедже. Около четырех месяцев назад, возвращаясь с работы в полной темноте, я не удачно подскользнулся и сломал две плюсниевых кости (пальца) на левой ступне. Целый месяц пришлось провалятся в постеле, так как наступать на ногу было невероятно больно. Потом еще пол месяца хромал без гипса (у кого были переломы меня сразу поймут). После этой печальной истории я начал задумываться об автоматизации освещения ступенек лестницы. Немного поиграв с поисковыми запросами, нашел для себя очень простое решение в этом блоге, как раз на основе моего любимого микроконтроллера 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.
#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);
}
Немного про монтаж
Так как у меня самая простая деревянная лестница (без подступенной доски), крепление светодиодных лент осуществил с торца каждой ступеньки.
По всей длине проходит кабель-канал с уложенными проводами, который приклеен на жидкие гвозди. Светодиодные ленты изначально имеют клейкую сторону, они прекрасно держатся на дереве.
Сенсоры были установлены в начале каждой первой ступени вверху и внизу лестницы. В качестве крепления использовал обычные подрозетники для гипсокартона.
Из корпуса блока питания сигнализации был выброшен севший аккумулятор, в место него легко поместился наш контроллер.
Крышка на месте. Размещаем контроллер под лестничной площадкой.

Результат
На самом деле видео не отражает реальной картины. Лестница освещается намного красивее и ярче.

lesenka.zip (79,3 КиБ, 13 731 загрузок)



Начало текста и результат работ — оч.!
Текст между началом и демонстрацией результата работ тоже оч. Я просто не совсем понимаю, о чем там , :drinks: но по всей видимости, что-то очень талантливое :good:
Надежда Викторовна — жгете) 🙂
Great job! They look wonderful!
Thank you very much!
Отличная работа!!! Про конект кинетика и датчиков температуры тоже интересно))) Спасибо за статьи!
Спасибо за статью, она вдохновила сделать то же самое. На видео с отладкой и в итоговом проекте разные платы Arduino? Чтобы прошить вторую нужно докупать еще переходник
http://www.ebay.com/itm/USB-converter-module-your-bricks-work-Chinduino-nano-pro-mini-/280870958872?pt=LH_DefaultDomain_0&hash=item416536b718#ht_2547wt_1037
И если не сложно, то объясните как он подключается
Привет Денис! Да я использовал для тестирования другую плату, так удобнее просто. Arduino pro mini с Usb переходником, приобрел одним лотом вот здесь. Подключается он очень просто. Используются 4 пина RX, TX, GND, 5V на arduino и USB переходнике подключаете на прямую. Вот только, когда прошиваете Arduino нужно уловить момент и нажать кнопочку reset. Лестница у вас большая?
15 ступеней, средняя. И как я понял используются 2 блока питания: 5В для ардуино и 12В для светодиодов. Спасибо за ответы))
Используется 1 блок питания 12 в. В схеме преобразователь стоит с 12 на 5 вольт для питания ардуины и датчиков.
hi Vladimir,
I have the Arduino Uno and would love to try this, do you have the Urduino Uno sketch version fro this project? Thank you in advance!
Спасибо за хорошую идею. У вас ленты короткие (маленькая мощность и ток), а как быть, если надо подключить 3-4 (или больше) ленты длиной 2м, не разбивая на сегменты по 30см как у вас. Тут уже будут большие токи и ваш драйвер не подойдет. Что можете посоветовать?
Каким способом печатную плату делали?
В ходе тестирования я подключал «не разрезанные» куски по 2 и 1 метру и все прекрасно работало. Ток потребления у лент не большой. Драйвер должен подойти. Сейчас почти все светодиодные ленты питаются от источника питания 12 в. Печатную плату делал с помощью ЛУТ.
Владимир, спасибо за статью!
Долго пытался понять, как светодиоды подключаются. Нашел аналогичную светодиодную ленту, напряжение питания 12В, потребляемая мощность ~0,5Вт/м*5м = 2,4Вт. Т.е. общий ток должен быть 500мА. Но судя по даташиту драйвер не тянет такой ток! Там выходной ток :biggrin: — десятки миллиампер. Но судя по видео, все работает 🙂
В чем фишка? Или я в расчетах ошибся и не досмотрел, или? :blush:
Да, кстати и напряжение на выходе драйвера не 12В судя по даташиту, а гораздо меньше. Складывается ощущение, что я или не тот даташит смотрю, либо у вас драйвер другой
Привет! У этого драйвера по даташиту ток до 15 вольт, а вот амперы я не мерил) Но ленты прекрасно горят)
Владимир, день добрый.
Заинтересовала Ваша разработка.
Возметесь сделать «под ключ» с небольшими уточнениями?
Сейчас времени пока нет. Да и комплектующие нужно заказывать. Где вы находитесь территориально?
давайте спишемся по маилу nixdorf13@mail.ru или можно в асю 231761470
В принципе меня сроки не жмут.
Осенью прошлой собирал лестницу у себя дома (13 ступеней основной марш, площадка и 3 ступени еще после площадки), когда начал сборку то запланировал и подсветку сделать, только она технически в разы проще организована:
под вылетом каждой ступени (ступень нависает на 5 см относительно подступенка) проклеил 80 см ленты (пак чтобы вся поверхность ступени освещалась равномерно), выводы сделал от каждой ленты под лестницу. планировал соединить все куски паралельно, поставил блок питания на AC220/DC12 перед блоком питания поставил два выключателя LX-19B по схеме с общей фазой.
Ваше решение конечно более технологично и красиво, очень хотелось бы организовать именно такую схему работы, но в програмировании МК не силен.
Вот и хотел у Вас узнать, возметесь ли Вы за сборку контроллера? Уверен что о цене мы договоримся.
Павел, извиняюсь, что не отвечал. Переносим обсуждение в ICQ. :bomb:
В магазинах встречается микросхема M5450B7, все советуют её. пройдет ли замена?
Да, я сам такую использовал.
Все хорошо! Буду повторять вашу конструкцию. уж очень понравилось! Как, в перпективе, собираетесь ли сделать всетаки ШИМ на каждой ступеньке? Читал комменты к вашей статье на многих сайтах… думаю именно ШИМ будет самым востребованым…
Здравствуйте!
Понравилась ваша реализация. Хочу сделать себе такую же, но с лентой RGB 5m (отрезками по 70см). Поможете в реализации ?
К сожалению пока нет возможности вам помочь. Времени совсем нет.
Great stuff.Will try myself .I tired programming my mini pro with the files u uploaded however get multiple error.I have a lesenka folder which has lightuino5, Ultrasonic folder and lesenka.pde file.Can u please help me how to program and in what sequence .
Sorry i am a newbie to this.
Hello. Use the Arduino IDE version 0023. Lightuino5 need to put the folder in the folder libraries. :bomb: