Përmbajtje:

Wireless Arduino Light-Matching Lamp LED duke përdorur Photoresistor: 4 hapa
Wireless Arduino Light-Matching Lamp LED duke përdorur Photoresistor: 4 hapa

Video: Wireless Arduino Light-Matching Lamp LED duke përdorur Photoresistor: 4 hapa

Video: Wireless Arduino Light-Matching Lamp LED duke përdorur Photoresistor: 4 hapa
Video: Home Automation: 12V Relay with LED Display Delay 0.1 seconds to 999 seconds Timer module P1 to P4 2024, Nëntor
Anonim
Llambë LED pa tel Arduino që përputhet me dritën duke përdorur Photoresistor
Llambë LED pa tel Arduino që përputhet me dritën duke përdorur Photoresistor
Llambë LED pa tel Arduino që përputhet me dritën duke përdorur Photoresistor
Llambë LED pa tel Arduino që përputhet me dritën duke përdorur Photoresistor
Llambë LED pa tel Arduino që përputhet me dritën duke përdorur Photoresistor
Llambë LED pa tel Arduino që përputhet me dritën duke përdorur Photoresistor

Ky udhëzues detajon hapat e nevojshëm për të ndërtuar një llambë rudimentare LED të ndjeshme të dritës duke përdorur Arduino Unos dhe një fotorezistues. Një aplikim i mundshëm për këtë pajisje do të ishte ndriçimi i një dhome që nuk ka dritare me rreze dielli artificiale, që përputhet me kushtet aktuale të ndriçimit jashtë në kohë reale. Le të fillojmë!

Lista e Furnizimit:

Arduino Uno x2

NRF24L01 transmetues pa tel x2 (Opsionale - NRF24L01 çantë shpine x2)

TIP120 transistor darlington

Fotorezistor

LED 5mm x3

Butoni i butonit

Rezistencë 100 ohm x3

Rezistencë 10k ohm x3

Tela të ndryshëm Jumper

Hapi 1: Instalimi i moduleve dhe qarkut NRF24L01

Instalimi i moduleve dhe qarkut NRF24L01
Instalimi i moduleve dhe qarkut NRF24L01
Instalimi i moduleve dhe qarkut NRF24L01
Instalimi i moduleve dhe qarkut NRF24L01
Instalimi i moduleve dhe qarkut NRF24L01
Instalimi i moduleve dhe qarkut NRF24L01

Në këtë projekt, një Arduino do të veprojë si transmetues, duke dërguar të dhëna të nivelit të dritës nga fotorezistori kur shtypet butoni i shtypjes. Arduino tjetër do të shërbejë si një marrës, duke i marrë ato të dhëna dhe duke i shndërruar ato në një sinjal tek LED. Imazhi i parë tregon diagramin e transmetuesit, dhe i dyti tregon marrësin.

Shënim: në fotot e projektit tim, do të vini re se transmetuesit NRF24L01 janë bashkangjitur në një PCB tjetër. Ky është një modul shpine për transmetuesit, i cili vepron si një rregullator i energjisë. Përveç që e bëjnë instalimin e kabllove më të lehtë, këto shpina rregullojnë hyrjen e energjisë për NRF24L01, duke lejuar përdorimin e një furnizimi me energji 5V. Unë i kam hequr këto çanta shpine në diagramin tim për hir të qartësisë.

(Nëse vendosni të përdorni çantat e shpinës, ju lutemi referojuni kësaj lidhjeje për një diagram të vendndodhjeve të kunjave në lidhje me stokun NRF24L01).

Bashkangjitur më poshtë është një kopje PDF e qarkut, për zmadhim më të lehtë/shikim të detajuar.

Hapi 2: Kodimi i transmetuesit

Hapi i fundit është kodimi. Ju do të duhet të instaloni bibliotekën RadioHead ose një bibliotekë ekuivalente për t'u përdorur me modulet NRF24L01.

Për këtë projekt, transmetuesi dhe marrësi Arduinos përdorin kod të ndryshëm për secilin. Këtu është kodi për transmetuesin:

Unë gjithashtu kam bashkangjitur skedarin.ino (NRF_Send) për lehtësi.

#përfshi

#përfshi

RH_NRF24 nrf24; // Fillimi i një transmetuesi si nrf24

butoni int = 5; // Vendosja e vlerave të kunjave për butonin dhe rezistencën e fotove

int pResistor = A0; vlera int = 0; // Vlera e dritës nga 0-1023

void setup ()

{Serial.fillo (9600); pinMode (butoni, INPUT); pinMode (pResistor, INPUT); nëse (! nrf24.init ()) // Njofton përdoruesin nëse fillimi i modulit dështon Serial.println ("init dështoi"); // Parazgjedhjet pas fillimit janë 2.402 GHz (kanali 2), 2Mbps, 0dBm nëse (! Nrf24.setChannel (1)) Serial.println ("setChannel dështoi"); nëse (! nrf24.setRF (RH_NRF24:: DataRate2Mbps, RH_NRF24:: TransmitPower0dBm)) Serial.println ("setRF dështoi"); }

lak void ()

{if (digitalRead (butoni)) {// Dërgoni një mesazh nëse butoni është shtypur vlera = analogRead (pResistor); // Lexoni vlerën e rezistencës së fotos (0-1023) uint8_t të dhënave = {vlera}; // Vendos një grup të quajtur "të dhëna " që përmbajnë vlerën e dritës nrf24.send (të dhënat, madhësia e (të dhënave)); // Dërgo grupin te marrësi nrf24.waitPacketSent (); // Prisni derisa paketa të jetë dërguar Serial.println ("Vlera e lehtë:" +String (vlera)); // Shtypni vlerën e dritës në monitorin serik}}

Hapi 3: Kodimi i Marrësit

Për marrësin, kodi përdor edhe Bibliotekën RadioHead.

#përfshi

#përfshi

RH_NRF24 nrf24;

int LEDPin = 3;

vlera int = 0; // Vlera e dritës nga 0-1023

void setup ()

{Serial.fillo (9600); pinMode (LEDPin, OUTPUT); nëse (! nrf24.init ()) Serial.println ("init dështoi"); // Parazgjedhjet pas fillimit janë 2.402 GHz (kanali 2), 2Mbps, 0dBm nëse (! Nrf24.setChannel (1)) Serial.println ("setChannel dështoi"); nëse (! nrf24.setRF (RH_NRF24:: DataRate2Mbps, RH_NRF24:: TransmitPower0dBm)) Serial.println ("setRF dështoi"); }

lak void ()

{// Prisni për një mesazh uint8_t buf [RH_NRF24_MAX_MESSAGE_LEN]; // Ruani mesazhin e marrë si një grup i quajtur "buf " uint8_t len = sizeof (buf); // Ruani madhësinë e buf si "len" ndërsa (nrf24.waitAvailableTimeout (200) && nrf24.recv (buf, & len)) // Merr mesazhin për 200 milisekonda ose derisa të merret i gjithë mesazhi {vlera = buf [0]; // Vendos vlerën në indeksin e parë të buf , i cili është int nga photoresistor analogWrite (LEDPin, hartë (vlera, 0, 1023, 0, 255)); // Vendos pinin PWM për të nxjerrë një vlerë të shkallëzuar midis 0-255 për shkëlqimin LED Serial.println (String (vlera)); } analogWrite (LEDPin, 0); }

Hapi 4: E BER

Shijoni të luani me nivele të ndryshme drite dhe shikoni LED që përputhen me to! Foto -rezistenca ndonjëherë mund të jetë e paqartë dhe punon më së miri në një dhomë të errët me një burim drite të lokalizuar (por mund të punojë edhe jashtë me diellin).

Recommended: