Приборы-помощники

АВТОМАТИЧЕСКАЯ ПОДСВЕТКА ЛЕСТНИЦЫ

03.05.2012

АВТОМАТИЧЕСКАЯ ПОДСВЕТКА ЛЕСТНИЦЫДобрый день! В этом посте хочу поделится с интернет сообществом о том, как мне довелось сделать автоматическое освещение лестницы в своем двухэтажном коттедже. Около четырех месяцев назад, возвращаясь с работы в полной темноте, я не удачно подскользнулся и сломал две плюсниевых кости (пальца) на левой ступне. Целый месяц пришлось провалятся в постеле, так как наступать на ногу было невероятно больно. Потом еще пол месяца хромал без гипса (у кого были переломы меня сразу поймут). После этой печальной истории я начал задумываться об автоматизации освещения ступенек лестницы. Немного поиграв с поисковыми запросами, нашел для себя очень простое решение в этом блоге, как раз на основе моего любимого микроконтроллера Arduino. Схема не вызвала каких то трудностей, но отпугивало количество и длина проводов, которые мне предстояло смонтировать. До этого ничего подобного не делал. Покупать готовые решения или нанимать кого-то — накладно.

В течении месяца заказал нужные комплектующие и не торопясь смонтировал за несколько дней на свою лестницу. Всем кому интересно, что из этого получилось, добро пожаловать под кат!

 


Компоненты

Приведу примерную стоимость всех компонентов, которые были использованы в работе. Большинство комплектующих куплены в магазинах моего города поэтому приведу все в рублях.

 

Arduino Pro Mini 300 р
Ultrasonic Module HC-SR04 Distance Sensor — 2 шт 230 р
Драйвер светодиодов M5450 88 р
Регулятор напряжения L78M05CV 26 р
Фоторезистор ФР-764 16 р
Кабель-канал 20x10 мм — 10 М 100 р
Провод 2x0,12 — 100 М (с запасом для лент) 190 р
Провод 4x0,12 — 20 М (для сенсоров) 60 р
Светодиодная лента LSP0603W15 White — 17 шт по 30 см 1020 р
Мелочевка: текстолит 15x15 см, хлорное железо, сверло 0,9 мм,
штыревые соединители типа PLS, разъемы на плату BLS, термоусадочная трубка,
конденсаторы и резисторы
 
200 р
Блок питания 12В (он же корпус) от сигнализации «Парус 4» Бесплатно


 

Прототип

Отладку прошивки для 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);
}



Немного про монтаж

Так как у меня самая простая деревянная лестница (без подступенной доски), крепление светодиодных лент осуществил с торца каждой ступеньки.

 

Немного про монтаж


По всей длине проходит кабель-канал с уложенными проводами, который приклеен на жидкие гвозди. Светодиодные ленты изначально имеют клейкую сторону, они прекрасно держатся на дереве.

 

Немного про монтаж


Сенсоры были установлены в начале каждой первой ступени вверху и внизу лестницы. В качестве крепления использовал обычные подрозетники для гипсокартона.

 

Немного про монтаж


Из корпуса блока питания сигнализации был выброшен севший аккумулятор, в место него легко поместился наш контроллер.

 

Немного про монтаж


Крышка на месте. Размещаем контроллер под лестничной площадкой.

 

Немного про монтаж


Результат

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







Рекомендуем почитать
  • ДАТЧИК УТЕЧКИ ГАЗА

    ДАТЧИК УТЕЧКИ ГАЗАВзрывы и пожары, возникающие в результате утечки газа, к сожалению, не редкость. Отдавая должное деятельности административных органов и аварийных служб, радиолюбители-конструкторы могут кое-что сделать и сами для минимизации этой опасности. Однако в области газового контроля простых и доступных к повторению устройств почти нет или они неоправданно дороги.
    В продаже есть промышленные датчики, преобразующие концентрацию газа в напряжение, ток, сопротивление и другие параметры. Способностью реагировать на изменение концентрации газа обладают некоторые окислы, особенно SnO2 — диоксид олова, легированный различными присадками. На их основе можно самостоятельно сделать электронное устройство, реагирующее на превышение концентрации какого-либо газа в воздухе и подающее звуковой сигнал.

Добавить комментарий

Защитный код
Обновить

ПОДПИСЫВАЙТЕСЬ VK FB


Нашли ошибку? Выделите слово и нажмите Ctrl+Enter.