Բովանդակություն:

Անլար Arduino լուսային համապատասխանող լուսադիոդային լամպ `օգտագործելով ֆոտոռեզիստոր` 4 քայլ
Անլար Arduino լուսային համապատասխանող լուսադիոդային լամպ `օգտագործելով ֆոտոռեզիստոր` 4 քայլ

Video: Անլար Arduino լուսային համապատասխանող լուսադիոդային լամպ `օգտագործելով ֆոտոռեզիստոր` 4 քայլ

Video: Անլար Arduino լուսային համապատասխանող լուսադիոդային լամպ `օգտագործելով ֆոտոռեզիստոր` 4 քայլ
Video: Arduino Uno kart tamiri, Detaylı çalışma prensibi ve voltaj ölçümü ve arıza tespiti (CH341 değişimi) 2024, Նոյեմբեր
Anonim
Անլար Arduino լուսային համապատասխանող լուսադիոդային լամպ `օգտագործելով Photoresistor
Անլար Arduino լուսային համապատասխանող լուսադիոդային լամպ `օգտագործելով Photoresistor
Անլար Arduino լուսային համապատասխանող լուսադիոդային լամպ `օգտագործելով Photoresistor
Անլար Arduino լուսային համապատասխանող լուսադիոդային լամպ `օգտագործելով Photoresistor
Անլար Arduino լուսավորող լուսադիոդային լամպ ՝ օգտագործելով ֆոտոռեզիստոր
Անլար Arduino լուսավորող լուսադիոդային լամպ ՝ օգտագործելով ֆոտոռեզիստոր

Այս հրահանգը մանրամասնում է այն քայլերը, որոնք անհրաժեշտ են տարրական անլար լուսազգայուն լուսադիոդային լամպ կառուցելու համար `օգտագործելով Arduino Unos և ֆոտոռեզիստոր: Այս սարքի հնարավոր կիրառումը կլինի սենյակի լուսավորումը, որը պատուհաններ չունի արհեստական արևի լույսով, որը կհամապատասխանի իրական ժամանակի դրսի լուսավորության պայմաններին: Եկեք սկսենք!

Մատակարարման ցուցակ

Arduino Uno x2

NRF24L01 անլար հաղորդիչ x2 (ըստ ցանկության - NRF24L01 ուսապարկ x2)

TIP120 darlington տրանզիստոր

Ֆոտոռեզիստոր

5 մմ LEDs x3

Pushbutton

100 օմ դիմադրություն x3

10k ohm դիմադրություն x3

Տարբեր Jumper լարեր

Քայլ 1. NRF24L01 մոդուլների և սխեմայի միացում

NRF24L01 մոդուլների և սխեմայի միացում
NRF24L01 մոդուլների և սխեմայի միացում
NRF24L01 մոդուլների և սխեմայի միացում
NRF24L01 մոդուլների և սխեմայի միացում
NRF24L01 մոդուլների և սխեմայի միացում
NRF24L01 մոդուլների և սխեմայի միացում

Այս նախագծում մեկ Arduino- ն հանդես կգա որպես հաղորդիչ, որը լույսի մակարդակի տվյալներ կուղարկի ֆոտոռեզիստորից, երբ սեղմում է կոճակը: Մյուս Arduino- ն կծառայի որպես ընդունիչ ՝ վերցնելով այդ տվյալները և այն վերածելով LED- ների ազդանշանի: Առաջին պատկերը ցույց է տալիս հաղորդիչի դիագրամը, իսկ երկրորդը `ընդունիչը:

Նշում. Իմ նախագծի լուսանկարներում դուք կնկատեք, որ NRF24L01 հաղորդիչներն ամրացված են մեկ այլ PCB- ի վրա: Սա փոխանցման սարքերի համար նախատեսված ուսապարկի մոդուլ է, որը գործում է որպես էներգիայի կարգավորիչ: Էլեկտրագծերը հեշտացնելուց բացի, այս ուսապարկերը կարգավորում են NRF24L01- ի էներգիայի մուտքը ՝ թույլ տալով օգտագործել 5 Վ լարման աղբյուր: Ես պարզության համար բաց եմ թողել այս ուսապարկերը իմ գծապատկերում:

(Եթե դուք որոշեք օգտագործել ուսապարկերը, խնդրում ենք անդրադառնալ այս հղմանը ՝ նշելով քորոցների գտնվելու վայրը ՝ NRF24L01 ֆոնդին վերաբերող):

Ստորև կցված է սխեմայի PDF պատճենը ՝ ավելի մեծացնելու/մանրամասն դիտելու համար:

Քայլ 2. Հաղորդիչի կոդավորումը

Վերջին քայլը կոդավորումն է: NRF24L01 մոդուլների հետ օգտագործելու համար ձեզ հարկավոր է տեղադրել RadioHead գրադարանը կամ համարժեք գրադարան:

Այս նախագծի համար հաղորդիչ և ընդունիչ Arduinos- ն յուրաքանչյուրի վրա օգտագործում են տարբեր կոդեր: Ահա հաղորդիչի կոդը.

Հարմարության համար կցել եմ նաև.ino ֆայլը (NRF_Send):

#ներառում

#ներառում

RH_NRF24 nrf24; // Հաղորդիչ ընդունիչի սկզբնականացում որպես nrf24

int կոճակ = 5; // Կոճակի և ֆոտոընդդիմադիրի քորոցների արժեքների սահմանում

int pResistor = A0; int արժեքը = 0; // Լույսի արժեքը 0-1023-ից

դատարկ կարգավորում ()

{Serial.begin (9600); pinMode (կոճակ, Մուտք); pinMode (pResistor, INPUT); if (! nrf24.init ()) // Aleգուշացնում է օգտագործողին, եթե մոդուլի սկզբնականացումը ձախողվի Serial.println ("init ձախողվեց"); // Ինտից հետո կանխադրված են 2.402 ԳՀց (ալիք 2), 2 Մբիթ/ վ, 0 դԲմ եթե (! Nrf24.setChannel (1)) Serial.println ("setChannel ձախողվեց"); եթե (! nrf24.setRF (RH_NRF24:: DataRate2Mbps, RH_NRF24:: TransmitPower0dBm)) Serial.println ("setRF ձախողվեց"); }

դատարկ շրջան ()

{if (digitalRead (կոճակ)) {// Ուղարկեք հաղորդագրություն, եթե կոճակը սեղմված է value = analogRead (pResistor); // Կարդալ ֆոտոընդդիմադիրի արժեքը (0-1023) uint8_t տվյալները = {արժեքը}; // Սահմանում է «տվյալների » կոչվող զանգված, որը պարունակում է nrf24.send լուսային արժեքը (տվյալներ, չափսեր (տվյալներ)); // Sendանգվածն ուղարկեք ստացողին nrf24.waitPacketSent (); // Սպասեք, մինչև փաթեթն ուղարկվի Serial.println ("Light Value:" +String (value)); // Լույսի արժեքը տպեք սերիական մոնիտորի մեջ}}

Քայլ 3: Ստացողի կոդավորումը

Ստացողի համար կոդը օգտագործում է նաև RadioHead գրադարանը:

#ներառում

#ներառում

RH_NRF24 nrf24;

int LEDPin = 3;

int արժեքը = 0; // Լույսի արժեքը 0-1023-ից

դատարկ կարգավորում ()

{Serial.begin (9600); pinMode (LEDPin, OUTPUT); եթե (! nrf24.init ()) Serial.println ("init ձախողվեց"); // Ինտից հետո կանխադրված են 2.402 ԳՀց (ալիք 2), 2 Մբիթ/ վ, 0 դԲմ եթե (! Nrf24.setChannel (1)) Serial.println ("setChannel ձախողվեց"); եթե (! nrf24.setRF (RH_NRF24:: DataRate2Mbps, RH_NRF24:: TransmitPower0dBm)) Serial.println ("setRF ձախողվեց"); }

դատարկ շրջան ()

{// Սպասեք հաղորդագրության uint8_t buf [RH_NRF24_MAX_MESSAGE_LEN]; // Պահել ստացված հաղորդագրությունը որպես զանգված «buf » uint8_t len = sizeof (buf); // Պահել buf- ի չափը որպես «len», մինչդեռ (nrf24.waitAvailableTimeout (200) && nrf24.recv (buf, & len)) // Ստանում է հաղորդագրությունը 200 միլիվայրկյանով կամ մինչև ամբողջ հաղորդագրության ստացումը {value = buf [0]; // Արժեքը սահմանում է buf - ի առաջին ինդեքսի վրա, որը int- ն է photoresistor analogWrite- ից (LEDPin, քարտեզ (արժեք, 0, 1023, 0, 255)); // PWM- ի քորոցը սահմանում է 0-255-ի միջև լայնածավալ արժեք LED լուսավորության համար Serial.println (լարային (արժեք)); } analogWrite (LEDPin, 0); }

Քայլ 4: ԿԱՌԱՎՈՐ

Վայելեք խաղալ տարբեր լուսային մակարդակներով և դիտեք, թե ինչպես են LED- ները համապատասխանում նրանց: Ֆոտոռեզիստորը երբեմն կարող է անհանգիստ լինել և լավագույնս աշխատում է տեղայնացված լույսի աղբյուր ունեցող մութ սենյակում (բայց կարող է աշխատել նաև արևի հետ դրսում):

Խորհուրդ ենք տալիս: