Sisällysluettelo:

Langaton Arduino-valoa vastaava LED-lamppu valoresistorin avulla: 4 vaihetta
Langaton Arduino-valoa vastaava LED-lamppu valoresistorin avulla: 4 vaihetta

Video: Langaton Arduino-valoa vastaava LED-lamppu valoresistorin avulla: 4 vaihetta

Video: Langaton Arduino-valoa vastaava LED-lamppu valoresistorin avulla: 4 vaihetta
Video: CS50 Live, серия 003 2024, Heinäkuu
Anonim
Langaton Arduino-valoa vastaava LED-lamppu, joka käyttää valoresistoria
Langaton Arduino-valoa vastaava LED-lamppu, joka käyttää valoresistoria
Langaton Arduino-valoa vastaava LED-lamppu, joka käyttää valoresistoria
Langaton Arduino-valoa vastaava LED-lamppu, joka käyttää valoresistoria
Langaton Arduino-valoa vastaava LED-lamppu, joka käyttää valoresistoria
Langaton Arduino-valoa vastaava LED-lamppu, joka käyttää valoresistoria

Tässä ohjeessa kerrotaan vaiheista, jotka ovat välttämättömiä alkeellisen langattoman valoa tunnistavan LED-lampun rakentamiseksi Arduino Unoja ja valovastuksen avulla. Mahdollinen sovellus tälle laitteelle olisi valaista huone, jossa ei ole ikkunoita, keinotekoisella auringonvalolla, joka vastaa todellisia valaistusolosuhteita ulkona reaaliajassa. Aloitetaan!

Toimitusluettelo:

Arduino Uno x2

NRF24L01 langaton lähetin -vastaanotin x2 (valinnainen - NRF24L01 -reppu x2)

TIP120 darlington -transistori

Valovastus

5 mm: n LEDit x3

Paina nappia

100 ohmin vastus x3

10k ohmin vastus x3

Erilaiset Jumper -johdot

Vaihe 1: NRF24L01 -moduulien ja -piirin johdotus

NRF24L01 -moduulien ja -piirin johdotus
NRF24L01 -moduulien ja -piirin johdotus
NRF24L01 -moduulien ja -piirin johdotus
NRF24L01 -moduulien ja -piirin johdotus
NRF24L01 -moduulien ja -piirin johdotus
NRF24L01 -moduulien ja -piirin johdotus

Tässä projektissa yksi Arduino toimii lähettimenä, joka lähettää valotason tietoja valovastuksesta, kun painiketta painetaan. Toinen Arduino toimii vastaanottimena, ottaa nämä tiedot ja muuntaa ne LED -signaaliksi. Ensimmäinen kuva esittää lähettimen kaaviota ja toinen vastaanotinta.

Huomaa: projektini valokuvissa huomaat, että NRF24L01 -lähetinvastaanottimet on liitetty toiseen piirilevyyn. Tämä on lähetin -vastaanottimien reppumoduuli, joka toimii tehonsäätimenä. Johdotuksen helpottamisen lisäksi nämä reput säätelevät NRF24L01: n virransyöttöä ja mahdollistavat 5 V: n virtalähteen käytön. Olen jättänyt nämä reput pois kaaviosta selvyyden vuoksi.

(Jos päätät käyttää reppuja, katso tästä linkistä kaavio nastan sijainnista viittaamalla varastoon NRF24L01).

Alla on piirin PDF -kopio zoomauksen/yksityiskohtaisen katselun helpottamiseksi.

Vaihe 2: Lähettimen koodaus

Viimeinen vaihe on koodaus. Sinun on asennettava RadioHead -kirjasto tai vastaava kirjasto käytettäväksi NRF24L01 -moduulien kanssa.

Tässä projektissa lähetin ja vastaanotin Arduinos käyttävät eri koodia. Tässä on lähettimen koodi:

Olen myös liittänyt.ino -tiedoston (NRF_Send) mukavuuden vuoksi.

#sisältää

#sisältää

RH_NRF24 nrf24; // Lähetinvastaanottimen alustaminen nimellä nrf24

int -painike = 5; // Napin ja valoresistorin nasta -arvojen asettaminen

int pResistor = A0; int -arvo = 0; // Valon arvo 0-1023

mitätön asennus ()

{Serial.begin (9600); pinMode (painike, INPUT); pinMode (pResistor, INPUT); if (! nrf24.init ()) // Varoittaa käyttäjää, jos moduulin alustus epäonnistuu Serial.println ("init epäonnistui"); // Oletusarvot initin jälkeen ovat 2,402 GHz (kanava 2), 2 Mbps, 0 dBm, jos (! Nrf24.setChannel (1)) Serial.println ("setChannel failed"); if (! nrf24.setRF (RH_NRF24:: DataRate2Mbps, RH_NRF24:: TransmitPower0dBm)) Serial.println ("setRF epäonnistui"); }

tyhjä silmukka ()

{if (digitalRead (button)) {// Lähetä viesti, jos painiketta painetaan value = analogRead (pResistor); // Lue valoresistorin arvo (0-1023) uint8_t data = {value}; // Asettaa taulukon nimeltä "data ", joka sisältää valoarvon nrf24.send (data, sizeof (data)); // Lähetä matriisi vastaanottimelle nrf24.waitPacketSent (); // Odota, kunnes paketti on lähetetty Serial.println ("Light Value:" +String (value)); // Tulosta valoarvo sarjamonitoriin}}

Vaihe 3: Vastaanottimen koodaus

Vastaanottimessa koodi käyttää myös RadioHead -kirjastoa.

#sisältää

#sisältää

RH_NRF24 nrf24;

int LEDPin = 3;

int -arvo = 0; // Valon arvo 0-1023

mitätön asennus ()

{Serial.begin (9600); pinMode (LEDPin, OUTPUT); if (! nrf24.init ()) Serial.println ("init epäonnistui"); // Oletusarvot initin jälkeen ovat 2,402 GHz (kanava 2), 2 Mbps, 0 dBm, jos (! Nrf24.setChannel (1)) Serial.println ("setChannel failed"); if (! nrf24.setRF (RH_NRF24:: DataRate2Mbps, RH_NRF24:: TransmitPower0dBm)) Serial.println ("setRF epäonnistui"); }

tyhjä silmukka ()

{// Odota viestiä uint8_t buf [RH_NRF24_MAX_MESSAGE_LEN]; // Tallenna vastaanotettu viesti matriisina nimeltä "buf " uint8_t len = sizeof (buf); // Tallenna bufin koko "len", kun (nrf24.waitAvailableTimeout (200) && nrf24.recv (buf, & len)) // Vastaanottaa viestin 200 millisekuntia tai kunnes koko viesti on vastaanotettu {value = buf [0]; // Asettaa arvon buf : n ensimmäiseen indeksiin, joka on valon vastus analogWrite (LEDPin, kartta (arvo, 0, 1023, 0, 255)); // Asettaa PWM-nastan tuottamaan skaalatun arvon välillä 0-255 LED-kirkkaudelle Serial.println (String (arvo)); } analogWrite (LEDPin, 0); }

Vaihe 4: VALMIS

Nauti leikkimisestä eri valotasoilla ja katsomalla, kuinka LEDit vastaavat niitä! Valoresistori voi joskus olla nirso ja toimii parhaiten pimeässä huoneessa, jossa on paikallinen valonlähde (mutta voi toimia myös auringon kanssa).

Suositeltava: