Оглавление:

Беспроводная светодиодная лампа с согласованным освещением Arduino с использованием фоторезистора: 4 шага
Беспроводная светодиодная лампа с согласованным освещением Arduino с использованием фоторезистора: 4 шага

Видео: Беспроводная светодиодная лампа с согласованным освещением Arduino с использованием фоторезистора: 4 шага

Видео: Беспроводная светодиодная лампа с согласованным освещением Arduino с использованием фоторезистора: 4 шага
Видео: Системы управления освещением: вебинар 17.12.13 2024, Ноябрь
Anonim
Беспроводная светодиодная лампа с согласованным освещением Arduino с использованием фоторезистора
Беспроводная светодиодная лампа с согласованным освещением Arduino с использованием фоторезистора
Беспроводная светодиодная лампа с согласованным освещением Arduino с использованием фоторезистора
Беспроводная светодиодная лампа с согласованным освещением Arduino с использованием фоторезистора
Беспроводная светодиодная лампа с согласованным освещением Arduino с использованием фоторезистора
Беспроводная светодиодная лампа с согласованным освещением Arduino с использованием фоторезистора

В этом руководстве подробно описаны шаги, необходимые для создания элементарной беспроводной светочувствительной светодиодной лампы с использованием Arduino Unos и фоторезистора. Возможное применение этого устройства - освещение комнаты без окон искусственным солнечным светом, которое соответствует реальным условиям освещения снаружи в режиме реального времени. Давайте начнем!

Список поставок:

Arduino Uno x2

NRF24L01 Беспроводной приемопередатчик x2 (Опционально - рюкзак NRF24L01 x2)

TIP120 транзистор Дарлингтона

Фоторезистор

5-миллиметровые светодиоды x3

Нажать кнопку

Резистор 100 Ом x3

Резистор 10 кОм x3

Различные перемычки

Шаг 1: Подключение модулей и схемы NRF24L01

Подключение модулей и цепи NRF24L01
Подключение модулей и цепи NRF24L01
Подключение модулей и цепи NRF24L01
Подключение модулей и цепи NRF24L01
Подключение модулей и цепи NRF24L01
Подключение модулей и цепи NRF24L01

В этом проекте один Arduino будет действовать как передатчик, отправляя данные об уровне освещенности с фоторезистора при нажатии кнопки. Другой Arduino будет служить приемником, принимая эти данные и преобразуя их в сигнал для светодиодов. На первом изображении показана схема передатчика, а на втором - приемник.

Примечание: на фотографиях моего проекта вы заметите, что трансиверы NRF24L01 прикреплены к другой печатной плате. Это рюкзак для трансиверов, который действует как регулятор мощности. Эти рюкзаки не только упрощают электромонтаж, но и регулируют потребляемую мощность для NRF24L01, позволяя использовать источник питания 5 В. Я не включил эти рюкзаки на диаграмме для ясности.

(Если вы все же решите использовать рюкзаки, перейдите по этой ссылке, чтобы увидеть схему расположения штифтов в соответствии со стандартным NRF24L01).

Ниже прилагается копия схемы в формате PDF для облегчения масштабирования / детального просмотра.

Шаг 2: Кодирование передатчика

Последний шаг - кодирование. Вам потребуется установить библиотеку RadioHead или эквивалентную библиотеку для использования с модулями NRF24L01.

Для этого проекта передатчик и приемник Arduinos используют разные коды для каждого. Вот код передатчика:

Я также прикрепил файл.ino (NRF_Send) для удобства.

#включают

#включают

RH_NRF24 nrf24; // Инициализируем трансивер как nrf24

int button = 5; // Установка значений выводов для кнопки и фоторезистора

int pResistor = A0; значение int = 0; // Значение света от 0 до 1023

установка void ()

{Serial.begin (9600); pinMode (кнопка, ВВОД); pinMode (pResistor, INPUT); if (! nrf24.init ()) // Предупреждает пользователя, если инициализация модуля не удалась Serial.println ("init failed"); // По умолчанию после инициализации 2.402 ГГц (канал 2), 2 Мбит / с, 0 дБм if (! Nrf24.setChannel (1)) Serial.println ("setChannel failed"); если (! nrf24.setRF (RH_NRF24:: DataRate2Mbps, RH_NRF24:: TransmitPower0dBm)) Serial.println ("setRF failed"); }

пустой цикл ()

{if (digitalRead (button)) {// Отправляем сообщение, если кнопка нажата value = analogRead (pResistor); // Считываем значение фоторезистора (0-1023) uint8_t data = {value}; // Устанавливает массив с именем "data ", содержащий значение света nrf24.send (data, sizeof (data)); // Отправляем массив получателю nrf24.waitPacketSent (); // Дождитесь отправки пакета Serial.println ("Light Value:" + String (value)); // Распечатываем световое значение в серийный монитор}}

Шаг 3: Кодирование приемника

Для приемника код также использует библиотеку RadioHead.

#включают

#включают

RH_NRF24 nrf24;

int LEDPin = 3;

значение int = 0; // Значение света от 0 до 1023

установка void ()

{Serial.begin (9600); pinMode (LEDPin, ВЫХОД); если (! nrf24.init ()) Serial.println ("инициализация не удалась"); // По умолчанию после инициализации 2.402 ГГц (канал 2), 2 Мбит / с, 0 дБм if (! Nrf24.setChannel (1)) Serial.println ("setChannel failed"); если (! nrf24.setRF (RH_NRF24:: DataRate2Mbps, RH_NRF24:: TransmitPower0dBm)) Serial.println ("setRF failed"); }

пустой цикл ()

{// Ждем сообщения uint8_t buf [RH_NRF24_MAX_MESSAGE_LEN]; // Сохраняем полученное сообщение как массив с именем "buf " uint8_t len = sizeof (buf); // Сохраняем размер buf как "len" while (nrf24.waitAvailableTimeout (200) && nrf24.recv (buf, & len)) // Принимает сообщение в течение 200 миллисекунд или пока не будет получено все сообщение {value = buf [0]; // Устанавливает значение для первого индекса buf , который представляет собой int из фоторезистора analogWrite (LEDPin, map (value, 0, 1023, 0, 255)); // Устанавливает вывод ШИМ на вывод масштабированного значения от 0 до 255 для яркости светодиода Serial.println (String (value)); } analogWrite (LEDPin, 0); }

Шаг 4: СДЕЛАНО

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

Рекомендуемые: