Satura rādītājs:

Bezvadu Arduino gaismas atbilstības LED lampa, izmantojot fotorezistoru: 4 soļi
Bezvadu Arduino gaismas atbilstības LED lampa, izmantojot fotorezistoru: 4 soļi

Video: Bezvadu Arduino gaismas atbilstības LED lampa, izmantojot fotorezistoru: 4 soļi

Video: Bezvadu Arduino gaismas atbilstības LED lampa, izmantojot fotorezistoru: 4 soļi
Video: Led Chaser Circuit Using Arduino Uno | Arduino Uno Projects | #shorts #arduino #electronics 2024, Jūlijs
Anonim
Bezvadu Arduino gaismas atbilstoša LED lampa, izmantojot fotorezistoru
Bezvadu Arduino gaismas atbilstoša LED lampa, izmantojot fotorezistoru
Bezvadu Arduino gaismas atbilstoša LED lampa, izmantojot fotorezistoru
Bezvadu Arduino gaismas atbilstoša LED lampa, izmantojot fotorezistoru
Bezvadu Arduino gaismas atbilstoša LED lampa, izmantojot fotorezistoru
Bezvadu Arduino gaismas atbilstoša LED lampa, izmantojot fotorezistoru

Šajā pamācībā ir sīki aprakstītas darbības, kas nepieciešamas, lai izveidotu elementāru bezvadu gaismas sensoru LED lampu, izmantojot Arduino Unos un fotorezistoru. Šīs ierīces iespējamais pielietojums būtu telpas, kurā nav logu, apgaismošana ar mākslīgu saules gaismu, kas reālajā laikā atbilstu faktiskajiem apgaismojuma apstākļiem ārpusē. Sāksim!

Piegādes saraksts:

Arduino Uno x2

NRF24L01 bezvadu uztvērējs x2 (pēc izvēles - NRF24L01 mugursoma x2)

TIP120 darlington tranzistors

Fotorezistors

5 mm gaismas diodes x3

Uzspied pogu

100 omu rezistors x3

10k omu rezistors x3

Dažādi džemperu vadi

1. darbība: NRF24L01 moduļu un ķēdes vadu savienošana

Elektroinstalācija NRF24L01 moduļos un shēmā
Elektroinstalācija NRF24L01 moduļos un shēmā
Elektroinstalācija NRF24L01 moduļos un shēmā
Elektroinstalācija NRF24L01 moduļos un shēmā
Elektroinstalācija NRF24L01 moduļos un shēmā
Elektroinstalācija NRF24L01 moduļos un shēmā

Šajā projektā viens Arduino darbosies kā raidītājs, nosūtot gaismas līmeņa datus no fotorezistora, nospiežot pogu. Otrs Arduino kalpos kā uztvērējs, ņemot šos datus un pārveidojot tos par gaismas diodes signālu. Pirmajā attēlā redzama raidītāja diagramma, bet otrajā - uztvērējs.

Piezīme: mana projekta fotoattēlos pamanīsit, ka NRF24L01 raiduztvērēji ir pievienoti citai PCB. Šis ir raiduztvērēju mugursomas modulis, kas darbojas kā jaudas regulators. Papildus vadu atvieglošanai, šīs mugursomas regulē NRF24L01 strāvas padevi, ļaujot izmantot 5 V barošanas avotu. Skaidrības labad diagrammā esmu izlaidis šīs mugursomas.

(Ja jūs nolemjat izmantot mugursomas, lūdzu, skatiet šo saiti, lai redzētu tapas atrašanās vietu diagrammu, atsaucoties uz krājumu NRF24L01).

Tālāk pievienota shēmas PDF kopija, lai atvieglotu tālummaiņu/detalizētu apskati.

2. darbība: raidītāja kodēšana

Pēdējais solis ir kodēšana. Jums būs jāinstalē RadioHead bibliotēka vai līdzvērtīga bibliotēka lietošanai kopā ar NRF24L01 moduļiem.

