Arduino LED valdymas
LED‘ai yra maži tačiau ryškus šviesos šaltiniai, be kurių sunkiai įsivaizduojami įvairus elektroniniai įrenginiai. Šioje pamokoje apžvelgsime, kaip Arduino pagalba valdyti Led‘us, bei kaip juos panaudoti savo projektuose.
Komponentai:
- 1 × Breadboard‘as.
- 1 × Arduino Uno plokštė
- 1 × LED‘as
- 1 × 330Ω Resistorius
- 2 × Sujungimo laidai
Sujungimas
Atsižvelgdami į žemiau pateiktą schemą sujunkite visus komponentus į vieną grandinę.
Svarbu, atkreipti dėmesį į tai, kad LED‘as turi dvi sujungimo kojeles kurios yra skirtingų polių, vieną iš jų neigiamo polio įprastai ši kojelė yra trumpesnė už kitą.
Žemiau pateikta programa privers mūsų sujungtą schema veikti taip, kad LED‘as mirksėtų vienos sekundės intervalas.
// funkcija setup() vykdoma vieną kartą paleidus programą.
void setup() {
pinMode(2, OUTPUT); // pin‘as 2 priskiriamas išvesčiai
}
// loop() funkcija vykdo amžiną ciklą, kuris veiks tol kol mikrovaldikliui bus tiekiama elektra.
void loop() {
digitalWrite(2, HIGH); // pin‘ui 2 priskiriama reikšmė HIGH (LED‘as priverčiamas šviesti)
delay(1000); // suteikiamas vienos sekundės intervalas
digitalWrite(2, LOW); // pin‘ui 2 priskiriama reikšmė LOW (LED‘as išjungiamas)
delay(1000); // suteikiamas vienos sekundės intervalas
}
Iš ankstesniu pamokų žinote, kad pinMode() funkcija skirta aprašyti kaiščio naudojimą, priskirti jam įvesties/išvesties tipą. Tuo tarpu digitalWrite() funkcija suteikia pin‘ui reikšmę, kurią jis įtampos pavidalu perduoda prijungtam komponentui (šiuo atveju LED‘ui).
Kiti kodo pavyzdžiai naudojant LED‘us.
Anksčiau pateiktame kode mūsų LED šviesdavo 1 sekundės intervalą, o laiko tarpas tarp šviesos mirksnių taip pat būdavo 1 sekundė.
Pakeiskime kodą taip, kad LED‘as sumirksėtu du kartus po 250 milisekundžių ir viena kartą mirktelėjimas truktų viena sekundę.
void setup() {
pinMode(2, OUTPUT);
}
void loop() {
digitalWrite(2, HIGH); // pin‘ui 2 priskiriama reikšmė HIGH (LED‘as priverčiamas šviesti)
delay(250); // suteikiamas 1/4 sekundės intervalas
digitalWrite(2, LOW); // pin‘ui 2 priskiriama reikšmė LOW (LED‘as išjungiamas)
delay(250); // suteikiamas 1/4 sekundės intervalas
digitalWrite(2, HIGH); // pin‘ui 2 priskiriama reikšmė HIGH (LED‘as priverčiamas šviesti)
delay(250); // suteikiamas 1/4 sekundės intervalas
digitalWrite(2, LOW); // pin‘ui 2 priskiriama reikšmė LOW (LED‘as išjungiamas)
delay(250); // suteikiamas 1/4 sekundės intervalas
digitalWrite(2, HIGH); // pin‘ui 2 priskiriama reikšmė HIGH (LED‘as priverčiamas šviesti)
delay(1000); // suteikiamas vienos sekundės intervalas
digitalWrite(2, LOW); // pin‘ui 2 priskiriama reikšmė LOW (LED‘as išjungiamas)
delay(250); // suteikiamas 1/4 sekundės intervalas
}
Pabandykime prijungti dar du LED‘us prie mūsų grandinės taip kaip žemiau pateiktoje schemoje (jums taip pat reikės ir dar dviejų rezistorių.
Šį kart programai nurodysime, kad visi LED‘ai šviestų eilės tvarka, vienos sekundės intervalu.
void setup() {
pinMode(2, OUTPUT); // pin‘as 2 priskiriamas išvesčiai
pinMode(3, OUTPUT); // pin‘as 3 priskiriamas išvesčiai
pinMode(4, OUTPUT); // pin‘as 4 priskiriamas išvesčiai
}
void loop() {
digitalWrite(2, HIGH); // pin‘ui 2 priskiriama reikšmė HIGH (LED‘as priverčiamas šviesti)
delay(1000); // suteikiamas vienos sekundės intervalas
digitalWrite(2, HIGH); // pin‘ui 2 priskiriama reikšmė LOW (LED‘as išjungiamas)
digitalWrite(3, HIGH); // pin‘ui 3 priskiriama reikšmė HIGH (LED‘as priverčiamas šviesti)
delay(1000); // suteikiamas vienos sekundės intervalas
digitalWrite(3, HIGH); // pin‘ui 3 priskiriama reikšmė LOW (LED‘as išjungiamas)
digitalWrite(4, HIGH); // pin‘ui 4 priskiriama reikšmė HIGH (LED‘as priverčiamas šviesti)
delay(1000); // suteikiamas vienos sekundės intervalas
digitalWrite(4, HIGH); // pin‘ui 4 priskiriama reikšmė LOW (LED‘as išjungiamas)
}