Projektas #2: LED šviesos diodo švietimo ryškumo valdymas
Sukurkite ir suprogramuokite program?, kuri leidžia valdyti šviesos diodo švietimo ryškum? naudojant potenciometr?. LED yra švies? spinduliuojantis diodas, kuris j? spinduliuoja, kai per j? teka elektros srov?.
Kas yra šviesos diodas?
Šviesos diodas turi anod? ir katod?, anodas yra teigiama pus?, o katodas yra neigiama pus?.
Anod? nuo katodo galite atskirti paži?r?j? ? šviesos diodo kojeles, didesn? kojel? yra anodas, o trumpesn? kojel? - katodas. Elektros srov? gali tek?ti tik viena kryptimi, nuo anodo iki katodo ir, kad ji gal?t? pratek?ti, itin svarbu, kad anodo ?tampa b?t? didesn? nei katodo.
SUD?TINGUMO LYGIS: Pradedantiesiems.
PRATIMO TRUKM?: 30 min.
MEDŽIAGOS:
- 1x Šviesos diodas
- 2x Rezistorius 220
- 1x potenciometras
- 1x „Build & Code UNO“ plokšt? 1x bandomoji plokšt?
JUNGTYS:
- Bandomoji plokšt? gaus elektros srov? iš „Build & Code UNO“ 5V kontakto, tada srov? sugr?š ? „Build & Code UNO“ ?žeminimo kontakt?. B?tent tod?l visi grandin?s ?žeminimo kontaktai turi b?ti sujungti tarpusavyje, kad tur?t? t? pa?i? ?žeminimo vert?. Paveiksle ?žeminimas yra pavaizduotas juodu kabeliu, visi ?žeminimo komponentai yra sujungti tarpusavyje ir prijungti prie plokšt?s ?žeminimo. Raudonas kabelis atitinka 5V kontakt?, kuris tiekia srov? vykdomajam varikliui ir potenciometrui.
- Prijunkite potenciometro centrin? kontakt? prie analoginio kontakto, nes potenciometras yra analoginis jutiklis. Paveiksl?lyje parodytas m?lynas kabelis, jungiantis potenciometr? su analoginiu kontaktu A0. Šis kabelis perduoda informacij? iš potenciometro ? plokšt?, kad b?t? galima nuskaityti jutiklio vertes.
- Prijunkite šviesos diod? prie PWM kontakto, kuris valdys šviesos diodo šviesum?, priklausomai nuo iš jutiklio (potenciometro) gautos informacijos. Paveiksl?lyje m?lyna spalva parodyta, kaip šviesos diodas yra prijungtas prie skaitmeninio PWM kontakto.
PROGRAMOS KODAS
Galite atlikti š? projekt? naudodami „Arduino“ program? arba suderinam? vaizdin? programavimo programin? ?rang?, naudojan?i? blokus. Toliau pateikiamas reikiamas kodas.
„Arduino“ kodas
J?s sukursite program?, kuri nuolat nuskaitys potenciometro informacij?. Atsižvelgiant ? iš jutiklio (šiuo atveju potenciometro) gaut? informacij?, šviesos diodas švies stipriau arba silpniau.
Priklausomai nuo to, kiek pasuksite potenciometr?, jis pateiks duomenis nuo 0 iki 1023.
Skaitmeninis PWM kontaktas veiks kaip išvesties kontaktas, ta?iau jis si?s ne aukšt? arba žem? vert?, o matuos ir pateiks vidutines vertes. Tokiu b?du šviesos diodas gali tur?ti skirtingus švietimo stiprumo lygius.
Pvz., jei šviesos diodas ?sijungia ir išsijungia 100 kart? per 1 sekund?, ir 50% laiko yra ?jungtas, o likusius 50% laiko yra išjungtas, tai reiškia, kad žmogaus akys stebi 50% švietimo stiprumo. Ta?iau jei didži?j? laiko dal? šviesos diodas yra išjungtas (pavyzdžiui, 75% laiko išjungtas ir 25% laiko ?jungtas), žmogaus akys stebi silpnesn? švietimo stiprum?.
PWM turi 256 raiškos b?senas, ji kinta nuo 0 iki 255. Jei ?rašysite 15, jo švietimo stiprumas bus labai silpnas; jei ?rašysite 127, jo švietimo stiprumas bus 50%; jei ?rašysite 255, jo švietimo stiprumas bus 100%.
Tam, kad susietum?te potenciometr? su PWM skaitmeniniu kontaktu, turite padalinti dvi maksimalias vertes:
- Parsisi?skite ir ?diekite „Arduino IDE“ program?. Ji si?loma „Windows“, „Mac OS“ ir „Linux“.
- Paleiskite „Arduino“ program? ir nukopijuokite ? j? toliau pateikt? program?:
int input = A0; //Define the analog input A0 int LEDR = 9; //Define the digital pin 9 as PWM digital output int value=0; // Create an integer variable value to store the values of the analog readings void setup () { pinMode(LEDR,OUTPUT); // Define the digital pin as output } void loop() { int value = analogRead(input); // Read the potentiometer value analogWrite(LEDR, value/4); // Because the analog inputs have a maximum resolution of 1024 states and the PWM has a resolution of 256, you need to divide the input value by 4 so the analog input reading is proportional with the intensity output of the PWM }
Kodas vaizdinio programavimo programinei ?rangai naudojan?iai blokus
- Parsisi?skite ir ?diekite program?.
- Paleiskite programin? ?rang?.
- Sukonfig?ruokite program?, kad išsaugotum?te kod? „Build & Code UNO“ plokšt?je. Instrukcijos pateikiamos „Arm Robot“ roboto rankos vadovo pirmuosiuose veiksmuose.
- 2. Paleiskite program? ir nukopijuokite toliau pateikt? kod?. Naudokite š? paveiksl?l? kaip vadov?:
PRATIMO REZULTATAS:
Programa nuolat nuskaitys potenciometro siun?iam? informacij?. Atsižvelgiant ? iš jutiklio gaut? informacij?, šviesos diodas švies stipriau arba silpniau.