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, Novembar
Anonim
Bežična Arduino LED lampa koja odgovara svjetlosti pomoću fotootpornika
Bežična Arduino LED lampa koja odgovara svjetlosti pomoću fotootpornika
Bežična Arduino LED lampa koja odgovara svjetlosti pomoću fotootpornika
Bežična Arduino LED lampa koja odgovara svjetlosti pomoću fotootpornika
Bežična Arduino LED lampa koja odgovara svjetlosti pomoću fotootpornika
Bežična Arduino LED lampa koja odgovara svjetlosti pomoću fotootpornika

Ovo uputstvo detaljno opisuje korake potrebne za konstrukciju rudimentarne bežične LED svjetiljke sa svjetlosnim senzorom koristeći Arduino Unos i fotootpornik. Moguća primjena za ovaj uređaj bi bila osvjetljavanje prostorije koja nema prozore umjetnom sunčevom svjetlošću, u skladu sa stvarnim uvjetima osvjetljenja vani u stvarnom vremenu. Hajde da počnemo!

Lista zaliha:

Arduino Uno x2

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

TIP120 darlington tranzistor

Fotootpornik

5 mm LED diode x3

Taster

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 kola NRF24L01
Ožičenje modula i kola NRF24L01
Ožičenje modula i kola NRF24L01
Ožičenje modula i kola NRF24L01

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

Napomena: na fotografijama mog projekta primijetit ćete da su primopredajnici NRF24L01 pričvršćeni na drugu PCB. 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 kola za lakše zumiranje/detaljan pregled.

Korak 2: Kodiranje predajnika

Zadnji korak je kodiranje. Morat ćete instalirati biblioteku RadioHead ili ekvivalentnu biblioteku za upotrebu s modulima NRF24L01.

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

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

#include

#include

RH_NRF24 nrf24; // Inicijalizacija primopredajnika kao nrf24

int dugme = 5; // Postavljanje pin vrijednosti za gumb i fotootpornik

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

void setup ()

{Serial.begin (9600); pinMode (dugme, 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 dugme pritisnuto value = analogRead (pResistor); // Očitavanje vrijednosti fotootpornika (0-1023) uint8_t podaci = {vrijednost}; // Postavlja niz naziva "data " koji sadrži svjetlosnu vrijednost nrf24.send (data, sizeof (data)); // Pošaljite niz primatelju nrf24.waitPacketSent (); // Sačekajte dok se paket ne pošalje Serial.println ("Light Value:" +String (value)); // Odštampajte vrijednost svjetla na serijskom monitoru}}

Korak 3: Kodiranje prijemnika

Za prijemnik, kod također koristi RadioHead Library.

#include

#include

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 ()

{// Sačekajte poruku uint8_t buf [RH_NRF24_MAX_MESSAGE_LEN]; // Spremi primljenu poruku kao niz nazvan "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 od 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 igranju s različitim nivoima svjetlosti 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čuje se: