Kazalo:

Brezžična LED svetilka Arduino, ki se ujema z uporabo fotorezistorja: 4 koraki
Brezžična LED svetilka Arduino, ki se ujema z uporabo fotorezistorja: 4 koraki

Video: Brezžična LED svetilka Arduino, ki se ujema z uporabo fotorezistorja: 4 koraki

Video: Brezžična LED svetilka Arduino, ki se ujema z uporabo fotorezistorja: 4 koraki
Video: Превратите свой Raspberry Pi Pico в ПЛК Mitsubishi FX1N 2024, November
Anonim
Brezžična LED svetilka Arduino, ki se ujema z uporabo fotorezistorja
Brezžična LED svetilka Arduino, ki se ujema z uporabo fotorezistorja
Brezžična LED svetilka Arduino, ki se ujema z uporabo fotorezistorja
Brezžična LED svetilka Arduino, ki se ujema z uporabo fotorezistorja
Brezžična LED svetilka Arduino, ki se ujema z uporabo fotorezistorja
Brezžična LED svetilka Arduino, ki se ujema z uporabo fotorezistorja

Ta navodila podrobno opisujejo korake, potrebne za izdelavo osnovne brezžične LED svetilke z zaznavanjem svetlobe z uporabo Arduino Unos in fotorezistorja. Možna aplikacija za to napravo bi bila osvetlitev prostora, ki nima oken z umetno sončno svetlobo, ki bi v realnem času ustrezala dejanskim razmeram osvetlitve zunaj. Začnimo!

Seznam zalog:

Arduino Uno x2

NRF24L01 Brezžični oddajnik x2 (izbirno - nahrbtnik NRF24L01 x2)

TIP120 darlingtonski tranzistor

Foto upor

5 mm LED diode x3

Pritisni gumb

100 ohmski upor x3

10k ohmski upor x3

Različne mostične žice

1. korak: Ožičenje modulov in vezja NRF24L01

Ožičenje modulov in vezja NRF24L01
Ožičenje modulov in vezja NRF24L01
Ožičenje modulov in vezja NRF24L01
Ožičenje modulov in vezja NRF24L01
Ožičenje modulov in vezja NRF24L01
Ožičenje modulov in vezja NRF24L01

V tem projektu bo en Arduino deloval kot oddajnik, ki bo ob pritisku na gumb pošiljal podatke o svetlobni upornosti s fotorezistorja. Drugi Arduino bo služil kot sprejemnik, ki bo te podatke sprejel in jih spremenil v signal LED. Prva slika prikazuje diagram oddajnika, druga pa sprejemnik.

Opomba: na fotografijah mojega projekta boste opazili, da so oddajniki NRF24L01 pritrjeni na drugo tiskano vezje. To je modul nahrbtnika za oddajnike, ki deluje kot regulator moči. Poleg tega, da olajšajo ožičenje, ti nahrbtniki uravnavajo vhodno moč za NRF24L01, kar omogoča uporabo 5V napajanja. Zaradi jasnosti sem te nahrbtnike v diagramu izpustil.

(Če se odločite za uporabo nahrbtnikov, si na tej povezavi oglejte diagram loka zatičev glede na zalogo NRF24L01).

Spodaj je priložena kopija vezja PDF za lažje povečevanje/podroben ogled.

2. korak: Kodiranje oddajnika

Zadnji korak je kodiranje. Za uporabo z moduli NRF24L01 boste morali namestiti knjižnico RadioHead ali enakovredno knjižnico.

Za ta projekt oddajnik in sprejemnik Arduinos na vsakem uporabljata drugačno kodo. Tu je koda za oddajnik:

Za udobje sem priložil tudi datoteko.ino (NRF_Send).

#vključi

#vključi

RH_NRF24 nrf24; // Inicializacija oddajnika kot nrf24

gumb int = 5; // Nastavitev vrednosti pin za gumb in foto upor

int pResistor = A0; int vrednost = 0; // Vrednost svetlobe od 0-1023

void setup ()

{Serial.begin (9600); pinMode (gumb, VHOD); pinMode (pResistor, INPUT); if (! nrf24.init ()) // Opozori uporabnika, če inicializacija modula ne uspe Serial.println ("init failed"); // Privzete vrednosti po init so 2,402 GHz (kanal 2), 2 Mb/ s, 0 dBm, če (! Nrf24.setChannel (1)) Serial.println ("setChannel failed"); if (! nrf24.setRF (RH_NRF24:: DataRate2Mbps, RH_NRF24:: TransmitPower0dBm)) Serial.println ("setRF ni uspelo"); }

void loop ()

{if (digitalRead (button)) {// Pošljite sporočilo, če je gumb pritisnjen value = analogRead (pResistor); // preberemo vrednost fotorezistorja (0-1023) uint8_t data = {vrednost}; // Nastavi niz, imenovan "data ", ki vsebuje svetlobno vrednost nrf24.send (data, sizeof (data)); // pošlji matriko prejemniku nrf24.waitPacketSent (); // Počakajte, da se paket pošlje Serial.println ("Light Value:" +String (value)); // Natisnite vrednost svetlobe v serijski monitor}}

3. korak: Kodiranje sprejemnika

Za sprejemnik koda uporablja tudi knjižnico RadioHead.

#vključi

#vključi

RH_NRF24 nrf24;

int LEDPin = 3;

int vrednost = 0; // Vrednost svetlobe od 0-1023

void setup ()

{Serial.begin (9600); pinMode (LEDPin, OUTPUT); if (! nrf24.init ()) Serial.println ("init ni uspel"); // Privzete vrednosti po init so 2,402 GHz (kanal 2), 2 Mb/ s, 0 dBm, če (! Nrf24.setChannel (1)) Serial.println ("setChannel failed"); if (! nrf24.setRF (RH_NRF24:: DataRate2Mbps, RH_NRF24:: TransmitPower0dBm)) Serial.println ("setRF ni uspelo"); }

void loop ()

{// Počakajte na sporočilo uint8_t buf [RH_NRF24_MAX_MESSAGE_LEN]; // Shranite prejeto sporočilo kot niz, imenovan "buf " uint8_t len = sizeof (buf); // Shranimo velikost buf kot "len" while (nrf24.waitAvailableTimeout (200) && nrf24.recv (buf, & len)) // Prejema sporočilo 200 milisekund ali dokler ni prejeto celotno sporočilo {value = buf [0]; // Nastavi vrednost prvemu indeksu buf , ki je int iz fotorezistorja analogWrite (LEDPin, zemljevid (vrednost, 0, 1023, 0, 255)); // Nastavi pin PWM tako, da prikaže skalirano vrednost med 0-255 za svetilnost LED Serial.println (String (vrednost)); } analogWrite (LEDPin, 0); }

4. korak: KONČANO

Uživajte v igri z različnimi stopnjami svetlobe in opazujte, kako se LED ujemajo z njimi! Fotografski upor je včasih lahko prefinjen in najbolje deluje v temni sobi z lokaliziranim virom svetlobe (lahko pa deluje tudi zunaj s soncem).

Priporočena: