Меню
Корзина 00 ₽
    Поддержка в мессенджере
    Ampertok
    Каталог
      Поиск
      • Бонусы
      • Блог
      • Доставка
      • Контакты
      • Юр. лицам
      Ampertok
      • Arduino
      • Модули
      • Приборы
      • Датчики
      • Контроллеры
      • Питание и заряд
      • Провода, кабели
      • Дисплеи
      • Инструменты
      • Компоненты
      • Наборы
      • Механика
      • РУ компоненты
      • Умный дом
      • Arduino Nano V 3.0
        Arduino Nano V 3.0
        Arduino Nano V 3.0
        Arduino Nano V 3.0
        Arduino Nano V 3.0

        399 ₽ 1326 ₽

      • DIY KIT Набор часы (зелёные)
        DIY KIT Набор часы (зелёные)
        DIY KIT Набор часы (зелёные)
        5.0 DIY KIT Набор часы (зелёные)

        889 ₽ 1010 ₽

      • Набор Ampertok-46 Arduino Nano
        Набор Ampertok-46 Arduino Nano
        Набор Ampertok-46 Arduino Nano
        Набор Ampertok-46 Arduino Nano

        3100 ₽ 3980 ₽

      • Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        5.0 Набор Arduino Ampertok Mini

        3199 ₽ 5474 ₽

      Bluetooth GPS GSM/GPRS RFID Аудио БП-связь Время Драйвера Зарядки Интерфейсы Макетные платы Преобразователи Реле Wi-Fi
      • Arduino Nano V 3.0
        Arduino Nano V 3.0
        Arduino Nano V 3.0
        Arduino Nano V 3.0
        Arduino Nano V 3.0

        399 ₽ 1326 ₽

      • DIY KIT Набор часы (зелёные)
        DIY KIT Набор часы (зелёные)
        DIY KIT Набор часы (зелёные)
        5.0 DIY KIT Набор часы (зелёные)

        889 ₽ 1010 ₽

      • Набор Ampertok-46 Arduino Nano
        Набор Ampertok-46 Arduino Nano
        Набор Ampertok-46 Arduino Nano
        Набор Ampertok-46 Arduino Nano

        3100 ₽ 3980 ₽

      • Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        5.0 Набор Arduino Ampertok Mini

        3199 ₽ 5474 ₽

      • Arduino Nano V 3.0
        Arduino Nano V 3.0
        Arduino Nano V 3.0
        Arduino Nano V 3.0
        Arduino Nano V 3.0

        399 ₽ 1326 ₽

      • DIY KIT Набор часы (зелёные)
        DIY KIT Набор часы (зелёные)
        DIY KIT Набор часы (зелёные)
        5.0 DIY KIT Набор часы (зелёные)

        889 ₽ 1010 ₽

      • Набор Ampertok-46 Arduino Nano
        Набор Ampertok-46 Arduino Nano
        Набор Ampertok-46 Arduino Nano
        Набор Ampertok-46 Arduino Nano

        3100 ₽ 3980 ₽

      • Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        5.0 Набор Arduino Ampertok Mini

        3199 ₽ 5474 ₽

      Газа Движение Звук Климат Пространство Свет и цвет
      • Arduino Nano V 3.0
        Arduino Nano V 3.0
        Arduino Nano V 3.0
        Arduino Nano V 3.0
        Arduino Nano V 3.0

        399 ₽ 1326 ₽

      • DIY KIT Набор часы (зелёные)
        DIY KIT Набор часы (зелёные)
        DIY KIT Набор часы (зелёные)
        5.0 DIY KIT Набор часы (зелёные)

        889 ₽ 1010 ₽

      • Набор Ampertok-46 Arduino Nano
        Набор Ampertok-46 Arduino Nano
        Набор Ampertok-46 Arduino Nano
        Набор Ampertok-46 Arduino Nano

        3100 ₽ 3980 ₽

      • Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        5.0 Набор Arduino Ampertok Mini

        3199 ₽ 5474 ₽

      Arduino Orange Raspberry STM Программатор ESP
      • Arduino Nano V 3.0
        Arduino Nano V 3.0
        Arduino Nano V 3.0
        Arduino Nano V 3.0
        Arduino Nano V 3.0

        399 ₽ 1326 ₽

      • DIY KIT Набор часы (зелёные)
        DIY KIT Набор часы (зелёные)
        DIY KIT Набор часы (зелёные)
        5.0 DIY KIT Набор часы (зелёные)

        889 ₽ 1010 ₽

      • Набор Ampertok-46 Arduino Nano
        Набор Ampertok-46 Arduino Nano
        Набор Ampertok-46 Arduino Nano
        Набор Ampertok-46 Arduino Nano

        3100 ₽ 3980 ₽

      • Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        5.0 Набор Arduino Ampertok Mini

        3199 ₽ 5474 ₽

      Li-ion Li-Pol Батарейки Батарейные отсеки Блоки питания Модули Солнечные панели
      • Arduino Nano V 3.0
        Arduino Nano V 3.0
        Arduino Nano V 3.0
        Arduino Nano V 3.0
        Arduino Nano V 3.0

        399 ₽ 1326 ₽

      • DIY KIT Набор часы (зелёные)
        DIY KIT Набор часы (зелёные)
        DIY KIT Набор часы (зелёные)
        5.0 DIY KIT Набор часы (зелёные)

        889 ₽ 1010 ₽

      • Набор Ampertok-46 Arduino Nano
        Набор Ampertok-46 Arduino Nano
        Набор Ampertok-46 Arduino Nano
        Набор Ampertok-46 Arduino Nano

        3100 ₽ 3980 ₽

      • Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        5.0 Набор Arduino Ampertok Mini

        3199 ₽ 5474 ₽

      • Arduino Nano V 3.0
        Arduino Nano V 3.0
        Arduino Nano V 3.0
        Arduino Nano V 3.0
        Arduino Nano V 3.0

        399 ₽ 1326 ₽

      • DIY KIT Набор часы (зелёные)
        DIY KIT Набор часы (зелёные)
        DIY KIT Набор часы (зелёные)
        5.0 DIY KIT Набор часы (зелёные)

        889 ₽ 1010 ₽

      • Набор Ampertok-46 Arduino Nano
        Набор Ampertok-46 Arduino Nano
        Набор Ampertok-46 Arduino Nano
        Набор Ampertok-46 Arduino Nano

        3100 ₽ 3980 ₽

      • Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        5.0 Набор Arduino Ampertok Mini

        3199 ₽ 5474 ₽

      TFT Светодиодные Символьные
      • Arduino Nano V 3.0
        Arduino Nano V 3.0
        Arduino Nano V 3.0
        Arduino Nano V 3.0
        Arduino Nano V 3.0

        399 ₽ 1326 ₽

      • DIY KIT Набор часы (зелёные)
        DIY KIT Набор часы (зелёные)
        DIY KIT Набор часы (зелёные)
        5.0 DIY KIT Набор часы (зелёные)

        889 ₽ 1010 ₽

      • Набор Ampertok-46 Arduino Nano
        Набор Ampertok-46 Arduino Nano
        Набор Ampertok-46 Arduino Nano
        Набор Ampertok-46 Arduino Nano

        3100 ₽ 3980 ₽

      • Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        5.0 Набор Arduino Ampertok Mini

        3199 ₽ 5474 ₽

      • Arduino Nano V 3.0
        Arduino Nano V 3.0
        Arduino Nano V 3.0
        Arduino Nano V 3.0
        Arduino Nano V 3.0

        399 ₽ 1326 ₽

      • DIY KIT Набор часы (зелёные)
        DIY KIT Набор часы (зелёные)
        DIY KIT Набор часы (зелёные)
        5.0 DIY KIT Набор часы (зелёные)

        889 ₽ 1010 ₽

      • Набор Ampertok-46 Arduino Nano
        Набор Ampertok-46 Arduino Nano
        Набор Ampertok-46 Arduino Nano
        Набор Ampertok-46 Arduino Nano

        3100 ₽ 3980 ₽

      • Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        5.0 Набор Arduino Ampertok Mini

        3199 ₽ 5474 ₽

      Крепежи Переключатели
      • Arduino Nano V 3.0
        Arduino Nano V 3.0
        Arduino Nano V 3.0
        Arduino Nano V 3.0
        Arduino Nano V 3.0

        399 ₽ 1326 ₽

      • DIY KIT Набор часы (зелёные)
        DIY KIT Набор часы (зелёные)
        DIY KIT Набор часы (зелёные)
        5.0 DIY KIT Набор часы (зелёные)

        889 ₽ 1010 ₽

      • Набор Ampertok-46 Arduino Nano
        Набор Ampertok-46 Arduino Nano
        Набор Ampertok-46 Arduino Nano
        Набор Ampertok-46 Arduino Nano

        3100 ₽ 3980 ₽

      • Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        5.0 Набор Arduino Ampertok Mini

        3199 ₽ 5474 ₽

      Arduino DIY Модули Пайщик Р/У
      • Arduino Nano V 3.0
        Arduino Nano V 3.0
        Arduino Nano V 3.0
        Arduino Nano V 3.0
        Arduino Nano V 3.0

        399 ₽ 1326 ₽

      • DIY KIT Набор часы (зелёные)
        DIY KIT Набор часы (зелёные)
        DIY KIT Набор часы (зелёные)
        5.0 DIY KIT Набор часы (зелёные)

        889 ₽ 1010 ₽

      • Набор Ampertok-46 Arduino Nano
        Набор Ampertok-46 Arduino Nano
        Набор Ampertok-46 Arduino Nano
        Набор Ampertok-46 Arduino Nano

        3100 ₽ 3980 ₽

      • Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        5.0 Набор Arduino Ampertok Mini

        3199 ₽ 5474 ₽

      Двигатели Драйверы Крепления Сервоприводы Шасси
      • Arduino Nano V 3.0
        Arduino Nano V 3.0
        Arduino Nano V 3.0
        Arduino Nano V 3.0
        Arduino Nano V 3.0

        399 ₽ 1326 ₽

      • DIY KIT Набор часы (зелёные)
        DIY KIT Набор часы (зелёные)
        DIY KIT Набор часы (зелёные)
        5.0 DIY KIT Набор часы (зелёные)

        889 ₽ 1010 ₽

      • Набор Ampertok-46 Arduino Nano
        Набор Ampertok-46 Arduino Nano
        Набор Ampertok-46 Arduino Nano
        Набор Ampertok-46 Arduino Nano

        3100 ₽ 3980 ₽

      • Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        5.0 Набор Arduino Ampertok Mini

        3199 ₽ 5474 ₽

      Коптеры и комплектующие Радиоуправляемые модели
      • Arduino Nano V 3.0
        Arduino Nano V 3.0
        Arduino Nano V 3.0
        Arduino Nano V 3.0
        Arduino Nano V 3.0

        399 ₽ 1326 ₽

      • DIY KIT Набор часы (зелёные)
        DIY KIT Набор часы (зелёные)
        DIY KIT Набор часы (зелёные)
        5.0 DIY KIT Набор часы (зелёные)

        889 ₽ 1010 ₽

      • Набор Ampertok-46 Arduino Nano
        Набор Ampertok-46 Arduino Nano
        Набор Ampertok-46 Arduino Nano
        Набор Ampertok-46 Arduino Nano

        3100 ₽ 3980 ₽

      • Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        5.0 Набор Arduino Ampertok Mini

        3199 ₽ 5474 ₽

      • Arduino Nano V 3.0
        Arduino Nano V 3.0
        Arduino Nano V 3.0
        Arduino Nano V 3.0
        Arduino Nano V 3.0

        399 ₽ 1326 ₽

      • DIY KIT Набор часы (зелёные)
        DIY KIT Набор часы (зелёные)
        DIY KIT Набор часы (зелёные)
        5.0 DIY KIT Набор часы (зелёные)

        889 ₽ 1010 ₽

      • Набор Ampertok-46 Arduino Nano
        Набор Ampertok-46 Arduino Nano
        Набор Ampertok-46 Arduino Nano
        Набор Ampertok-46 Arduino Nano

        3100 ₽ 3980 ₽

      • Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        Набор Arduino Ampertok Mini
        5.0 Набор Arduino Ampertok Mini

        3199 ₽ 5474 ₽

      Корзина 00 ₽
      Корзина
      Ваша корзина пуста!
      • Arduino
      • Модули
        Bluetooth GPS GSM/GPRS RFID Аудио БП-связь Время Драйвера Зарядки Интерфейсы Макетные платы Преобразователи Реле Wi-Fi
      • Приборы
      • Датчики
        Газа Движение Звук Климат Пространство Свет и цвет
      • Контроллеры
        Arduino Orange Raspberry STM Программатор ESP
      • Питание и заряд
        Li-ion Li-Pol Батарейки Батарейные отсеки Блоки питания Модули Солнечные панели
      • Провода, кабели
      • Дисплеи
        TFT Светодиодные Символьные
      • Инструменты
      • Компоненты
        Крепежи Переключатели
      • Наборы
        Arduino DIY Модули Пайщик Р/У
      • Механика
        Двигатели Драйверы Крепления Сервоприводы Шасси
      • РУ компоненты
        Коптеры и комплектующие Радиоуправляемые модели
      • Умный дом
      Каталог Поиск Корзина Корзина 00 ₽ Сравнение Войти
      Авторизация
      Забыли пароль?
      Регистрация

      Умная подсветка лестницы своими руками

      • Главная
      • Блог
      • Проекты
      • Умная подсветка лестницы своими руками

      Автоматическая подсветка лестницы на Arduino с адресной лентой — простой проект, который способен в лучшую сторону преобразить интерьер вашего дома. Наш вариант этого популярного DIY проекта отличается простой электрической схемой и программой (скетчем). Для автоматического включения лестничных светильников можно использовать датчики движения или ультразвуковые датчики расстояния.

      В лестничных светильниках используется по два адресных светодиода ws2812b (это количество можно увеличить по желанию), поэтому для подсветки лестницы можно использовать блок питания на 5 Вольт с минимальной мощностью. Включателем можно задействовать «ночной режим» в котором лестничный марш будет всегда подсвечиваться с установленной яркостью, что смотрится очень эффектно.


      Подсветка лестницы на Ардуино своими руками

      • Arduino Nano / Arduino Uno / Arduino Mega;
      • адресная лента WS2812B;
      • блок питания DC 5V;
      • датчик движения или расстояния;
      • включатель;
      • провода, припой, термоусадка и т.д.

      В первом варианте проекта для индикации наличия движения используются HC-SR04 ультразвуковые датчики расстояния Ардуино. Далее размещена схема сборки умной лестницы — подключение адресной ленты и датчиков к плате Arduino Nano (можно использовать Arduino Uno) и рабочая прошивка для микроконтроллера.


      Подсветка лестницы на Ардуино своими руками


      Все настройки, которые можно внести в скетч, даже без знаний основ программирования Arduino — расположены в начале программы. Но при изменении количества светодиодов, размещенных на одной ступени, в код потребуется внести небольшие правки. В этом случае, необходимо будет добавить или убавить строчки в циклах for — strip.setPixelColor(i + 1, strip.Color(j, j, j * 2));


      Скетч с датчиком расстояния

      #include "Ultrasonic.h"
      #include "Adafruit_NeoPixel.h"
      
      // === настройки, которые можно поменять === //
      
      #define LESENKA 6    // количество ступеней на лесенке
      #define LED 2             // количество светодиодов на одной ступени
      #define PIN_LED 3     // пин для подключения адресной ленты
      #define PIN_VKL 9     // пин для подключения переключателя
      
      #define TIMER 5        // пауза для плавного включения/выключения
      #define PAUSA 100    // пауза между включениями ступенек
      #define BRIGHT 200  // максимальная яркость ленты
      #define LIGHT 10       // минимальная яркость ленты
      #define DIST1 50       // расстояние срабатывания 1 датчика
      #define DIST2 50       // расстояние срабатывания 2 датчика
      
      // === настройки, которые можно поменять === // 
       
      Ultrasonic ultrasonic1 (15, 14);   // Trig - A1, Echo - A0
      Ultrasonic ultrasonic2 (19, 18);   // Trig - A5, Echo - A4
      
      int NUM_LED = LESENKA * LED;
      Adafruit_NeoPixel strip (NUM_LED, PIN_LED, NEO_GRB + NEO_KHZ800);
      
      int cm1, cm2, t, i, j, g, J;
      byte w;
      
      void setup() {
        strip.begin();                             // инициализируем объект NeoPixel
        strip.show();                              // отключаем все пиксели на ленте
        strip.setBrightness(BRIGHT);  // указываем яркость (максимум 255)
        Serial.begin(9600);
        pinMode (PIN_VKL, INPUT);  // инициализируем пин для включателя
      }
      
      // узнаем расстояние с 1 датчика
      void u1() {
        for (byte i = 0; i <= 3; i++) {
          cm1 = ultrasonic1.Ranging(CM);
          cm1 = cm1 + cm1;
          delay(10);
        }
        cm1 = cm1 / 3;
        Serial.print("DIST1 - ");
        Serial.println(cm1);
      }
      
      // узнаем расстояние со 2 датчика
      void u2() {
        for (byte i = 0; i <= 3; i++) {
          cm2 = ultrasonic2.Ranging(CM);
          cm2 = cm2 + cm2;
          delay(10);
        }
        cm2 = cm2 / 3;
        Serial.print("DIST2 - ");
        Serial.println(cm2);
      }
       
      void loop() {
       
        // если переключатель включен устанавливаем минимальную яркость ленты
        if (digitalRead(PIN_VKL) == HIGH) { J = 0; }
        if (digitalRead(PIN_VKL) == LOW) { J = LIGHT; }
       
        // включаем все ступени на лестнице с заданной яркостью
        for (i = 0; i <= NUM_LED; i++) {
          strip.setPixelColor(i, strip.Color(J, J, J * 2));
          strip.show();
        }
       
        // поочередно опрашиваем ультразвуковые датчики
        u1();
        delay(100);
        u2();
        delay(100);
      
        if (cm1 < DIST1) { w = 1; }  // если сработал первый датчик  -  заходим в 1 цикл
        if (cm2 < DIST2) { w = 2; }  // если сработал второй датчик  -  заходим во 2 цикл
       
        while (w == 1) { 
          // плавное включение адресной ленты на лестнице снизу-вверх
          for (i = 0; i <= NUM_LED + 1; i = i + LED) {
            for (j = J; j <= 125; j++) {
              strip.setPixelColor(i, strip.Color(j, j, j * 2));
              strip.setPixelColor(i + 1, strip.Color(j, j, j * 2));
              strip.show();
              delay(TIMER);
            }
            delay(PAUSA);
          }
          w = 5; // переход в пятый цикл для ожидания
        }
       
        while (w == 2) {
          // плавное включение адресной ленты на лестнице сверху-вниз
          for (i = NUM_LED + 1; i >= 0; i = i - LED) {
            for (j = J; j <= 160; j++) {
              strip.setPixelColor(i, strip.Color(j, j, j * 2));
              strip.setPixelColor(i - 1, strip.Color(j, j, j * 2));
              strip.show();
              delay(TIMER);
            }
            delay(PAUSA);
          }
          w = 5; // переход в пятый цикл для ожидания
        }
       
        while (w == 5) {
          // плавное затухание подсветки лестницы на адресной ленте
          for (j = 124; j >= J; j = j - 2) {
            for (i = 0; i <= NUM_LED; i++) {
              strip.setPixelColor(i, strip.Color(j, j, j * 2 ));
              strip.show();
            }
       
            // поочередно опрашиваем ультразвуковые датчики
            u1();
            delay(j / 4);
            u2();
            delay(j / 4);
            
            // если сработал один из датчиков - переходим в соответствующий цикл
            if (cm1 < DIST1) { w = 3; goto w3; }
            if (cm2 < DIST2) { w = 4; goto w4; }
          }
          w = 0; // если ни один из датчиков не сработал выходим из цикла
        }
      
        while (w == 3) {
      w3:
          t = map (j, 10, 125, 20, 0);
          // плавное выключение подсветки лестницы снизу-вверх
          for (i = 0; i <= NUM_LED + 1; i = i + LED) {
            for (g = j; g >= J; g--) {
              strip.setPixelColor(i, strip.Color(g, g, g * 2));
              strip.setPixelColor(i + 1, strip.Color(g, g, g * 2));
              strip.show();
              delay(TIMER + t / 2);
            }
            delay(PAUSA);
          }
          w = 0; // выходим из цикла в начало программы
        }
      
        while (w == 4) {
      w4:
          t = map (j, 10, 125, 20, 0);
          // плавное выключение подсветки лестницы сверху-вниз
          for (i = NUM_LED + 1; i >= 0; i = i - LED) {
            for (g = j; g >= J; g--) {
              strip.setPixelColor(i, strip.Color(g, g, g * 2));
              strip.setPixelColor(i - 1, strip.Color(g, g, g * 2));
              strip.show();
              delay(TIMER + t / 2);
            }
            delay(PAUSA);
          }
          w = 0; // выходим из цикла в начало программы
        }
      
      }
      

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

      Оттенок свечения адресной ленты можно также указать свою, по умолчанию стоит голубоватый цвет для автоматической подсветки лестницы;

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


      Скетч с датчиком движения

      #include "Adafruit_NeoPixel.h"
       
      // === настройки, которые можно поменять === //
      
      #define LESENKA 6     // количество ступеней на лесенке
      #define LED 2              // количество светодиодов на одной ступени
      #define PIN_LED 3      // пин для подключения адресной ленты
      #define PIN_VKL 9      // пин для подключения переключателя
      #define PIN_PIR1 15    // пин для подключения 1 датчика движения
      #define PIN_PIR2 19    // пин для подключения 2 датчика движения
      
      #define TIMER 5         // пауза для плавного включения/выключения
      #define PAUSA 100    // пауза между включениями ступенек
      #define BRIGHT 200  // максимальная яркость ленты
      #define LIGHT 10       // минимальная яркость ленты
       
      // === настройки, которые можно поменять === //
      
      int NUM_LED = LESENKA * LED;
      Adafruit_NeoPixel strip (NUM_LED, PIN_LED, NEO_GRB + NEO_KHZ800);
      
      int t, i, j, g, J;
      byte w;
      
      void setup() {
        strip.begin();                            // инициализируем объект NeoPixel
        strip.show();                           // отключаем все пиксели на ленте
        strip.setBrightness(BRIGHT);  // указываем яркость (максимум 255)
      
        pinMode (PIN_VKL, INPUT);   // инициализируем пин для включателя
        pinMode (PIN_PIR1, INPUT);  // инициализируем пин для датчика движения
        pinMode (PIN_PIR2, INPUT);  // инициализируем пин для датчика движения
      }
      
      void loop() {
      
        // если переключатель включен устанавливаем минимальную яркость ленты
        if (digitalRead(PIN_VKL) == HIGH) { J = 0; }
        if (digitalRead(PIN_VKL) == LOW) { J = LIGHT; }
      
        // включаем все ступени на лестнице с заданной яркостью
        for (i = 0; i <= NUM_LED; i++) {
          strip.setPixelColor(i, strip.Color(J, J, J * 2));
          strip.show();
        }
        
        // поочередно опрашиваем датчики движения
        if (digitalRead(PIN_PIR1) == HIGH) { w = 1; }
        delay(100);
        if (digitalRead(PIN_PIR2) == HIGH) { w = 2; }
        delay(100);
      
        while (w == 1) {
          // плавное включение адресной ленты на лестнице снизу-вверх
          for (i = 0; i <= NUM_LED + 1; i = i + LED) {
            for (j = J; j <= 125; j++) {
              strip.setPixelColor(i, strip.Color(j, j, j * 2));
              strip.setPixelColor(i + 1, strip.Color(j, j, j * 2));
              strip.show();
              delay(TIMER);
            }
            delay(PAUSA);
          }
          w = 5; // переход в пятый цикл для ожидания
        }
      
      while (w == 2) {
          // плавное включение адресной ленты на лестнице сверху-вниз
          for (i = NUM_LED + 1; i >= 0; i = i - LED) {
            for (j = J; j <= 160; j++) {
              strip.setPixelColor(i, strip.Color(j, j, j * 2));
              strip.setPixelColor(i - 1, strip.Color(j, j, j * 2));
              strip.show();
              delay(TIMER);
            }
            delay(PAUSA);
          }
          w = 5; // переход в пятый цикл для ожидания
        }
      
      while (w == 5) { for (j = 124; j >= J; j--) {
          // плавное выключение подсветки лестницы на адресной ленте
            for (i = 0; i <= NUM_LED; i++) {
              strip.setPixelColor(i, strip.Color(j, j, j * 2 ));
              strip.show();
            }
            
            // поочередно опрашиваем датчики движения
            if (digitalRead(PIN_PIR1) == HIGH) { w = 3; goto w3; }
            delay(TIMER + j / 2);
            if (digitalRead(PIN_PIR2) == HIGH) { w = 4; goto w4; }
            delay(TIMER + j / 2);
          }
          w = 0; // если ни один из датчиков не сработал выходим из цикла
        }
      
        while (w == 3) {
      w3:
          t = map (j, 10, 125, 20, 0);
       
          // плавное выключение подсветки лестницы на Ардуино снизу-вверх
          for (i = 0; i <= NUM_LED + 1; i = i + LED) {
            for (g = j; g >= J; g--) {
              strip.setPixelColor(i, strip.Color(g, g, g * 2));
              strip.setPixelColor(i + 1, strip.Color(g, g, g * 2));
              strip.show();
              delay(TIMER + t / 2);
            }
            delay(PAUSA);
          }
          w = 0; // выходим из цикла в начало программы
        }
      
        while (w == 4) {
      w4:
          t = map (j, 10, 125, 20, 0);
       
          // плавное выключение подсветки лестницы на Ардуино сверху-вниз
          for (i = NUM_LED + 1; i >= 0; i = i - LED) {
            for (g = j; g >= J; g--) {
              strip.setPixelColor(i, strip.Color(g, g, g * 2));
              strip.setPixelColor(i - 1, strip.Color(g, g, g * 2));
              strip.show();
              delay(TIMER + t / 2);
            }
            delay(PAUSA);
          }
          w = 0; // выходим из цикла в начало программы
        }
      
      }
      

      Радиус срабатывания PIR датчиков движения HC-SR501 программно изменить нельзя, в отличие от ультразвуковых датчиков движения;

      Датчики движения можно заменить датчиками препятствия (KY-032 Arduino), при этом схема сборки и прошивка микроконтроллера не изменится.

      Для создания «умной» подсветки лестницы своими руками на Ардуино существует множество вариантов исполнения. В нашем случае большинство настроек задается только в программе, что значительно упрощает схему сборки и прошивку DIY проекта.

      Теги:

      Поделиться
      513
      0
      5 Июля, 2023
      Комментарии
      • Ваш комментарий будет первым
      Оставить комментарий
      Поделиться
      Выберите обязательные опции

      Мы используем файлы cookie и другие средства сохранения предпочтений и анализа действий посетителей сайта. Подробнее в Условия соглашения. Нажмите «Принять», если даете согласие на это.

      Принять
      Ampertok

      Интернет-магазин «Ampertok.ru»

      2025

      Аккаунт
      • Сравнение
      • Избранное
      • Возвраты
      • Аккаунт
      • Корзина
      Информация
      • Контакты
      • Блог
      • Доставка
      • Условия соглашения
      • Бонусы
      • Возврат
      • Юр. лицам
      Категории
      • Arduino
      • Контроллеры
      • Наборы
      • Инструменты
      • Модули
      • Датчики
      Поддержка

      Будни, с 10.00 до 17.00

      Поддержка в мессенджере
      Электронная почта
      shop@ampertok.ru
      Адрес магазина
      г. Санкт-Петербург, ул. Бухарестская д.6
      Мы в сети
      • Сообщество
      • Канал
      Подписаться на рассылку

      Мы не будем присылать вам спам. Только скидки, выгодные предложения, а так же интересные статьи!

      Ampertok

      Интернет-магазин «Ampertok.ru», 2025