4 minute read

mikroupravljača (21

ELEKTRONIKA

Shield-A, učilo za programiranje mikroupravljača (21)

Advertisement

Alfanumerički moduli, poput onih kojima smo se bavili u prošlom nastavku, jeftini su i mnogostrano upotrebljivi. Na onima najvećima moguće je prikazati četiri retka teksta sa po dvadeset znakova u svakom retku, dakle, mikroupravljač nam preko njih može pružiti prilično detaljnu informaciju. Ipak, ponekad je korisno imati displej s manjim brojem znakova, koji su uočljiviji jer su znatno većih dimenzija i uz to još i“svijetle”. Najčešće susrećemo takozvane 7-segmentne displeje, poput ovih sa Slike 66. Za satove će biti primjeren neki od četveroznamenkastih modula sa slike gore, ali postoje i izvedbe s većim brojem znamenaka. Na takvom modulu može biti postavljeno i nekoliko tipkala, poput modela prikazanog na donjem dijelu slike. Specifičnost svih modula sa Slike 66. je što prikazom na displeju i očitanjem stanja tipkala upravlja isti integrirani krug, TM1637. Upravo tim integriranim krugom i takvim modulima bavit ćemo se u nastavku. Napomena: Moduli s još većim brojem znamenaka i tipkala (komercijalno se nazivaju LED and Key) obično koriste integrirani krug TM1638. Iako im se oznaka razlikuje samo u jednom broju, postoji znatna razlika u internoj organizaciji ovih čipova, pa se programi koje ćemo upoznati u ovom nastavku ne mogu primijeniti i na module s čipom TM1638! Upoznajmo najprije izvedbu jednog 7-segmentnog displeja. Kako Slika 67. prikazuje, on se sastoji od sedam “štapićastih” LE-dioda raspoređenih u obliku brojke “8”. Ove LED-ice predstavljaju segmente displeja i obično se označavaju slovima A do G. Slika nam također prikazuje kako se paljenjem određenih kombinacija LE-dioda na njemu mogu prikazati znamenke 0 do 9. Na 7-segmentnim displejima može se ispisati i nekoliko slova, npr. A, b, C, d, E, F, U, L, možda još poneko, ali za ispis svih slova abecede trebaju nam displeji s većim brojem segmenata, što također nećemo sada promatrati. 7-segmentni displeji obično imaju i osmu, okruglu LED-icu koja predstavlja decimalnu točku (DP). Kako bi se smanjio potreban broj izvoda, 7-segmentni displeji izrađuju se tako da su katode svih LED-ica povezane zajedno (displeji sa zajedničkom katodom) ili tako da su sve anode povezane zajedno (displeji sa zajedničkom anodom). Za upravljanje radom jednog takvog displeja treba nam osam pinova mikroupravljača. Kada bismo sa 7-segmentnim displejima željeli

Slika 66. Različite izvedbe 7-segmentnih displeja Slika 67. Prikaz znamenki na 7-segmentnom displeju

upravljati nezavisno, za satni displej sa Slike 66. trebala bi nam 32 pina, dakle, više nego li ih mikroupravljač ATmega328 s pločice Arduino uopće ima. U takvom slučaju koristimo tehniku multipleksiranja, o čemu smo detaljno pisali u 12., 14. i 16. nastavku. Želimo li multipleksirati četiri 7-segmentnih displeja sa zajedničkom katodom, povezat ćemo istoimene anodne izvode svih displeja zajedno, za što će nam dostajati 8 pinova mikroupravljača, i još će nam trebati 4 pina na koje ćemo povezati zajedničke katode svakog od displeja. Ako znamo napisati odgovarajući program, i kada bismo imali odgovarajući shield s takvim displejom koji bismo postavili na pločicu Arduino, mogli bismo na njemu prikazivati četveroznamenkaste brojeve. Ali, postoji i jednostavnije rješenje: iskoristimo neki modul s integriranim krugom TM1637! Shemu jednog takvog šesteroznamenkastog modula, na kojem se nalazi šest 7-segmentnih displeja sa zajedničkim katodama, prikazuje Slika 68. Katode pojedinih displeja spojene su na izvode GRID1 do GRID6, a anode istoimenih segmenata povezane su zajedno i spojene na izvode SEG1 do SEG8. Slika također prikazuje kako su tipkala S1 do S6 povezana između zajedničkog izvoda K1 i segmentnih izvoda SEG1 do SEG6. Shema četveroznamenkastog “satnog”

displeja vrlo je slična, samo u tom slučaju izvodi GRID5, GRID6 i K1 nisu iskorišteni. Prednost ovakvog modula je što integrirani krug TM1637 sam brine o multipleksiranom prikazu na priključenim displejima, a uz to još može kontrolirati i intenzitet osvjetljenja. Što će se prikazati na pojedinom displeju ovisi o sadržaju šest memorijskih registara integriranog kruga. Ovaj sadržaj upisuje mikroupravljač preko samo dva pina, SDA i SCL. To znači da modul s čipom TM1637 možemo povezati na konektor J1 našeg Shield-A i upravljati prikazom na njemu iz programa Bascom-AVR ili Arduino! Na isti bismo način mogli očitavati stanja tipkala, kada bi nam to bilo interesantno. Slika 68. Shema šesteroznamenkastog displeja s integriranim krugom TM1637 Integrirani krug TM1637 pozna desetak naredbi, koje mu mikroupravljač šalje u obliku 8-bitnih binarnih brojeva. Ovdje ćemo navesti samo naredbe koje ćemo koristiti u našim programima: “10000000” = isključi (ugasi) prikaz na displeju “10001xxx” = uključi prikaz na displeju; “xxx” je u rasponu od “000” do “111” i određuje intenzitet prikaza, pri čemu veći broj znači veći intenzitet “01000000” = piši u displej registre “11000aaa” = postavi adresu; “aaa” je u rasponu od “000”do “101” i predstavlja adresu registra u koji će se upisati prvi podatak. Komunikacija započinje signalom START, nakon čega slijedi neka od navedenih naredbi i signal STOP. Iznimka je naredba “postavi adresu” nakon koje slijedi jedan ili više 8-bitnih podataka, a tek nakon toga dolazi signal STOP. Ti se podaci redom upisuju u registre čipa TM1637, počevši od adresiranog registra, i određuju što će se na kojem displeju prikazati. Kako, pojasnit ćemo pomoću Slike 67. Na njoj su ispod svake znamenke prikazani nizovi nula i jedinica; to su binarne kombinacije koje treba upisati u neki registar čipa TM1637, kako bi se na pridruženom 7-segmentnom displeju upalila određena kombinacija segmenata i prikazala željena znamenka. Prva binarna znamenka odgo-

This article is from: