- Nepieciešams materiāls
- Ķēdes shēma
- Kods un skaidrojums
- Kā tas automātiski kontrolē gaismas intensitāti:
"Esi spoža dzirksts, iedegies, līdz iestājas tumsa!" dažreiz mēs aizmirstam izslēgt gaismu un izšķērdēt elektrību, un jūs noteikti esat redzējuši arī dienas laikā ieslēgtu ielu apgaismojumu. Tumšā detektorā mēs jau esam izveidojuši dažas ķēdes, kur gaismas automātiski izslēdzas, ja ārā ir gaišs, un ieslēdzas, ja ārā ir tumšs. Bet šoreiz šajā ķēdē mēs ne tikai ieslēdzam un izslēdzam apgaismojumu, pamatojoties uz gaismas apstākļiem, bet arī mainām gaismas intensitāti atbilstoši ārējiem gaismas apstākļiem. Šeit mēs esam izmantojuši LDR un PWM koncepciju ar Arduino, lai automātiski samazinātu vai palielinātu 1 vatu jaudas LED spilgtumu.
Būtībā PWM attiecas uz impulsa platuma modulāciju, izejas signāls caur PWM tapu būs analogais signāls un iegūts kā digitāls signāls no Arduino. Tas izmanto digitālā viļņa darbības ciklu, lai ģenerētu secīgu analogo vērtību signālam. Šis signāls tiek tālāk izmantots, lai kontrolētu Power LED spilgtumu.
Nepieciešams materiāls
- Arduino UNO
- LDR
- Rezistors (510, 100k omi)
- Kondensators (0.1uF)
- Tranzistors 2N2222
- 1 vatu jaudas LED
- Savienojošie vadi
- Maizes dēlis
Ķēdes shēma
Kods un skaidrojums
Pilnīgs Arduino kods automātiskajam LED apgaismojumam ir norādīts beigās.
Zemāk esošajā kodā mēs definējam PWM tapu un mainīgos, kas jāizmanto kodā.
int pwmPin = 2; // piešķir tapu 12 mainīgajam pwm int LDR = A0; // piešķir mainīgo potam int c1 = 0 analogo ieeju A0 ; // deklarē mainīgo c1 int c2 = 0; // deklarē mainīgo c2
Tagad ciklā mēs vispirms nolasām vērtību, izmantojot komandu “analogRead (LDR)”, pēc tam saglabājiet analogo ieeju mainīgajā ar nosaukumu “value” . Veicot dažus matemātiskus aprēķinus, mēs ģenerējam PWM signālu. Šeit mēs kontrolējam gaismas intensitāti, izmantojot PWM, tikai tad, ja analogā vērtība ir mazāka par 500, un, ja tā ir lielāka par 500, mēs pilnībā izslēdzam gaismas.
int vērtība = analogRead (LDR); Serial.println (vērtība); c1 = vērtība; c2 = 500-c1; // atņem c2 no 1000 ans saglabā rezultātu c1, ja (vērtība <500) { digitalWrite (pwmPin, HIGH); kavēšanāsMikrosekundes (c2); digitalWrite (pwmPin, LOW); kavēšanāsMikrosekundes (c1); } if (vērtība> 500) { digitalWrite (2, LOW); } }
Šeit varat uzzināt vairāk par PWM Arduino.
Kā tas automātiski kontrolē gaismas intensitāti:
Saskaņā ar shēmas shēmu, mēs esam izveidojuši sprieguma dalītāja ķēdi, izmantojot LDR un 100k rezistoru. Sprieguma dalītāja izeja tiek padota uz Arduino analogo tapu. Analogais tapa uztver spriegumu un piešķir zināmu analogo vērtību Arduino. Analogā vērtība mainās atkarībā no LDR pretestības. Tātad, ja virs LDR ir tumšs, tā pretestība palielinās un līdz ar to sprieguma vērtība (analogā vērtība) samazinās. Tādējādi analogā vērtība maina PWM izeju vai darba ciklu, un darba cikls ir vēl proporcionāls enerģijas LED gaismas intensitātei. Tātad gaisma virs LDR automātiski kontrolēs Power LED intensitāti. Zemāk ir plūsmas diagramma, kā tas darbosies, augšupvērstā bultiņa apzīmē "palielinās" un lejupvērstā bultiņa apzīmē "samazinās".
Gaismas intensitāte (uz LDR) ↓ - pretestība ↑ - spriegums pie analogās tapas ↓ - darba cikls (PWM) ↑ - strāvas LED spilgtums ↑
Ja tā spilgti ārpusē (kad analogā vērtība palielinās vairāk nekā 500), strāvas gaismas diode izslēdzas.
Šādi jūs varat automātiski kontrolēt gaismas intensitāti, izmantojot LDR.
Tālāk šeit pārbaudiet visas ar LDR saistītās shēmas.