Prisijungę

We have 2 guests and no members online

Breadboard'as, Omo dėsnis ir varžų skaičiavimas

 

Kontroliuoti LED‘ų mirksėjimą visai smagus užsiėmimas, bet mes galime daug daugiau nuveikti jeigu Arduino sistema vienu metu naudos ne tik išėjimus, bet ir įėjimus. Tokiu atveju galimybės pasidaro beveik neribotos. Galime įjungti muziką atidarius duris, sukurti elektroninę spyną, valdyti variklius ir t.t.
Šioje pamokoje aptarsim pagrindinius dalykus, reikalingus nesudėtingiems projektams.

 

Darbas su montažine plokšte (toliau vadinsime breadboard)

 

Kad galėtume efektyviai naudoti breadboard‘ą būsimiems projektams, pirmiausia reikėtų suprasti veikimo principą. Breadboard‘as yra paprastas įrankis, skirtas kurti elektros grandinių prototipams. Mes galime surinkti įvairias schemas be litavimo pagalbos. Kaip matote ant breadbord‘o yra mėlyna bei raudona juostos. Pin‘ai einantys lygiagrečiai šioms juostoms skirti pajungti srovei arba įžeminimui. Paprastai raudoni pin‘ai yra sujungti ir skirti srovei. Kadangi naudojame Arduino ar jo analogus, dažniausiai pasitaikanti įtampa bus 5V. Visi mėlyni pin‘ai taipogi yra sujungti ir naudojami įžeminimui. Vertikaliai sulygiuoti pin‘ai taip pat sujungti eilutėmis, bet perskirti per vidurį, kad lengviau būtų montuoti schemas. Žemiau esančiame paveikslėlyje matote kaip pin‘ai yra sujungti tarpusavyje.

01

 

 

 1 1


 

LED‘ų pajungimas

 

LED‘ai yra viena dažniausiai naudojamų dalių šiuose laboratoriniuose darbuose. LED‘ai yra poliarizuoti, todėl labai svarbu kuria kryptimi juos jungsime. Teigiama kojelė vadinama anodu, o neigiama katodu. Jeigu žiūrėti iš LED‘o viršaus, tai lygi pusė vadinama katodu. Kitas būdas nustatyti kurioje vietoje yra katodas yra žiūrėjimas į LED‘o kojeles. Trumpesnioji visada bus katodas.

 

2 1


Jeigu pamenate iš fizikos kurso, LED‘as yra šviesą skleidžiantis diodas. Srovei tekant tiesiogine kryptimi, šio diodo pn sandūra šviečia beveik vieno bangos ilgio (monochromatine) šviesa. Šiuo metu pagaminama diodų įvairiems bangų ilgiams (nuo infraraudonosios iki ultravioletinės šviesos). Šviesos diodui reikia maždaug 20 mA, kad jis šviestų pilnu ryškumu, tačiau esant ir 5 mA galima matyti švytėjimą.

Patalpinus keletą tokių diodų viename korpuse, gaunama ir ne monochromatinė šviesa. Atskirai reguliuojant viename korpuse esančiais diodais tekančią srovę, galima sklandžiai keisti šviesos spalvą. Paprasto diodo kristalas irgi šiek tiek šviečia akiai nematoma infraraudonąja šviesa. Balti šviesos diodai dažniausiai gaminami naudojant mėlynus šviesos diodus ir pridedant liuminoforo, kuris sužadinamas mėlyna šviesa ir generuoja likusias spalvas kurios susimaišiusios duoda baltą šviesą. Šis procesas vadinamas fluorescencija.

Skirtingai nuo paprastos lemputės, kuriai įkaisti reikia laiko, šviesos diodas gali įsižiebti ir užgesti daugelį tūkstančių kartų per sekundę, todėl šviesos diodo ir fotodiodo pora tinka duomenims bei komandoms (pavyzdžiui, iš mobilaus telefono į kompiuterį, iš televizoriaus nuotolinio valdymo pulto į televizorių) perduoti. Daugelis šviesos diodų neblogai dirba ir kaip fotodiodai, todėl kai kuriose abiem kryptim informaciją perduodančiose sistemose signalą siunčia ir priima tas pats elementas. Panaudojus šviesą fokusuojančius lęšius, skaidriu oru toks ryšys gali veikti net kelių kilometrų atstumu. Kitais atvejais šviesos diodas ir fotodiodas iškart pagaminami viename korpuse, sukuriant naujo tipo prietaisą – optroną.

Daugelį šviesos diodų galima sujungti į ekraną. Jei naudojami visų trijų pagrindinių (raudona, žalia, mėlyna) spalvų diodai, toks ekranas gali rodyti ir spalvotą vaizdą. Kitais atvejais šviesos diodų paketas gali būti naudojamas kaip daug ekonomiškesnis, patvaresnis ir ilgaamžiškesnis įprastinės kaitinamosios elektros lemputės pakaitalas.

Kaip ir visi diodai, LED‘as leidžia srovei tekėti tik viena kryptimi – nuo anodo į katodą. Kadangi srovė teka nuo teigiamo poliaus prie neigiamo, LED‘o anodas turi būti prijungtas prie srovės šaltinio, o katodas prie įžeminimo. Varža (rezistorius) gali būti įterptas, bet kurioje LED‘o pusėje. Varžos nėra poliarizuotos, todėl mums nereikia rūpintis jų orientacija.
Tarkim į 9 pin‘ą nuosekliai pajungsime varžą ir LED‘ą. Varža grandinėje yra būtina kaip ribotuvas. Kuo didesnė varža, tuo labiau apribos srovės tekėjimą ir tuo silpniau švies LED‘as.

02


 

Omo dėsnis

 

Grandinė - uždara kilpa, kuri maitinama elektros energija (pvz.: 9V baterija) ir turi keletą srovės imtuvų (tarkim LED‘ų):


•  Įtampa yra potencialų skirtumas tarp dviejų taškų;
•  Srovė teka nuo didesnį potencialą turinčio taško į mažesnį;
•  Varža apibrėžia kaip lengvai srovė gali tekėti. Kai vanduo (srovė) teka siauru vamzdžiu, tai per tą patį laiko tarpą gali pratekėti mažiau vandens negu per platesnį vamzdį. Siauresnis vamzdis atitinka varžą su didesne reikšme nes vandeniui tekėti yra sunkiau. Kuo platesnis vamzdis tuo mažesnis pasipriešinimas, nes tada srovei tekėti lengviau.

 

3 1

 

Galima ir paprasčiau paaiškinti.

 

3 2


Omo dėsnis sako: U = IR.
U – įtampa matuojama voltais, I – srovė matuojama amperais ir R – varža matuojama omais.
Grandinėje visa įtampa yra sunaudojama ir kiekvienas komponentas duoda tam tikrą varžą kuri mažina įtampą. Pagal tai mes galime nustatyti kokias varžas mums reikia naudoti. LED‘ai yra pritaikyti tam tikrai įtampai. Kuo didesnė srovė teka, tuo ryškiau šviečia LED‘as iki maksimalios reikšmės. Dauguma LED‘ų maksimali leistina srovė yra 20 miliamperų. LED‘o įtampos dydis dažniausia yra apie 2V. Žemiau matome LED‘o grandinę.

03

 

Dabar galime nustatyti kokios varžos mums reikės. Jeigu norime, kad standartinis LED‘as šviestų ryškiai jis turi naudoti 20 mA. Kadangi LED‘as ima 2V įtampos, tai 3V turi tekti varžai. Kad nustatytume varžos dydį naudosime formulę:

R = U/I.

U = 3V ir I = 20mA.

Gauname varžą R = 3V / 0.02 A = 150 omų. Deja mes turime mažiausią varžą tik 330 omų. LED‘as nebus maksimalaus ryškumo, nes tekės silpnesnė srovė. Jeigu I = U/R, tai I = (5V-2V) / 330 omų = 9 mA.


  

Skaitmeninių išėjimų programavimas

 

Pagal nutylėjimą visi Arduino pin‘ai yra įėjimai. Jeigu norime tai pakeisti, reikia nustatyti atitinkamą pin‘o konfigūraciją. Arduino programavimo kalboje yra dvi pagrindinės dalys: setup() ir loop().

 

Jau esam kalbėję, kad setup() funkcija vyksta vieną kartą programos pradžioje, o loop() funkcija kartojasi nuolat. Standartiškai kiekvienas pin‘as yra apibrėžiamas kaip įėjimas arba išėjimas, todėl įprasta juos aprašyti setup dalyje. Tarkim rašome paprastą programą, kuri nurodo 9 pin‘ą kaip išėjimą kai tik startuoja. Rašydami šią programą mes panaudosime pinMode() komandą, kad nurodyti 9 pin‘ui išėjimą ir su digitalWrite() komanda nurodysime išėjimo įtampą (5V).

 

const in LED = 9; //aprašome kintamąjį LED 9 pin'ui

void setup() {

  pinMode(LED, OUTPUT); //nustatome, kad LED pin'as bus išėjimas

  digitalWrite(LED, HIGH); //nustatome išėjimą HIGH

}

 

void loop() {

  //besikartojantis ciklas yra tuščias ir nieko nedaro

}

 

Nusiunčiame šią programą į Arduino. Kaip matote panaudojome const operatorių prie pin‘o apibrėžimą. Paprastai naudojami kintamieji, kurie keičia reikšmes programos vykdymo eigoje. Jeigu mes prieš kintamąjį parašysime const, tai kompiliatorius supras, kad kintamasis yra „read only“ tipo ir negalės keistis programos eigoje. Tai patogu jeigu norime apsisaugoti nuo pasikeitimų.

 

Mums reikia aprašyti kiekvieno kintamojo tipą. Šiuo atveju panaudojome integer tipą (sveikasis skaičius), nes pin‘as visada bus tokio tipo.


 

Užduotys

1. Išsiaiškinkite kokią įtampą naudoja raudoni, žali, geltoni ir balti LED'ai.

2. Paskaičiuokite kokias varžas reikia naudoti kiekvienam LED'ų tipui, kai pajungiame iš Arduino 5 V. 

3. Paskaičiuokite kokios varžos reikės raudonam LED'ui, jeigu prijungsime 9 V bateriją.

4. Koks bus skirtumas, jeigu į grandinę nuosekliai sujungsime 2 x 1,5 volto baterijas, o kitą kartą lygiagrečiai.

5. Ar reikės keisti varžą, jeigu grandinėje prie raudono LED'o bus nuosekliai prijungtas baltas LED'as. Jeigu keisite tai į kokią?