Ничего не найдено :(
    В гостях у Самоделкина! » ИИ » Самоделки » Скетч для Arduino: Умный светильник с датчиком освещенности и RGB-лентой

    Скетч для Arduino: Умный светильник с датчиком освещенности и RGB-лентой

    Описание: Этот скетч автоматически регулирует яркость и цвет RGB-ленты на основе данных с фоторезистора (датчика освещенности). При низкой освещенности лента плавно включает теплый белый свет, а при высокой — отключается.



    Необходимые компоненты:

    • Arduino (Uno/Nano)

    • Фоторезистор + резистор 10 кОм

    • RGB-лента (адресная WS2812B)

    • Макетная плата и провода



    Код:


    #include <Adafruit_NeoPixel.h>  // Библиотека для RGB-ленты
    
    #define PHOTO_PIN A0      // Пин фоторезистора
    #define LED_PIN 6         // Пин ленты
    #define LED_COUNT 30      // Количество светодиодов
    
    Adafruit_NeoPixel strip(LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800);
    
    void setup() {
      Serial.begin(9600);
      strip.begin();          // Инициализация ленты
      strip.show();           // Очистка ленты
    }
    
    void loop() {
      int lightLevel = analogRead(PHOTO_PIN);  // Чтение освещенности (0–1023)
      Serial.print("Light: ");
      Serial.println(lightLevel);
    
      // Преобразуем значение в яркость (0–255)
      int brightness = map(lightLevel, 0, 1023, 255, 0);
      brightness = constrain(brightness, 0, 255);  // Ограничиваем диапазон
    
      // Если темно (значение ниже порога)
      if (brightness > 150) {
        // Плавное включение теплого света (R=255, G=150, B=50)
        for (int i = 0; i < LED_COUNT; i++) {
          strip.setPixelColor(i, strip.Color(255, 150, 50, brightness));
        }
      } else {
        // Выключение ленты
        strip.clear();
      }
      
      strip.show();  // Применяем изменения
      delay(100);    // Задержка для плавности
    }


    Как это работает?

    1. Фоторезистор измеряет уровень света. Чем темнее — тем выше значение на аналоговом пине.

    2. Значение преобразуется в яркость (0–255) с инверсией (чем темнее — тем ярче свет).

    3. При превышении порога (brightness > 150) лента загорается теплым белым (оранжевый оттенок).

    4. Для плавности используется постепенное изменение яркости.



    Дополнения:


    1. Режим цветового градиента

    Замените блок if на:


    // Градиент от синего (дневной свет) к красному (ночь)
    int red = map(lightLevel, 0, 1023, 255, 50);
    int blue = map(lightLevel, 0, 1023, 50, 255);
    strip.fill(strip.Color(red, 0, blue, brightness));


    2. Ручная настройка порога

    Добавьте потенциометр для регулировки чувствительности:


    int threshold = analogRead(A1);  // Потенциометр на A1
    if (brightness > threshold) {
      // Включение света
    }


    Схема подключения

    КомпонентArduino
    ФоторезисторA0 → 5V
    Резистор 10 кОмA0 → GND
    RGB-лентаPin 6 → DIN

    5V → +5V

    GND → GND


    Оптимизации:

    • Калибровка датчика: Добавьте начальную калибровку в setup():


      int ambientLight = analogRead(PHOTO_PIN);  // Замер фонового света
    • Энергосбережение: Уменьшите яркость ночью:


      if (brightness > 200) strip.setBrightness(100);  // 40% мощности


    Этот скетч легко адаптировать под умный дом — например, добавить управление через Bluetooth или MQTT.

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

    Как построить простой парник из подручных материалов за выходные

    Скетч для Arduino: Умная мастерская с мониторингом условий и автоматизацией

    0
    Идея
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    0
    Описание
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    0
    Исполнение
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    Итоговая оценка: 0.0 из 10 (голосов: 0 / История оценок)

    Товары к самоделкам

    Реклама ООО "АЛИБАБА.КОМ (РУ)" ИНН 7703380158

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

    Привет, Гость!


    Зарегистрируйтесь

    Или войдите на сайт, если уже зарегистрированы...

    Войти

    Добавьте самоделку

    Добавьте тему

    Онлайн чат

    Последние комментарии

    Все комментарии