Добрый день, уважаемые читатели, хотел бы вас ознакомить со своей версией проекта автоматической подсветки лестницы на основе контроллера Arduino Pro Mini. Возможно, для кого-то эта статья станет основой для своих собственных проектов, ну а мне будет приятно прочитать строгую критику в комментариях.
Цель проекта: смонтировать подсветку лестницы на второй этаж при следующих условиях.
В качестве контроллера использовал всем знакомый Arduino Pro Mini.
Сначала о самой лестнице количество ступеней 11, ширина 550 мм. В общей сложности необходимо 6 м светодиодной ленты (заказал 2 шт по 5 м 5050 SMD), со степенью защиты IP67 (то есть защита от пыли и воды), чтобы можно было протереть пыль и не задумываться о том, попадешь ли под напряжение или повредишь ленту.
После подключения 5-ти м светодиодной ленты ток через нее оказался всего 2,5 A, то есть, для 6-ти м светодиодной ленты нужен блок питания на 36 Вт. Выбор остановился на китайском блоке питания 12 В 8.3 А 100 Вт. 100, конечно, много, но 12 В понадобилось для другого проекта, поэтому подключился к нему же.
В качестве питания самого контроллера, а также сенсоров (питание 5 В) использовал простенькую схему понижения напряжения с помощью стабилизатора напряжения L7805CV и двух керамических конденсаторов 0,1 мкФ и 0,33 мкФ.
В качестве датчиков фиксирующих движение остановился на ультразвуковых сенсорах HC-SR04, так как испускают узкий пучок ультразвуковых импульсов и можно настроить расстояние срабатывания. Таким образом, можно установить на отслеживании пересечения импульса на первой и последней ступенях. Вдаваться в подробности характеристик, способа подключения, принципа работы сенсора не вижу смысла в интернете достаточно много информации о них.
Вопрос измерения освещенности решился, также, довольно просто с помощью схемы делителя напряжения, в которой в качестве переменного резистора используется фоторезистор Gl5516.
Далее рассмотрим вопрос количества использованных контактов 11 цифровых для ступеней, 4 для двух сенсоров и один аналоговый для измерения освещенности. Итого 15 цифровых, что не дает нам Arduino. Недолго думая, использовал микросхему 74НС595N, а точнее каскад из двух сдвиговых регистров для увеличения количества цифровых выходов Arduino.
Почитав литературу и мнения радиолюбителей, поставил керамический конденсатор 0,1 мкФ на 12-ой ножке STcp первого регистра, якобы для минимизации шума при подачи «защелкивающего» импульса. При опробовании мною каскада «на столе», действительно с конденсатором работает лучше, в особенности при первой подачи питания на микросхемы.
Одно дело подключать к Arduino слабую нагрузку, наподобие светодиода, другое подключать кусок светодиодной ленты, длиной 500-550 мм (максимальный ток цифрового выхода Arduino 40 мА). Более доступно для меня оказалась микросхема ULN2003A (сборка Дарлингтона), максимальный ток через один выход которой составляет 0,5 А.
Хочу обратить внимание, что контакт Echo второго сенсора приходит на 13-й контакт Arduino, на котором находится светодиод самого контроллера.
Сделано это специально, для удобства, в тот момент, когда удовлетворяется условие «достаточно ли темно для начало опроса сенсоров?», светодиод на 13-ом контакте начинает мигать.
Плату рисовал в Sprint-Layout. Делал акцент на том, чтобы микросхемы и контроллер снимались, припаивал панельки SCS-14 и 16, а также гнездо на плату PBS 2?12 2.54. Единственный минус пришлось выгибать в другую сторону ножки микросхем 74НС595N.
При составлении скетча использовалась только одна библиотека Ultrasonic (для работы с сенсорами HC-SR04) и то можно было обойтись без неё. Пришлось повозиться с битовыми операциями, так как необходимо определенным образом загружать два байта в каскад сдвиговых регистров (в самом скетче сделал доходчивые пояснения).
Теперь про монтаж, укладывать светодиодную ленту, конечно же, лучше в специально для неё созданный профиль, но стоимость его довольно высока. Я брал кабель канал 12?12, срезал раскаленным канцелярским ножом лишнее, получилось следующее.
Чтобы спрятать сенсоры HC-SR04, нашел для них по размеру коробку IEK 20 мм.
Монтаж щитка особого труда тоже не составил, так как на плате заранее задумывалось установка винтовых клеммников.
Получившийся проект удовлетворил все поставленные задачи, во время работы автоматики не было замечено каких-либо отказов, замечаний.
Единственное, по моему мнению, можно было бы сделать щиток более компактным и полностью его закрыть от посторонних рук.
Спасибо за уделённое внимание.
Цель проекта: смонтировать подсветку лестницы на второй этаж при следующих условиях.
- Автоматика срабатывает только в темное время суток.
- Каждая ступенька лестницы подсвечивается после включения предыдущей.
- Ступеньки подсвечиваются снизу вверх и наоборот.
- Есть запас времени полностью подсвеченной лестницы.
Подготовка к монтажу
В качестве контроллера использовал всем знакомый Arduino Pro Mini.
Сначала о самой лестнице количество ступеней 11, ширина 550 мм. В общей сложности необходимо 6 м светодиодной ленты (заказал 2 шт по 5 м 5050 SMD), со степенью защиты IP67 (то есть защита от пыли и воды), чтобы можно было протереть пыль и не задумываться о том, попадешь ли под напряжение или повредишь ленту.
После подключения 5-ти м светодиодной ленты ток через нее оказался всего 2,5 A, то есть, для 6-ти м светодиодной ленты нужен блок питания на 36 Вт. Выбор остановился на китайском блоке питания 12 В 8.3 А 100 Вт. 100, конечно, много, но 12 В понадобилось для другого проекта, поэтому подключился к нему же.
В качестве питания самого контроллера, а также сенсоров (питание 5 В) использовал простенькую схему понижения напряжения с помощью стабилизатора напряжения L7805CV и двух керамических конденсаторов 0,1 мкФ и 0,33 мкФ.
В качестве датчиков фиксирующих движение остановился на ультразвуковых сенсорах HC-SR04, так как испускают узкий пучок ультразвуковых импульсов и можно настроить расстояние срабатывания. Таким образом, можно установить на отслеживании пересечения импульса на первой и последней ступенях. Вдаваться в подробности характеристик, способа подключения, принципа работы сенсора не вижу смысла в интернете достаточно много информации о них.
Вопрос измерения освещенности решился, также, довольно просто с помощью схемы делителя напряжения, в которой в качестве переменного резистора используется фоторезистор Gl5516.
Далее рассмотрим вопрос количества использованных контактов 11 цифровых для ступеней, 4 для двух сенсоров и один аналоговый для измерения освещенности. Итого 15 цифровых, что не дает нам Arduino. Недолго думая, использовал микросхему 74НС595N, а точнее каскад из двух сдвиговых регистров для увеличения количества цифровых выходов Arduino.
Почитав литературу и мнения радиолюбителей, поставил керамический конденсатор 0,1 мкФ на 12-ой ножке STcp первого регистра, якобы для минимизации шума при подачи «защелкивающего» импульса. При опробовании мною каскада «на столе», действительно с конденсатором работает лучше, в особенности при первой подачи питания на микросхемы.
Одно дело подключать к Arduino слабую нагрузку, наподобие светодиода, другое подключать кусок светодиодной ленты, длиной 500-550 мм (максимальный ток цифрового выхода Arduino 40 мА). Более доступно для меня оказалась микросхема ULN2003A (сборка Дарлингтона), максимальный ток через один выход которой составляет 0,5 А.
Хочу обратить внимание, что контакт Echo второго сенсора приходит на 13-й контакт Arduino, на котором находится светодиод самого контроллера.
Сделано это специально, для удобства, в тот момент, когда удовлетворяется условие «достаточно ли темно для начало опроса сенсоров?», светодиод на 13-ом контакте начинает мигать.
Плату рисовал в Sprint-Layout. Делал акцент на том, чтобы микросхемы и контроллер снимались, припаивал панельки SCS-14 и 16, а также гнездо на плату PBS 2?12 2.54. Единственный минус пришлось выгибать в другую сторону ножки микросхем 74НС595N.
Составление скетча
При составлении скетча использовалась только одна библиотека Ultrasonic (для работы с сенсорами HC-SR04) и то можно было обойтись без неё. Пришлось повозиться с битовыми операциями, так как необходимо определенным образом загружать два байта в каскад сдвиговых регистров (в самом скетче сделал доходчивые пояснения).
Скетч
// ***Скетч подсветка лестницы V1***
// Библиотеки
#include "Ultrasonic.h"
// Пины
#define Trig_1 10 // Устанавливаем контакты для первого датчика.
#define Echo_1 11
#define Trig_2 12 // Устанавливаем контакты для второго датчика.
#define Echo_2 13
#define Ds 8 // Ds/SDI первого сдвигового регистра 75HC595N_1.
#define STcp 7 // STcp/RCLK сдвиговых регистров 75HC595_1, 2.
#define SHcp 6 // SHcp/SRCLK сдвиговых регистров 75HC595_1, 2.
#define LDR A0 // Аналоговый сигнал с фоторезистора.
Ultrasonic Sensor_1(Trig_1, Echo_1); // Определяем первый датчик.
Ultrasonic Sensor_2(Trig_2, Echo_2); // Определяем второй датчик.
// Параметры
const int Limit = 100; // Переменная для хранения предела сравнения с освещенностью.
const float Min_Disrance = 50.0; /* Диапазон, при котором сработает сенсор
Ширина ступеньки 55 см.*/
boolean Up_Sensor_Started = false; // Переменная отражающая факт срабатывания верхнего сенсора.
boolean Down_Sensor_Started = false; // Переменная отражающая факт срабатывания нижнего сенсора.
const int Read_Delay = 50; // Переменная для хранения времени задержки опроса сенсоров.
unsigned int leds = 0; // Переменная для хранения передаваемых битов в регистры.
const int N = 10; /* Переменная для хранения количества ступеней лестницы.
Отсчет идет с нуля! Максимум выходов 14-ть 2 Сборки Дарлингтона.*/
const int T_Ladder = 3000; // Переменная для хранения времени включенной лестницы.
const int T_Stair = 500; // Переменная для хранения времени между включениями.
void setup()
{
pinMode(Ds, OUTPUT);
pinMode(STcp, OUTPUT);
pinMode(SHcp, OUTPUT);
// Serial.begin(9600); // Инициализация последовательного порта на скорости 9600 бойд.
}
void loop()
{
int LDR_Value = analogRead(LDR); // Считываем значение с фоторезистора.
// Serial.println(LDR_Value); // Проверяем уровень освещенности в пределах от 0 до 1023.
if(LDR_Value < Limit) // Сравнение "Достаточно ли темно для подсветки?".
{
Down_Sensor(); // Вызов процедуры опроса нижнего сенсора.
if(Down_Sensor_Started) // Проверка факта срабатывания нижнего сенсора.
// Если есть, выполняем действия...
{
Down_Sensor_Started = false; // Возвращение фактов срабатывания в исходное состояние.
Up_Sensor_Started = false;
Turing_Upward(); // Вызов процедуры включения лестницы снизу вверх.
}
else
// Если нет факта срабатывания нижнего сенсора...
{
Up_Sensor(); // вызываем процедуру опроса верхнего сенсора...
if(Up_Sensor_Started) // и проверяем факт его срабатывания.
// Если есть, выполняем действия...
{
Down_Sensor_Started = false; // Возвращение фактов срабатывания в исходное состояние.
Up_Sensor_Started = false;
Turing_Downward(); // Вызов процедуры включения лестницы сверху вниз.
}
}
delay(Read_Delay); // Задержка чтения сенсоров.
}
}
// Процедура опроса верхнего датчика
void Up_Sensor()
{
if((Sensor_1.Ranging(CM) < Min_Disrance) && (Sensor_1.Ranging(CM) > 0))
// Если измеренное расстояние больше нуля, но меньше предела то...
{
Up_Sensor_Started = true; // Факт срабатывания верхнего сенсора.
}
}
// Процедура опрос нижнего датчика
void Down_Sensor()
{
if((Sensor_2.Ranging(CM) < Min_Disrance) && (Sensor_2.Ranging(CM) > 0))
// Если измеренное расстояние больше нуля, но меньше предела то...
{
Down_Sensor_Started = true; // Факт срабатывания нижнего сенсора.
}
}
// Процедура загрузки битов в регистры
void updateShiftRegister()
{
digitalWrite(STcp, LOW); // Подаем низкий сигнал для загрузки битов в регистры.
byte First = lowByte(leds); /* Разделяем наш байт на младший и старший,
так как функция shiftOut за раз пропускает только 8 бит.*/
byte Second = highByte(leds);
shiftOut(Ds, SHcp, MSBFIRST, Second); // Проталкиваем 1-й байт и читаем его слева направо.
shiftOut(Ds, SHcp, MSBFIRST, First); // Проталкиваем 2-й байт.
digitalWrite(STcp, HIGH); // Сбрасываем на выходы полученные биты.
}
// Процедура включения подсветки снизу вверх
void Turing_Upward()
{
for (int i = 0; i <= N; i++)
{
bitSet(leds, i); // Изменение всех N битов на состояние 1 (или HIGH).
updateShiftRegister(); // Включение подсветки загрузкой измененного байта.
delay(T_Stair); // Задержка между включением ступеней.
}
// Serial.println(leds, BIN); // Проверяем какой вид байта.
delay(T_Ladder); // Задержка включенной лестницы.
leds = 0; // Обнуление байта.
updateShiftRegister(); // Потушить подсветку.
}
// Процедура включения подсветки сверху вниз
void Turing_Downward()
{
for (int i = N; i >= 0; i--)
{
bitSet(leds, i); // Изменение всех N битов на состояние 1 (или HIGH).
updateShiftRegister(); // Включение подсветки загрузкой измененного байта.
delay(T_Stair); // Задержка между включением ступеней.
}
delay(T_Ladder); // Задержка включенной лестницы.
leds = 0; // Обнуление байта.
updateShiftRegister(); // Потушить подсветку.
}
Особенности монтажа
Теперь про монтаж, укладывать светодиодную ленту, конечно же, лучше в специально для неё созданный профиль, но стоимость его довольно высока. Я брал кабель канал 12?12, срезал раскаленным канцелярским ножом лишнее, получилось следующее.
Чтобы спрятать сенсоры HC-SR04, нашел для них по размеру коробку IEK 20 мм.
Монтаж щитка особого труда тоже не составил, так как на плате заранее задумывалось установка винтовых клеммников.
Итог
Получившийся проект удовлетворил все поставленные задачи, во время работы автоматики не было замечено каких-либо отказов, замечаний.
Единственное, по моему мнению, можно было бы сделать щиток более компактным и полностью его закрыть от посторонних рук.
Комплектация
Контроллер Arduino Pro Mini Atmega 328 5 В 16 МГц | 1 |
Ультразвуковой сенсор HC-SR04 | 2 |
Блок питания 12 В 8.3 А 100 Вт | 1 |
Светодиодная лента 5050 SMD 5 м IP65 | 2 |
Микросхема 74НС595N | 2 |
Микросхема ULN2003A | 2 |
Гнездо на плату PBS 1?40 2.54 | 1 |
Провод МГШВ 0.75 | |
Кабель ПУНП 2?2.5 | |
Кабель телефонный ШТЛП-4 0,12?7 | |
Однополюсный автоматический выключатель 1 А | 1 |
Однополюсный автоматический выключатель 10 А | 1 |
Фоторезистор Gl5516 | 1 |
Стабилизатор напряжения L7805CV | 1 |
Конденсатор керамический 0,33 мкФ | 1 |
Конденсатор керамический 0,1 мкФ | 2 |
Резистор 10 кОм | 1 |
Панелька для микросхемы SCS-14 | 2 |
Панелька для микросхемы SCS-16 | 2 |
Коробка распределительная IEK 20 мм | 2 |
Клеммник винтовой двухконтактный | 13 |
Стеклотексталит 95?105 мм | |
Текстолит | |
Клемма проходная SRK | 12 |
Кабель канал 12?12?2000 | |
Кабель канал 16?16?2000 | |
Расходники (термоклей, клей Момент Кристалл, припой, канифоль, флюс ТАГС) | |
Крепежные элементы (болты, гайки, саморезы, дюбеля, хомуты) |
Спасибо за уделённое внимание.
Поделиться с друзьями
bubuq
Наверно глупость спрошу, а почему нельзя всю лестницу сразу включать? И сенсоры не нужны бы были на каждую ступеньку.
sintech
По отдельности — красивее!
ZadolbaliBanit
Там сенсоры не на каждую ступеньку, а только сверху и снизу. А почему сразу не включать? Попробуйте ночью включить свет. Ослепило?
А помимо бегущей волны можно было плавно включать подсветку. Либо сделать датчик освещения, и в зависимости от его уровня, регулировать яркость.
AlexSam
Вот напомнило как кот ходил:
kvazimoda24
А почему не сделали выключение в обратном порядке? Мне кажется, так было бы красивее.
В идеале, конечно, ещё и плавное зажигание и выключение, но тут не факт, что получится с такой скоростью сдвиговый регистр переключать. Для этого можно использовать специальные микросхемы, на подобии тех, что используются в светодиодных цветных лентах с управлением каждым светодиодом.
R1on
Не вопрос выключение в обратном порядке тоже сделать можно, просто немного изменить код и все. А насчет плавного включения вы правы, нужно что-то вроде светодиодного драйвера.
reticular
отдельный драйвер это роскошь!
на самой Ардуине можно ШИМ замутить с помощью таймера
правда яркость упадет чуть. Хотя для ночного времени, имхо это "+"
R1on
Тогда вместо сдвигового регистра 74НС595N нужно будет использовать что-то другое и значительно изменить схему.
kvazimoda24
Есть микросхемы WS2811 и LPD6803. У меня есть китайская светодиодная лента с аналогом второй микросхемы, управляется она по обрезанному SPI. С учётом аппаратного SPI в ардуине, скорость переключения упирается в длинну проводов (на большой скорости начинают глючить дальние лампочки). Эти микросхемы расчитаны на RGB светодиоды, соответственно, вы можете использовать по микросхеме на три ступеньки. Схема, конечно немного усложнится, но зато появляется возможность яркость регулировать и плавное включение делать. :)
Celtis
Или поставить вместо сдвиговых регистров вторую Pro Mini. На фоне стоимости остальных частей проекта удорожание выйдет — копейки.
kvazimoda24
Точно! Надо два процессора для подсветки лестницы! :)
Если честно, то для реализации этой схемы подсветки процессор необязателен. Можно было её собрать на счетчике и таймере. Конечно, схема была бы сложнее, поэтому с ардуиной проще, но две ардуины для лестницы, это уж точно перебор.
lohmatiyy
Я даже больше скажу — можно было бы просто взять ардуину с большим количеством ног. На 4 ноги больше — и у автора уже не было бы потребности городить конструкцию из сдвиговых регистров. Ещё одна нога — оставляем поочерёдное включение светодиодов, сборки Дарлингтона запитываем через транзистор, на который подан ШИМ, и вот вам глобальная регулировка яркости.
AlexSam
На каждый канал (читай ступеньку) поставить по транзистору, базой к ноге МК, эммитер на землю, коллектор к ленте. ШИМ на 1К с головой должно хватить. Если хочется «драйвер» то на каждый канал pnp-npn транзисторы и MOSFET, но это уже лишнее.
reticular
схема не измениться. я же про программную реализацию. Программа измениться.
AlexSam
Да вобщем-то не нужно ничего менять: http://we.easyelectronics.ru/Soft/8-kanalnyy-shim-na-attiny13.html
ildar_sh
Можно загружать в него данные часто. Чтобы получить 16 градаций яркости с частотой смены «кадров» 100 Гц надо будет 1600 раз в секунду заливать новые 14 бит (столько выходов я насчитал на схеме). Чтобы хранить картинку в памяти понадобится 14*4 бит. В фоне рассчитывать следующий «кадр». Делал как-то регулировку яркости 8*8сегментного светодиодного дисплея, там «кадр» занимала 64 бит, такие же сдвиговые регистры использовались, по одному на сегмент. если память не изменяет, в них можно заливать данные на частотах до 50 МГц.
ncix
На Ардуине аппаратная ШИМ есть
roach1967
И управлять не каждой лентой по отдельности, а только только по плюсу питания сразу всех лент. Тогда и текущую плату не надо будет переделывать — добавить простейший драйвер полевика P-типа (с любой материнки подойдёт). И максимальная яркость практически не уменьшится.
reticular
аппаратный не подойдет, т.к. используется сдвиговый регистр, а не подключение нагрузки к ноге МК
и программно реализуется т.н. Bit Angle Modulation
kvazimoda24
И выключение я бы делал не по таймеру. Точнее, не только по таймеру, но и по факту прохождения человеком второго датчика. В купе с обратным выключением это даст красивый эффект: встаешь на лестницу, свет разливается перед тобой; уходишь с последней ступеньки — свет уходит вместе с тобой. А таймер нужен с хорошим запасом, на случай, если датчик не сработал.
Ну и ещё вопрос. Ночью не слишком ли ярко светит лестница? На видео кажется, что ночью будет больно смотреть на неё. Причём, может быть не только и не столько тому, кто по ней идёт, сколько тому, кто снизу.
R1on
По поводу прохождения второго датчика, можно поэкспериментировать, но можно случайно перешагнуть импульс с сенсора. Насчет яркости скорее всего какой-то негативный эффект идет от съемки с телефона, в живую выглядит приятно. Цвет желтый, если бы выбор пал на белых, тогда я бы с вами согласился.
papkinv
С таких ультразвуковых датчиков животные бесятся. Себе поставил пиродатчик.
R1on
Знаете я тут поспорю. У меня кот по лестнице бегает, от него подсветка зажигается и ничего вроде не боится. Или второй вариант у меня просто глухой кот.
FluffyMan
Или от того и бегает, что боится)
Celtis
Моей кошке плевать на SR04. Спокойно спит рядом(вот прямо сейчас, к примеру).
Зато я его отчетливо слышу.
motpac
И можно я тоже чуть-чуть позанудствую, а можно сделать плавное включение и выключение? как в кино…
R1on
Можно использовать дополнительно схему плавного увеличения выходного напряжения. Но на каждый канал регулировку делать, при поочередном включении ступеней особо нет смысла. Есть только включать все ступени лестницы сразу и плавно увеличивать яркость (выходное напряжение).
vasimv
Это же светодиодная лента, ее яркость можно PWM-ом задавать. Нужно с достаточно высокой частотой (от 100+ герц, чтобы не слишком мерцало) тушить все ступеньки, потом снова зажигать (чем больше задержка после выключения — тем меньше яркость).
lim
Для того чтоб сделать ШИМ нужно будет менять схему. Сдвиговые регистры так не умеют.
vasimv
Можно просто нулями их забивать. Потом нужную последовательность (что горит, а что — нет), частота работы регистров достаточная, чтобы все проходило более-менее незаметно. Программу, конечно, серьезно менять придется.
reticular
реализуйте программную Bit Angle Modulation
ее сдвиговые регистры смогут с помощью программиста
там не очень сложно на таймере реализовать
kevlarlive
Привет. Я продолжу занудство…
У ардуины 14 цифровых портов ввода/вывода и ещё минимум 4 аналоговых, которые так же можно использовать как и цифровые — т.е. надобность сдвиговых регистров для конкретного проекта отпадает. И теперь, реализовав простой програнммный ШИМ — делаем плавную подсветку без всякого дополнительного обвеса.
R1on
Полностью с вами согласен. Использование регистров в данном проекте предусматривалось для того, чтобы в дальнейшем проект усовершенствовать. Как вариант использовать оставшиеся выводы для управления светом уже на втором этаже, ручное управление от кнопки и далее через реле или автоматическое включение света, например от пироэлектрических сенсоров.
papkinv
У меня плавное включение сделано через обычный AnalogWrite (PWM), Mega2560 как раз хватило на 15 степенек пины (5, 4, 3, 2, 46, 44, 45, 13, 12, 11, 10, 9, 8, 7, 6). Но тут 74НС595N и такой вариант не подойдет.
dernuss
По моему лучше было использовать ленту на ws2812b, да, она по дороже, зато она RGB и не надо ни какой своей платы с регистрами городить. Так как управление всеми светодиодами всех ступенек можно было сделать через один контакт ардуины.
R1on
Цель проекта просто подсвечивать ступени лестницы, чтобы не свалиться с нее при подъеме и особенно при спуске. Если начинать пестрить различными цветами, то получится немного другое — не функционально, а скорее показуха. Так то поле для размышления большое и как вы правило отметили весь вопрос в бюджете.
dernuss
Не обязательно пестрить цветами. Но вдруг текущий цвет надоест. С лентой на ws2812b легко сменить цвет потом. Или подобрать нужный оттенок.
Но дело даже не в RGB, а в упрощении схемы (вообще отпадает своя плата с регистрами) и заодно легко сделать плавное затухание.
Celtis
Самые дешевые ленты на 2812 что я находил, стоили по $8 за метр. Мое земноводное было бы удивлено таким выбором. Особенно когда эта самая 2812 в полной мере и не используется.
black_semargl
Можно взять чип отдельно — WS2802 вроде — по штуке на ступеньку — и повесить на него горизонтальные куски ленты.
superyarik
на гиктаймс уже были статьи Rimidalw, если интересно, посмотрите как он довел идею до коммерческого продукта. (не трудно гуглится его группа в вк). Тоже сначала хотел делать на ардуино сам, но потом набрел на него и решил когда буду делать — куплю его контроллер.
skylevels
Почему бы не держать первую и последнюю ступеньку чуть подсвеченными постоянно? В полной темноте и навернуться недолго.
tormozedison
Восьмидесятые годы, фотоателье. Стул для фотографируемого. Когда на него всем весом садится фотографируемый, сиденье немного проваливается и давит на микропереключатель — как пол в лифте — и включает прожектор. Такое суровое «ардуино».
vasimv
Угу, и 220 вольт под попой. :)
mrigi
А почему лестница на 100% темная, пока по ней не начнешь подниматься? Мне кажется минимальная подсветка должна быть не зависимо идет по лестнице кто-то или нет. Убиться же можно пока найдешь эту самую лестницу в темноте.
Garbus
Мне тоже интересно, почему для минимальной подсветки редко используют светодиоды? Даже 50-100 миливатт ночью осветят приличное пространство чтобы не идти в совершенной тьме. Наверное народ просто не привык к тому что можно запросто получить неплохую подсветку, без подведения суровых 220в и греющихся лампочек. Да еще и с символическим потреблением электричества.
R1on
Расширить возможности проекта можно, да и как вы отметили нужно, тем более что еще остались выходы дополнительные на Arduino.
Garbus
Ну я не столько к конкретному проекту, сколько вообще о ситуации с освещением ночью.
Все же основной свет на полной яркости слепит, а маломощный светодиод подсвечивающий дверной проем не даст пройти «мимо», даже без включения чего-то еще.
miha2
а чего в трусах тестишь? :))))
BOOTor
Ножки показывает ;)
pignatenko
1. Почему не сделали на адресуемых светодиодах? При желании можно было бы сделать очень эффектное включение ступенек. Ну и самое главное проводов намного меньше.
2. Как поведет себя лестница если начнется движение с двух сторон?
Ну и как правильно уже заметили не хватает:
1. Плавного включения/выключения
2. Слабой подсветки крайних ступенек
R1on
Что именно вы имеете ввиду под адресуемыми светодиодами? Приведите пример маркировки.
Насчет второго вопроса — одновременно с обоих сторон не получится, в любом случае пересечение на каком то сенсоре будет быстрее другого, да и на именно этой лестнице двое не обойдут друг друга.
pignatenko
http://www.seeedstudio.com/document/pdf/WS2812B%20Datasheet.pdf
Про это речь. Пока лестница начинает «разгораться» снизу хотелось бы встречной «волны» сверху при появлении на ней второго человека/животного :)
Если цель поста была поделиться тем, что вы сделали для себя онли, тогда да — вопросов нет.
Если же хотели чтобы возможно кто-то тоже использовал вашу схему, то она должна была бы быть более универсальной.
R1on
В этом то и смысл реализован тот самый минимум и в подробном пояснении а далее как фантазия захочет.
aivs
С сенсорами конечно интереснее, если подзаморочиться, то можно было бы в каждой ступень вырезать канал и вставить профиль с рассеивателем, тогда ленты вообще не было бы видно, а свет был бы более мягкий.
ELEKTRO_YAR
Если для проекта изготавливается печатная плата, разве не проще было припаять сам микроконтроллер серии AVR, чем делать костыль в виде разъема, куда выткать ардуиноплату.
R1on
Конечно не вопрос, но можно будет вынуть контроллер изменить скетч при необходимости и поставить обратно.
ELEKTRO_YAR
AVR можно прошивать по SPI, даже с платы вынимать ничего не придется, прям внутри схемы можно прошивать (если конечно ножки для прошивки не будут под нагрузкой). А писать код можно в CVAVR на Си, в версии 3.0 есть куча встроенных либ для инициализации переферии, подключения экранов, датчиков и прочего. Достаточно просто создать проект и галочки нажать где нужно. Да и код от ардуиновской среды разработки можно залить тоже, если в ней удобнее писать код.
CrazyRoot
Вот эта реализация немного удачней:
https://geektimes.ru/post/257278/
А ваша реализация ничем(ну кроме печатной платы) не отличается от вот этой:
https://geektimes.ru/post/257972/
R1on
Ничем?! тогда читайте внимательней.
Denisio
Напрашивается регулировка яркости светодиодов в зависимости от уровня освещенности — например с помощью pwm, чтобы не слепить ночью и не включаться вообще днём. Во вторых я отказался от 7805 потому что при токе потребления больше 200-300 mA, на ней рассеивается дофига тепла и нужен радиатор. Использую dc-do фирмы Peak.
mikdim
А зачем 5050? Очень много для этого проекта, кмк. Спящий на диване под лестницей наврятли спасибо скажет)
ИМХО, менее мощные диоды(можно и эти придушить) дадут более мягкий свет и не будут слепить в темноте + фоновая подсветка верхней и нижней ступени. И таки да, можно добавить плавного включения — это уже по вкусу))
Denisio
Да, мне тоже показалось, что избыточно. Вообще для ночной подсветки достаточно будет 2-3 обычных светодиода диаметром 5 мм (особенно белые) и разместить их через 1-2 ступеньки. Попробуйте зажечь один такой светодиод током 10-15 мА в полной темноте. Вы увидите, что всё в комнате обретает очертания — тоесть 2-3 через 1-2 ступени будет более чем достаточно для того, чтобы чётко видеть границы ступеней и лестницы. Целая лента от 12 В которая жрёт единицы и десятки ватт — явно избыточно. Если оставлять ленту — надо брать значительно менее мощные светодиоды либо те ленты, где они размещены реже. И всё равно PWMом подбирать яркость.
dernuss
Я так понял автор делал из того, что достать особенно просто и дешего, поэтому светодиоды 5050. А вот почему даже в эту схему не добавил ШИМ и датчик света, я вообще не понимаю.
CrazyRoot
Хм… Датчик света стоит.
Slym99
По поводу ШИМ:
Поскольку ULN2003 — это аналоговая микросхема то
ШИМ можно допилить Nполевиком в разрыв земли ULN2003
+2 резистора 100ом и 10Ком и садить на контроллер.
Шимить будет все каналы одновременно.
diller61
верхний датчик нужно расположить на подходе к лестнице, что бы в темноте не нащупывать край ступеньки
WanderGEEK
Я сделал точно такой же проект, но на трех-этажную площадку. Подсвечивается лестничный пролет целиком в зависимости от его надобности. Если идешь с первого этажа на второй, то подсвечивается первый пролет. Если с первого на третий, то сначала первый, потом второй, и т.д.
По опыту использования могу сказать, что поступенчатое включение не удобно и быстро надоедает, комфортнее, когда плавно и достаточно быстро включается подсветка всего лестничного пролета.
Также, было уделено внимание яркости подсветки, в полной темноте она включается на 65%, а в светлое время яркость доходит до 100% (в зависимости от уровня освещенности).
Impuls
А почему гасите всю лестницу сразу? Логичнее было бы гасить ступеньки одна за одной по ходу движения человека. И выглядело бы красиво, и не так ярко было бы.
Lockdog
Пустой расход энергии на нагрев стабилизатора напряжения. Ставьте нормальные DC-DC конверторы