Sadržaj:

Bežična Arduino LED lampa koja odgovara svjetlosti pomoću fotootpornika: 4 koraka
Bežična Arduino LED lampa koja odgovara svjetlosti pomoću fotootpornika: 4 koraka

Video: Bežična Arduino LED lampa koja odgovara svjetlosti pomoću fotootpornika: 4 koraka

Video: Bežična Arduino LED lampa koja odgovara svjetlosti pomoću fotootpornika: 4 koraka
Video: Kako upravljati 4 izmjeničnim opterećenjem putem KR1204 bežičnog daljinskog releja 2024, Studeni
Anonim
Bežična Arduino LED žarulja koja odgovara svjetlosti pomoću fotootpornika
Bežična Arduino LED žarulja koja odgovara svjetlosti pomoću fotootpornika
Bežična Arduino LED žarulja koja odgovara svjetlosti pomoću fotootpornika
Bežična Arduino LED žarulja koja odgovara svjetlosti pomoću fotootpornika
Bežična Arduino LED žarulja koja odgovara svjetlosti pomoću fotootpornika
Bežična Arduino LED žarulja koja odgovara svjetlosti pomoću fotootpornika

Ovo uputstvo detaljno opisuje korake potrebne za konstrukciju rudimentarne bežične LED svjetiljke sa svjetlosnim senzorom pomoću Arduino Unosa i fotootpornika. Moguća primjena za ovaj uređaj bila bi osvjetljavanje prostorije koja nema prozore umjetnom sunčevom svjetlošću, u skladu s stvarnim uvjetima osvjetljenja vani u stvarnom vremenu. Započnimo!

Popis zaliha:

Arduino Uno x2

NRF24L01 Bežični primopredajnik x2 (po izboru - ruksak NRF24L01 x2)

TIP120 darlington tranzistor

Fotootpornik

5 mm LED diode x3

Tipkalo

100 ohmski otpornik x3

10k ohm otpornik x3

Razne kratkospojne žice

Korak 1: Ožičenje modula i kruga NRF24L01

Ožičenje modula i kruga NRF24L01
Ožičenje modula i kruga NRF24L01
Ožičenje modula i kruga NRF24L01
Ožičenje modula i kruga NRF24L01
Ožičenje modula i kruga NRF24L01
Ožičenje modula i kruga NRF24L01

U ovom projektu, jedan Arduino će djelovati kao odašiljač, slati podatke o razini svjetla s fotootpornika kada se pritisne tipkalo. Drugi Arduino poslužit će kao prijemnik, uzimajući te podatke i pretvarajući ih u signal LED diodama. Prva slika prikazuje dijagram odašiljača, a druga prikazuje prijemnik.

Napomena: na fotografijama mog projekta primijetit ćete da su primopredajnici NRF24L01 pričvršćeni na drugu tiskanu ploču. Ovo je ruksak modul za primopredajnike, koji djeluje kao regulator snage. Osim što olakšavaju ožičenje, ovi ruksaci reguliraju ulaznu snagu za NRF24L01, dopuštajući upotrebu 5V napajanja. Izostavio sam ove ruksake u svom dijagramu radi jasnoće.

(Ako se ipak odlučite za korištenje ruksaka, molimo vas da pogledate ovu vezu za dijagram položaja igala u odnosu na zalihu NRF24L01).

Dolje je u prilogu PDF kopija kruga za lakše zumiranje/detaljan pregled.

Korak 2: Kodiranje odašiljača

Posljednji korak je kodiranje. Morat ćete instalirati knjižnicu RadioHead ili ekvivalentnu knjižnicu za upotrebu s modulima NRF24L01.

Za ovaj projekt, odašiljač i prijamnik Arduinos koriste različite kodove za svaki. Evo koda za odašiljač:

Priložio sam i.ino datoteku (NRF_Send) radi praktičnosti.

#uključi

#uključi

RH_NRF24 nrf24; // Pokretanje primopredajnika kao nrf24

int gumb = 5; // Postavljanje vrijednosti pina za gumb i fotootpornik

int pResistor = A0; int vrijednost = 0; // Vrijednost svjetlosti od 0-1023

void setup ()

{Serial.begin (9600); pinMode (gumb, ULAZ); pinMode (pResistor, INPUT); if (! nrf24.init ()) // Upozorava korisnika ako inicijalizacija modula ne uspije Serial.println ("init failed"); // Zadane vrijednosti nakon init -a su 2,402 GHz (kanal 2), 2Mbps, 0dBm if (! Nrf24.setChannel (1)) Serial.println ("setChannel nije uspio"); if (! nrf24.setRF (RH_NRF24:: DataRate2Mbps, RH_NRF24:: TransmitPower0dBm)) Serial.println ("setRF nije uspio"); }

void loop ()

{if (digitalRead (button)) {// Pošaljite poruku ako je gumb pritisnut value = analogRead (pResistor); // Očitavanje vrijednosti fotootpornika (0-1023) uint8_t podataka = {vrijednost}; // Postavlja niz naziva "data " koji sadrži svjetlosnu vrijednost nrf24.send (data, sizeof (data)); // Pošaljite niz primatelju nrf24.waitPacketSent (); // Pričekajte dok se paket ne pošalje Serial.println ("Svjetlosna vrijednost:" +String (vrijednost)); // Ispis svjetlosne vrijednosti u serijski monitor}}

Korak 3: Kodiranje prijemnika

Za prijemnik, kod također koristi RadioHead Library.

#uključi

#uključi

RH_NRF24 nrf24;

int LEDPin = 3;

int vrijednost = 0; // Vrijednost svjetlosti od 0-1023

void setup ()

{Serial.begin (9600); pinMode (LEDPin, OUTPUT); if (! nrf24.init ()) Serial.println ("init nije uspio"); // Zadane vrijednosti nakon init -a su 2,402 GHz (kanal 2), 2Mbps, 0dBm if (! Nrf24.setChannel (1)) Serial.println ("setChannel nije uspio"); if (! nrf24.setRF (RH_NRF24:: DataRate2Mbps, RH_NRF24:: TransmitPower0dBm)) Serial.println ("setRF nije uspio"); }

void loop ()

{// Pričekajte poruku uint8_t buf [RH_NRF24_MAX_MESSAGE_LEN]; // Spremi primljenu poruku kao niz pod nazivom "buf " uint8_t len = sizeof (buf); // Spremi veličinu bufa kao "len" while (nrf24.waitAvailableTimeout (200) && nrf24.recv (buf, & len)) // Prima poruku 200 milisekundi ili dok se cijela poruka ne primi {value = buf [0]; // Postavlja vrijednost prvom indeksu buf , koji je int iz fotootpornika analogWrite (LEDPin, karta (vrijednost, 0, 1023, 0, 255)); // Postavlja PWM pin za izlaz skalirane vrijednosti između 0-255 za LED svjetlinu Serial.println (String (vrijednost)); } analogWrite (LEDPin, 0); }

Korak 4: GOTOVO

Uživajte u igri s različitim razinama osvjetljenja i gledanju LED dioda koje im odgovaraju! Fotootpornik ponekad može biti izbirljiv, a najbolje radi u tamnoj prostoriji s lokaliziranim izvorom svjetlosti (ali može raditi i vani sa suncem).

Preporučeni: