Avtor: mag. Vladimir Mitrović
E-pošta: vmitrovic12@gmail.com
2018_267_52
Imeli smo že priložnost srečati se z zanimivimi projekti, ki jih delajo udeleženci Letnih šol tehničnih dejavnosti v Narodnem centru hrvaške skupnosti tehnične kulture v Kraljevici. V avgustu 2017 je v tretjem mandatu 10. poletne šole 18 študentov zaključilo kompleksne projektne naloge z različnih področij tehnologije: hidravlični robotski ročni model iz vezane plošče in pogonskih servo motorjev, digitalno zapestno uro, mobilno komunikacijo napravo – Hazetekafon, lahko igračo in popularni fidget spinner, izdelan s tehnologijo 3D tiskanja (slika 1). Vse projekte, razen najnovejših, nadzira mikro krmilno vezje (mikrokontroler), zato je programiranju mikrokontrolerjev namenjena ustrezna pozornost.
Ta vsebina je samo za naročnike
V tem članku bomo pojasnili izdelavo in programiranje svetlobne igračke (slika 2). To je elektronsko vezje, sestavljeno iz mikrokontrolerja in štirih večbarvnih svetlečih diod (LED). S programiranjem mikrokontrolerja dosežemo različne svetlobne učinke, zato smo pričakovali, da bi to učence poletne šole utegnilo pritegniti v elektroniko in programiranje. Na delavnici elektronike so udeleženci v skladu z električnim in montažnim načrtom prispajkali potrebne elektronske komponente na univerzalno tiskano vezje. Po navodilih mentorja so raziskovali funkcionalnost vezja in popravljali odkrite napake. Delo na igrački se je nadaljevalo na delavnici za programiranje mikrokontrolerjev, kjer so udeleženci videli nekaj primerov programov in nato dobili priložnost, da programirajo svetlobno igračko glede na lastne zamisli.
Električna shema svetlobne igračke je prikazana na sliki 3. Srce vezja je mikrokontroler IC1 (ATtiny2313 ali ATtiny4313), ki nadzira delovanje štirih dvobarvnih LEDic, D1 – D4. Predvidena je uporaba LEDic s skupno anodo (pri razlagi programa bomo razložili, kako prilagoditi program, če želite uporabiti LEDice s skupno katodo). Zaželeno je nabaviti LEDice, ki imajo motno ohišje, ker je barvno mešanje na takih diodah učinkovitejše.
Opomba: pri štiribarvnih LEDicah je najdaljši priključek vedno skupen, bodisi da je to anoda ali katoda, vendar je postavitev posameznih barv odvisna od vrste diode in se lahko razlikuje od tiste, ki je prikazana na sliki 3. V projektu, ki ga opisujemo, to ne bo pomembno.
Kot vir napajanja se lahko uporabljajo baterije napetosti 6 – 9 V. Poraba vezja ne presega 10 mA, zato bo kvalitetna alkalna baterija nazivne napetosti 9V vezje napajala približno 50 ur, štiri alkalne baterije vrste AA ali AAA pa še nekoliko dalj. Možno je uporabiti tudi omrežni adapter (napajalnik) z izhodno napetostjo 5 – 12 V. Kateri koli vir napetosti boste uporabljali, bo stabilno napetost za napajanje mikrokontrolerskega vezja zagotavljal napetostni stabilizator IC2. Uporabljeno integrirano vezje LP2950-5.0 dela pravilno tudi, ko napetost pade do samih 5 V, kar je posebej važno, kadar uporabljamo baterijsko napajanje: baterije bomo lahko bolje „izcedili” in tako bodo trajale dalj. Opomba: če za napajanje svetlobne igračke uporabljate omrežni adapter, ki ima stabilizirano izhodno napetost 5 V oziroma uporabljate „ploščato” 4,5 V baterijo, lahko izpustite IC2 in tako je vezje še enostavnejše in cenejše!
Konektor PROG služi za programiranje mikrokontrolerja. V njega se priključi USBasp, STK200/300/500 ali podobna vrsta programatorja (možno je uporabljati vse programatorje, ki imajo razpored priključkov takšen, kot je na shemi; naš Proggy ima drugačen razpored priključkov in zato ga ni možno uporabljati brez adapterja, ki ga bomo opisali v naslednjem članku). Če uporabljate USBasp ali Proggy, bo svetlobna igračka preko njega dobila ustrezno napajalno napetost z USB porta osebnega računalnika, zato baterija ali kakšen drugi vir napajanja nista potrebna.
Elektronske komponente svetlobne igračke se spajkajo na univerzalno tiskano ploščico z linijami, ploščico pa je potrebno pripraviti pred spajkanjem. Na sliki 4 zgoraj so vidne potrebne dimenzije ploščice (28 stolpcev, 18 vrst) in označeno je mesto, kjer je vode potrebno prerezati. Te rezi so označeni z rdečimi črtami, najlažje jih napravimo z malim graverskim frezerjem ali pazljivo z ostrim nožem ali skalpelom. Risba na sliki 4 zgoraj prikazuje spodnjo stran ploščice (stran z vodniki) kjer so – naj to poudarimo, številčne oznake natisnjene zrcalno.
Elektronske komponente svetlobne igračke se spajkajo na tiskano ploščico po montažni shemi na sliki 4 spodaj in v sredini (montažne sheme prikazujejo razpored komponent gledano od zgoraj). Da bi se lažje znašli med postavljanjem komponent, je zaželeno s flomastrom označiti mesto, kjer se bo nahajalo podnožje integriranega vezja IC1 (samo podnožje spajkamo kasneje). Najprej je potrebno zaspajkati kratkostičnike, ki so na montažni shemi obarvani z modro barvo. Za kratkostičnike uporabimo odrezane žice uporov ali kose neizolirane bakrene žice podobne debeline. Po kratkostičnikih spajkamo upore in nato podnožje za IC1, na koncu pa pridejo na vrsto ostale višje komponente. Posebej je potrebno paziti na orientacijo integriranih vezij IC1 in IC2, elektrolitskih kondenzatorjev C1 in C2 ter LEDic D1 – D4. Odrezani del ohišja LEDic mora biti obrnjen od mikrokontrolerja proti robu ploščice, oziroma najdaljši priključek LEDice mora biti tretji, če štejemo od strani IC1. Možne nejasnosti o razporedu in orientaciji komponent boste odpravili tako, da pazljivo pogledate fotografijo zaključenega vezja na sliki 2.
Vse povezave po spajkanju skrajšajte na dolžino 1 – 2 mm. Fotografija na sliki 5 prikazuje, kako mora izgledati spodnja stran plošče po zaključenem spajkanju.
Za tiste, ki so jim mikrokontrolerji še vedno neznanka
Sledi nekaj osnovnih pojasnil za tiste, ki še niso uporabljali mikrokontrolerjev. Mikrokontroler je digitalno vezje, ki prepozna samo dve nasprotni stanji: logično nič (“0”) in logično ena (“1”):
- kadar program v mikrokontrolerju postavi logično “0” na enega od svojih priključkov, se bo na njemu pojavila napetost 0 V. Lahko si predstavljamo, da je stikalo znotraj mikrokontrolerja spojilo ta priključek na GND priključek, na katerem je napetost 0 V.
- kadar program v mikrokontrolerju postavi logično “1” na enega od svojih priključkov, se bo na njemu pojavila napetost 5 V. Lahko si predstavljamo, da je stikalo znotraj mikrokontrolerja spojilo ta priključek na Vcc priključek, na katerem je napetost 5 V.
Kaj se bo dogodilo v katerem od teh primerov je odvisno od tega, kaj je in na kateri način je vezano na ta priključek. Če je to LEDica, slika 6 prikazuje dva običajna načina, po katerih se LEDice lahko vežejo na priključke mikrokontrolerja.
Na shemi so označeni priključki PB2 in PD6 samo zato, ker se uporabljajo tudi v svetlobni igrački; na isti način je možno uporabiti katerega koli od 15-ih vhodno/izhodnih priključkov, kolikor jih imajo mikrokontrolerji kot ATtiny4313.
Če povežemo LEDico kot je vezana dioda D1 s slike 6, bo tok skozi njo stekel in LEDica bo zasvetila, kadar program postavi priključek PB2 v stanje logične “0”. Če povežemo LEDico kot diodo D2, bo tok skozi njo stekel in LEDIca bo zasvetila, kadar program postavi priključek PD6 v stanje logične “1”. To je simbolično prikazano na shemi na levi strani slike 6.
Na desni strani slike 6 je prikazana obrnjena situacija, kadar se priključek PB2 nahaja v stanju logične “1”, PD6 pa v stanju logične “0”. Sedaj skozi nobeno LEDico ne teče tok in obe sta ugasnjeni.
oznaka | komponenta | kosov | opomba |
IC1 | ATtiny4313PU ali ATtiny2313PU | 1 | DIP20, nikakor SMD! |
IC podnožje 20 pin | 1 | ||
IC2 | LP 2950CZ-5 (5V 0,16A) | 1 | TO92, nikakor SMD! |
D1-D4 | RGB LED 5mm 4pin, skupna anoda, motno ohišje | 4 | 4 priključki v eni vrsti!
|
R1-R4 | 100 Ω 0,25 W ali 0,5 W, 5% | 4 | |
R5-R7 | 470 Ω 0,25 W ali 0,5 W, 5% | 3 | |
C1 | 10 µF 25 V (ali več) | 1 | |
C2 | 1 µF 25 V (ali več) | 1 | |
C3 | 100 nF 50 V keramični RM 2.5 | 1 | |
PROG | 10 pin konektor (header) za flat kabel za tiskano ploščico | 1 | |
S1 | 2-pin igličasti konektor s kontaktno kapico | 1 |
Tabela: Popis komponent za svetlobno igračko
Shemi na sliki 7 kažeta še en možen način vezave LEDic: tukaj je dioda D3 povezana med dva priključka mikrokontrolerja. Tok bo skozi diodo tekel samo takrat, kadar je PD6 v stanju logične “1”, PB2 pa v stanju logične “0” (na sliki 7 levo). Kadar sta logični stanji teh priključkov obrnjeni, tj. kadar PD6 = “0” in PB2 = “1”, tok skozi LEDico D3 ne bo tekel in LEDica bo ugasnjena (na sliki 7 desno). Možno si je zamisliti še dve situaciji, v katerih sta logični stanji na obeh priključkih “0” ali “1”, in v niti enem od teh primerov tok skozi D3 ne bo tekel.
Tukaj se postavlja vprašanje, zakaj bi hoteli uporabiti dva priključka mikrokontrolerja za krmiljenje ene LEDice, če se to enako dobro lahko napravi tudi s samo enim priključkom? Odgovor poiščimo na sliki 8.
Na gornjem delu slike 8 je prikazana mreža (matrica) sestavljena iz 12 LEDic. Posamezna LEDica bo svetila dokler je en od “+” priključkov vezan na pozitiven, in eden od “-” priključkov vezan na negativen pol napajanja. Zasvetila bo prav tista LEDica, ki se nahaja na “križanju” vrstic in stolpca v mreži; v primeru na sliki bi to bila leva rdeča LEDica.
Prav 12 LEDic ima tudi svetlobna igračka (slika 3), vendar so v njej uporabljene tribarvne (RGB) LEDice, katere v istem ohišju vsebujejo po tri svetleče čipe različnih barv. Ohišje takšne LEDice ima samo 4 priključke, ker so znotraj njega medsebojno povezane anode (ali katode) vseh svetlečih čipov. V svetlobni igrački uporabljamo štiri tribarvne LEDice s skupno anodo (D1-D4), vendar so s priključki mikrokontrolerja povezani kakor je prikazano na sliki 8 spodaj. Posamezna barva ene od LEDic bo zasvetila takrat, ko se na njenem PD priključku pojavi logična “1” (5 V), na PB priključku pa logična “0” (0 V). Npr, če PD3 = “1” in PB0 = “0”, bo zasvetil rdeči segment LEDice D1; če so tudi PB0 in PB1 = “0”, bosta zasvetila sočasno tudi rdeči in modri segment LEDice D1.
Če sedaj preštejmo vse priključke mikrokontrolerja bomo ugotovili, da nam za krmiljenje 12 LEDic zadostuje priključkov. Prihranek pri številu priključkov je toliko večji, kolikor je večje število LEDic v matriki; zato se takšno vezje uporablja vedno takrat, ko je potrebno krmiliti večje število LEDic, zato smo ga uporabili tudi mi v svetlobni igrački.
Tribarvne svetleče diode svetlobne igračke lahko svetijo v 7 različnih barvah, seveda je možno krmiliti tudi intenzivnost posamezne barve. Kakšen svetlobni efekt bomo dosegli je odvisno samo od tega, kako vešč je programer in kako bujna je njegova domišljija. Kako napisati program za mikrokontroler se bomo naučili v naslednjem nadaljevanju!
(Članek je originalno objavljen v reviji ABC tehnike. Za objavo v reviji Svet elektronike ga je preuredi avtor.)