Съдържание:
- Стъпка 1: Окабеляване на модулите и веригата NRF24L01
- Стъпка 2: Кодиране на предавателя
- Стъпка 3: Кодиране на приемника
- Стъпка 4: ГОТОВО
Видео: Безжична LED лампа Arduino, съвпадаща със светлината, използваща фоторезистор: 4 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:53
Тази инструкция подробно описва стъпките, необходими за конструирането на елементарна безжична светодиодна лампа със светодиоди, използваща Arduino Unos и фоторезистор. Възможно приложение за това устройство би било осветяване на стая, която няма прозорци с изкуствена слънчева светлина, съответстваща на действителните условия на осветление навън в реално време. Да започваме!
Списък на доставките:
Arduino Uno x2
NRF24L01 Безжичен трансивър x2 (по избор - раница NRF24L01 x2)
TIP120 Дарлингтън транзистор
Фоторезистор
5 мм светодиоди x3
Натисни бутона
100 ома резистор x3
10k ом резистор x3
Различни джъмперни проводници
Стъпка 1: Окабеляване на модулите и веригата NRF24L01
В този проект един Arduino ще действа като предавател, изпращайки данни за нивото на светлината от фоторезистора, когато бутонът е натиснат. Другият Arduino ще служи като приемник, като приема тези данни и ги трансформира в сигнал към светодиодите. Първото изображение показва диаграмата на предавателя, а второто показва приемника.
Забележка: на снимките на моя проект ще забележите, че трансиверите NRF24L01 са прикрепени към друга печатна платка. Това е раничен модул за трансиверите, който действа като регулатор на мощността. Освен че улесняват окабеляването, тези раници регулират входящата мощност за NRF24L01, позволявайки използването на 5V захранване. За по -голяма яснота съм пропуснал тези раници в диаграмата си.
(Ако решите да използвате раниците, моля, вижте тази връзка за диаграма на местоположението на щифтовете във връзка с наличния NRF24L01).
Приложено по -долу е PDF копие на схемата, за по -лесно мащабиране/подробно гледане.
Стъпка 2: Кодиране на предавателя
Последната стъпка е кодирането. Ще трябва да инсталирате библиотеката RadioHead или еквивалентна библиотека за използване с модулите NRF24L01.
За този проект предавателят и приемникът Arduinos използват различен код за всеки. Ето кода за предавателя:
Приложих и.ino файла (NRF_Send) за удобство.
#включва
#включва
RH_NRF24 nrf24; // Инициализиране на трансивър като nrf24
бутон int = 5; // Задаване на стойности на щифтове за бутона и фоторезистора
int pResistor = A0; int стойност = 0; // Стойност на светлината от 0-1023
void setup ()
{Serial.begin (9600); pinMode (бутон, INPUT); pinMode (pResistor, INPUT); if (! nrf24.init ()) // Предупреждава потребителя, ако инициализацията на модула не успее Serial.println ("init failed"); // По подразбиране след init са 2.402 GHz (канал 2), 2Mbps, 0dBm if (! Nrf24.setChannel (1)) Serial.println ("setChannel failed"); if (! nrf24.setRF (RH_NRF24:: DataRate2Mbps, RH_NRF24:: TransmitPower0dBm)) Serial.println ("setRF неуспешно"); }
void loop ()
{if (digitalRead (button)) {// Изпращане на съобщение, ако бутонът е натиснат value = analogRead (pResistor); // Прочетете стойността на фоторезистора (0-1023) uint8_t данни = {стойност}; // Задава масив, наречен "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 setup ()
{Serial.begin (9600); pinMode (LEDPin, OUTPUT); if (! nrf24.init ()) Serial.println ("init failed"); // По подразбиране след init са 2.402 GHz (канал 2), 2Mbps, 0dBm if (! Nrf24.setChannel (1)) Serial.println ("setChannel failed"); if (! nrf24.setRF (RH_NRF24:: DataRate2Mbps, RH_NRF24:: TransmitPower0dBm)) Serial.println ("setRF неуспешно"); }
void loop ()
{// Изчакайте съобщение 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 (стойност, 0, 1023, 0, 255)); // Задава PWM извода за извеждане на мащабирана стойност между 0-255 за яркостта на LED Serial.println (String (стойност)); } analogWrite (LEDPin, 0); }
Стъпка 4: ГОТОВО
Насладете се на игра с различни нива на осветеност и гледайте светодиодите да ги съчетават! Фоторезисторът понякога може да бъде фин и работи най -добре в тъмна стая с локализиран източник на светлина (но може да работи и навън със слънцето).
Препоръчано:
Лесна промяна на цвета, базирана на наклона, безжична лампа с куб Рубик: 10 стъпки (със снимки)
Лесна промяна на цвета, базирана на наклона, безжична лампа с кубик на Рубик: Днес ще изградим тази страхотна лампа с кубик на Рубик, която променя цвета в зависимост от това коя страна е нагоре. Кубът работи на малка LiPo батерия, заредена от стандартен micro-usb кабел и, според моите тестове, има живот на батерията от няколко дни. Това
Безжична RGB LED лента, използваща Bluetooth и Wifi ESP8266: 3 стъпки
Безжична RGB LED лента, използваща Bluetooth и Wifi ESP8266: RGB LED лента, използваща Bluetooth и WIFI Гледайте видеоклип в YouTube за подробна информация
Безжична алармена система Arduino, използваща съществуващи сензори: 9 стъпки (със снимки)
Безжична алармена система Arduino, използваща съществуващи сензори: Този проект може да бъде изграден за около половин час на цена от около $ 20,00, ако имате съществуващи 433Mhz или 315Mhz безжични алармени сензори. Това може да бъде и изцяло нов проект с безжични алармени сензори, като инфрачервени детектори за движение и тръстикови
ThingSpeak, ESP32 и безжична безжична температура и влажност: 5 стъпки
ThingSpeak, ESP32 и безжична безжична температура и влажност: В този урок ще измерваме различни данни за температурата и влажността, използвайки сензор за температура и влажност. Ще научите и как да изпращате тези данни на ThingSpeak. За да можете да го анализирате отвсякъде за различни приложения
Безжична комуникация, използваща евтини 433MHz RF модули и микроконтролери Pic. Част 2: 4 стъпки (със снимки)
Безжична комуникация, използваща евтини 433MHz RF модули и микроконтролери Pic. Част 2: В първата част на тази инструкция, аз демонстрирах как да програмирате PIC12F1822 с помощта на MPLAB IDE и XC8 компилатор, за да изпратите обикновен низ безжично, използвайки евтини модули TX/RX 433MHz. Приемният модул беше свързан чрез USB към UART TTL кабелна реклама