Šim projektam raidītājs un uztvērējs Arduinos katrā izmanto atšķirīgu kodu. Šeit ir raidītāja kods:

Ērtības labad esmu pievienojis arī.ino failu (NRF_Send).

#iekļaut

#iekļaut

RH_NRF24 nrf24; // Raidītāja uztvērēja inicializēšana kā nrf24

int poga = 5; // Pogas un fotorezistora tapu vērtību iestatīšana

int pResistor = A0; int vērtība = 0; // Gaismas vērtība no 0-1023

anulēts iestatījums ()

{Sērijas sākums (9600); pinMode (poga, INPUT); pinMode (pResistor, INPUT); if (! nrf24.init ()) // Brīdina lietotāju, ja moduļa inicializācija neizdodas Serial.println ("init neizdevās"); // Noklusējuma vērtības pēc init ir 2,402 GHz (2. kanāls), 2 Mb/ s, 0 dBm, ja (! Nrf24.setChannel (1)) Serial.println ("setChannel neizdevās"); ja (! nrf24.setRF (RH_NRF24:: DataRate2Mbps, RH_NRF24:: TransmitPower0dBm)) Serial.println ("setRF neizdevās"); }

tukša cilpa ()

{if (digitalRead (poga)) {// Nosūtīt ziņojumu, ja poga ir nospiesta value = analogRead (pResistor); // Nolasiet fotorezistora vērtību (0-1023) uint8_t data = {value}; // Iestata masīvu ar nosaukumu "data ", kas satur gaismas vērtību nrf24.send (data, sizeof (data)); // Sūtīt masīvu uztvērējam nrf24.waitPacketSent (); // Pagaidiet, līdz pakete ir nosūtīta Serial.println ("Light Value:" +String (value)); // Izdrukājiet gaismas vērtību sērijas monitorā}}

3. solis: uztvērēja kodēšana

Uztvērējam kods izmanto arī RadioHead bibliotēku.

#iekļaut

#iekļaut

RH_NRF24 nrf24;

int LEDPin = 3;

int vērtība = 0; // Gaismas vērtība no 0-1023

anulēts iestatījums ()

{Sērijas sākums (9600); pinMode (LEDPin, OUTPUT); ja (! nrf24.init ()) Serial.println ("init neizdevās"); // Noklusējuma vērtības pēc init ir 2,402 GHz (2. kanāls), 2 Mb/ s, 0 dBm, ja (! Nrf24.setChannel (1)) Serial.println ("setChannel neizdevās"); ja (! nrf24.setRF (RH_NRF24:: DataRate2Mbps, RH_NRF24:: TransmitPower0dBm)) Serial.println ("setRF neizdevās"); }

tukša cilpa ()

{// Gaidiet ziņojumu uint8_t buf [RH_NRF24_MAX_MESSAGE_LEN]; // Saglabājiet saņemto ziņojumu kā masīvu ar nosaukumu "buf " uint8_t len = sizeof (buf); // Saglabājiet buf lielumu kā "len", kamēr (nrf24.waitAvailableTimeout (200) && nrf24.recv (buf, & len)) // Saņem ziņojumu 200 milisekundēs vai līdz visa ziņojuma saņemšanai {value = buf [0]; // Iestata vērtību uz buf pirmo indeksu, kas ir int no fotorezistora analogWrite (LEDPin, karte (vērtība, 0, 1023, 0, 255)); // Iestata PWM tapu, lai izvadītu mērogotu vērtību no 0 līdz 255 LED spilgtumam Serial.println (String (vērtība)); } analogWrite (LEDPin, 0); }

4. solis: GATAVS

Izbaudiet spēlēšanos ar dažādiem gaismas līmeņiem un skatieties, kā gaismas diodes tiem atbilst! Fotorezistors dažreiz var būt smalks un vislabāk darbojas tumšā telpā ar lokalizētu gaismas avotu (bet var darboties arī ārā ar sauli).

Ieteicams: