Obsah:

Bezdrôtová LED lampa zodpovedajúca svetlu Arduino pomocou fotorezistora: 4 kroky
Bezdrôtová LED lampa zodpovedajúca svetlu Arduino pomocou fotorezistora: 4 kroky

Video: Bezdrôtová LED lampa zodpovedajúca svetlu Arduino pomocou fotorezistora: 4 kroky

Video: Bezdrôtová LED lampa zodpovedajúca svetlu Arduino pomocou fotorezistora: 4 kroky
Video: Делаем терминал умного дома из планшета 2024, November
Anonim
Bezdrôtová LED lampa zodpovedajúca svetlu Arduino pomocou fotorezistora
Bezdrôtová LED lampa zodpovedajúca svetlu Arduino pomocou fotorezistora
Bezdrôtová LED lampa zodpovedajúca svetlu Arduino pomocou fotorezistora
Bezdrôtová LED lampa zodpovedajúca svetlu Arduino pomocou fotorezistora
Bezdrôtová LED lampa zodpovedajúca svetlu Arduino pomocou fotorezistora
Bezdrôtová LED lampa zodpovedajúca svetlu Arduino pomocou fotorezistora

Tento návod podrobne popisuje kroky potrebné na zostrojenie základnej bezdrôtovej LED žiarovky na snímanie svetla pomocou Arduino Unos a fotorezistora. Možnou aplikáciou tohto zariadenia by bolo osvetlenie miestnosti bez okien umelým slnečným žiarením, ktoré by zodpovedalo skutočným svetelným podmienkam vonku v reálnom čase. Začnime!

Zoznam dodávok:

Arduino Uno x2

Bezdrôtový transceiver NRF24L01 x2 (voliteľný - batoh NRF24L01 x2)

TIP120 darlingtonský tranzistor

Fotorezistor

LED diódy 5 mm x3

Tlačidlo

Rezistor 100 ohmov x3

Rezistor 10k ohm x3

Rôzne prepojovacie vodiče

Krok 1: Zapojenie modulov a obvodu NRF24L01

Zapojenie modulov a obvodu NRF24L01
Zapojenie modulov a obvodu NRF24L01
Zapojenie modulov a obvodu NRF24L01
Zapojenie modulov a obvodu NRF24L01
Zapojenie modulov a obvodu NRF24L01
Zapojenie modulov a obvodu NRF24L01

V tomto projekte bude jedno Arduino fungovať ako vysielač, ktorý po stlačení tlačidla bude odosielať údaje o úrovni svetla z fotorezistora. Druhé Arduino bude slúžiť ako prijímač, ktorý zachytí tieto údaje a prevedie ich na signál k diódam LED. Prvý obrázok ukazuje diagram vysielača a druhý ukazuje prijímač.

Poznámka: Na fotografiách môjho projektu si všimnete, že vysielače a prijímače NRF24L01 sú pripevnené k inej doske plošných spojov. Jedná sa o batohový modul pre transceivery, ktorý funguje ako regulátor výkonu. Tieto batohy okrem uľahčenia zapojenia regulujú aj príkon NRF24L01, čo umožňuje použitie napájania 5V. Tieto batohy som kvôli prehľadnosti vo svojom diagrame vynechal.

(Ak sa rozhodnete používať batohy, v tomto odkaze nájdete diagram umiestnenia kolíkov s odkazom na zásoby NRF24L01).

Nižšie je pripojená kópia obvodu vo formáte PDF na uľahčenie priblíženia/detailného zobrazenia.

Krok 2: Kódovanie vysielača

Posledným krokom je kódovanie. Na použitie s modulmi NRF24L01 budete musieť nainštalovať knižnicu RadioHead alebo ekvivalentnú knižnicu.

Pre tento projekt používajú vysielač a prijímač Arduinos na každom iný kód. Tu je kód pre vysielač:

Tiež som pre jednoduchosť pripojil súbor.ino (NRF_Send).

#zahrnúť

#zahrnúť

RH_NRF24 nrf24; // Inicializácia transceiveru ako nrf24

tlačidlo int = 5; // Nastavenie hodnôt pinov pre tlačidlo a fotoodpor

int pResistor = A0; int hodnota = 0; // Hodnota svetla od 0-1023

neplatné nastavenie ()

{Serial.begin (9600); pinMode (tlačidlo, VSTUP); pinMode (pResistor, INPUT); if (! nrf24.init ()) // Upozorní používateľa, ak inicializácia modulu zlyhá Serial.println ("inicializácia zlyhala"); // Predvolené hodnoty po inicializácii sú 2,402 GHz (kanál 2), 2 Mb/ s, 0 dBm, ak (! Nrf24.setChannel (1)) Serial.println ("setChannel failed"); if (! nrf24.setRF (RH_NRF24:: DataRate2Mbps, RH_NRF24:: TransmitPower0dBm)) Serial.println ("setRF failed"); }

prázdna slučka ()

{if (digitalRead (tlačidlo)) {// Odoslanie správy po stlačení tlačidla value = analogRead (pResistor); // Prečítajte si hodnotu fotoodporu (0-1023) uint8_t data = {value}; // Nastaví pole s názvom „data “obsahujúce svetelnú hodnotu nrf24.send (data, sizeof (data)); // Odošlite pole príjemcovi nrf24.waitPacketSent (); // Počkajte, kým nebude paket odoslaný Serial.println ("Hodnota svetla:" +String (hodnota)); // Vytlačte hodnotu svetla na sériový monitor}}

Krok 3: Kódovanie prijímača

V prípade prijímača kód tiež používa knižnicu RadioHead.

#zahrnúť

#zahrnúť

RH_NRF24 nrf24;

int LEDPin = 3;

int hodnota = 0; // Hodnota svetla od 0-1023

neplatné nastavenie ()

{Serial.begin (9600); pinMode (LEDPin, OUTPUT); if (! nrf24.init ()) Serial.println ("inicializácia zlyhala"); // Predvolené hodnoty po inicializácii sú 2,402 GHz (kanál 2), 2 Mb/ s, 0 dBm, ak (! Nrf24.setChannel (1)) Serial.println ("setChannel failed"); if (! nrf24.setRF (RH_NRF24:: DataRate2Mbps, RH_NRF24:: TransmitPower0dBm)) Serial.println ("setRF failed"); }

prázdna slučka ()

{// Počkajte na správu uint8_t buf [RH_NRF24_MAX_MESSAGE_LEN]; // Uložte prijatú správu ako pole s názvom „buf “uint8_t len = sizeof (buf); // Uložte veľkosť bufetu ako „len“while (nrf24.waitAvailableTimeout (200) && nrf24.recv (buf, & len)) // Prijíma správu 200 milisekúnd alebo kým sa neprijme celá správa {value = buf [0]; // Nastaví hodnotu na prvý index buf , čo je int z fotorezistora analogWrite (LEDPin, map (hodnota, 0, 1023, 0, 255)); // Nastaví pin PWM na výstup v stupnici od 0 do 255 pre jas LED Serial.println (String (hodnota)); } analogWrite (LEDPin, 0); }

Krok 4: HOTOVO

Užite si hranie s rôznymi úrovňami svetla a sledujte, ako sa LED diódy zhodujú! Fotorezistor môže byť niekedy jemný a funguje najlepšie v tmavej miestnosti s lokalizovaným zdrojom svetla (ale môže fungovať aj vonku so slnkom).

Odporúča: