Sisällysluettelo:
- Vaihe 1: NRF24L01 -moduulien ja -piirin johdotus
- Vaihe 2: Lähettimen koodaus
- Vaihe 3: Vastaanottimen koodaus
- Vaihe 4: VALMIS
Video: Langaton Arduino-valoa vastaava LED-lamppu valoresistorin avulla: 4 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:03
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
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:
Palauta Game Boy tai vastaava elektroniikka: 7 vaihetta (kuvilla)
Palauta Game Boy tai vastaava elektroniikka: Ensinnäkin kiitos, että tutustut opetusohjelmaan! Toiseksi panostan paljon aikaa YouTube -videoon, joten katso myös se, se selittää kaiken. Video:
Langaton RGB -LED -nauha Bluetoothin ja Wifi: n avulla ESP8266: 3 vaihetta
Langaton RGB -LED -nauha Bluetoothin ja Wifi: n avulla ESP8266: RGB -LED -nauha Bluetoothin ja WIFI: n avulla Katso yksityiskohtaista tietoa YouTube -videosta
Langaton Bluetooth -botti Arduinon ja Bluetoothin avulla: 6 vaihetta
Langaton Bluetooth-botti Arduinon ja Bluetoothin avulla: Tässä opetusohjelmassa aiomme oppia tekemään langattoman Bluetooth-botin Arduinon ja Bluetooth-moduulin hc-05 avulla ja hallita sitä älypuhelimellamme
DIY -langaton lähetys IR -LED -valon ja aurinkopaneelin avulla: 4 vaihetta
DIY -langaton lähetys IR -LED -valon ja aurinkopaneelin avulla: Kuten me kaikki tiedämme aurinkopaneeleista, aurinkopaneelit imevät auringonvaloa energianlähteenä sähkön tuottamiseksi. Se on loistava lahja ilmaisesta virtalähteestä. Mutta silti sitä ei käytetä laajasti. Suurin syy tähän on se, että se on kallista
Viidenkymmenen metrin kantaman langaton tukiasema TP -linkillä WN7200ND langaton USB -sovitin raspbian -venytyksellä: 6 vaihetta
Viidenkymmenen metrin kantaman langaton tukiasema, jossa on TP -linkki WN7200ND langaton USB -sovitin Raspbian Stretchillä: Raspberry Pi on loistava suojattujen langattomien tukiasemien luomiseen, mutta sillä ei ole hyvää kantamaa. Haluan jakaa miten se tehdäänMiksi haluan käyttää vadelmapiä reitittimen sijaan? T