Sadržaj:
- Korak 1: Ožičenje modula i kruga NRF24L01
- Korak 2: Kodiranje odašiljača
- Korak 3: Kodiranje prijemnika
- Korak 4: GOTOVO
Video: Bežična Arduino LED lampa koja odgovara svjetlosti pomoću fotootpornika: 4 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:37
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
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:
Siromašni poklopac objektiva ili sjenilo (odgovara bilo kojem DSLR-u / polu-DSLR-u): 4 koraka
Siromašni poklopac objektiva ili sjenilo (odgovara bilo kojem DSLR-u / polu-DSLR-u): Kad sam kupio svoj DSLR, iz druge ruke nije imao poklopac objektiva. Još je bio u dobrom stanju i nikad nisam stigao kupiti poklopac za objektiv. Tako da sam upravo napravio jedan. Budući da nosim fotoaparat na neka prašnjava mjesta, vjerojatno je najbolje imati poklopac objektiva
Bežična RGB LED traka koja koristi Bluetooth i Wifi ESP8266: 3 koraka
Bežična RGB LED traka pomoću Bluetootha i Wi -Fi -ja ESP8266: RGB LED traka pomoću Bluetootha i WIFI -a Gledajte YouTube video za detaljne informacije
Iscrtavanje intenziteta svjetlosti pomoću Arduina i Pythonove glavne biblioteke Arduino: 5 koraka
Iscrtavanje intenziteta svjetlosti pomoću Arduina i Pythonove glavne biblioteke Arduino: Arduino je ekonomičan, ali vrlo učinkovit i funkcionalan alat, a njegovo programiranje u Embedded C -u čini proces stvaranja projekata dosadnim! Arduino_Master modul Pythona to pojednostavljuje i omogućuje nam izračune, uklanjanje vrijednosti smeća
Proračun intenziteta svjetlosti pomoću BH1715 i Arduino Nano: 5 koraka
Proračun svjetlosnog intenziteta pomoću BH1715 i Arduino Nano: Jučer smo radili na LCD zaslonima i tijekom rada nad njima shvatili smo važnost izračuna intenziteta svjetlosti. Intenzitet svjetlosti nije važan samo u fizičkoj domeni ovoga svijeta, već ima i svoju dobro rečeno ulogu u biologiji
Knex iPod priključna stanica (odgovara bilo kojoj veličini): 6 koraka
Knex iPod priključna stanica (odgovara bilo kojoj veličini): Zdravo! Ovo je moj prvi razumni Instructable! Zato čestitam za mene! Sada na Instructable! Dakle, ovo pristanište za K'nex Ipod. To je moja prijava za Jayefuu -ovo natjecanje u knexu. Odgovara bilo kojoj vrsti iPod -a ili iPhone -a. VRLO je čvrst. Spustio sam ga niz stazu