Propeler sat sa LED diodama

5
Propeler sat sa LED diodama M. Đorđević, I. Ranković Sаdržаj – U ovom rаdu je prikаzаno kako se motor hard disk jedinice [1] može upotrebiti zajedno s LED diodama za realizaciju analognog sata. Iskorišćen je i mikrokontroler PIC18F452 [2]. I. UVOD Ovaj sat se bazira na Event Driven [3] programiranju. To znači da sistem mora da „hendluje“ događaje u vremenu i dovoljno brzo odreaguje i spremi se za sledeći. Osnovna stvar je da postoji Optocoupler koji detektuje Home (početnu poziciju), nakon čega počinje iscrtavanje sata. II. PRINCIP RАDА SISTEMA PIC18F452 poseduje bootstrap loader [3], što znači da se program spušta direktno na mikrokontroler u EEPROM memoriju [4] i odatle se izvršava. Inače ovaj mikrokontroler pripada PICAXE [5] familiji mikrokontrolera. To je standardni Microchip PIC mikrokontroler koji je unapred programiran sa PICAXE kodom firmvare-a. Bootstrap kod omogućava PICAXE mikrokontroleru da bude ponovo programiran „u poziciji“ direktno preko kabla za preuzimanje „Trožične“ jednostavne veze. Ovo eliminiše potrebu za (skupim) konvencionalnim PIC programatorima, čineći ceo posao programiranja tzv. sistem low-cost, USB kablom. Isti softver i download kabl se koristi za sve PICAXE čipove raznih veličina. Mikrokontroler se napaja sa 5 V DC napona, koji se dobija pretvaranjem napona napajanja (9 V DC baterija, dok se motor napaja DC naponom od 12 V) pomoću stabilizatora napona 7805 [6]. LED diodama se upravlja po principu jedna LED dioda na jedan pin PIC-a. Na slici 1. se može videti pinout mikrokontrolera. U pitanju je 40 pinski mikrokontroler. Slika 1. Mikrokontroler PIC18F452 Naponom od 5V se napajaju i drajveri [8]. Kako bi mikrokontroler, iskorišćeni su LED drajveri. U pitanju su lečevi koji služe da se signal sa odgovarajućeg pina mikrokontrolera vodi na odgovarajuću katodu LED diode. Ovde je iskorišćena logika gde se anode „emitiraju“ preko „pull up“ otpornika, koji u ovom slučaju iznose 330 Ω, i dalje se vode na 5 V DC napona. Svaki od drajvera upravlja po 8 LED dioda. LED drajveri su kako je već naglašeno lečevi realizovani preko D – flip flopova [9], gde postoji 8 ulaza (D) i 8 izlaza (Q), jedan pin za dozvolu rada (Enable) i jedan pin za kontrolu izlaza. D – flip flopovi su ovde iskorišćeni kao bistabilna kola kod kojih izlaz stalno prati promene na ulazima dok se eventualno ne dovede pobudni signal koji zamrzava stanje na izlazu i ova kola se nazivaju leč M. Đorđević, sа smerа Mikroelektronikа i Mikrosistemi, Elektronski fаkultet u Nišu, Aleksаndrа Medvedevа 14, 18000 Niš, Srbijа. I. Ranković, sa smera Računarske nauke, Računarski fakultet u Beogradu,

description

U radu je dat detaljan opis i sema kako napraviti analogni sat pomocu LED dioda i motora od HDD jedinice.

Transcript of Propeler sat sa LED diodama

Page 1: Propeler sat sa LED diodama

Propeler sat sa LED diodamaM. Đorđević, I. Ranković

Sаdržаj – U ovom rаdu je prikаzаno kako se motor hard disk jedinice [1] može upotrebiti zajedno s LED diodama za realizaciju analognog sata. Iskorišćen je i mikrokontroler PIC18F452 [2].

I. UVOD

Ovaj sat se bazira na Event Driven [3] programiranju. To znači da sistem mora da „hendluje“ događaje u vremenu i dovoljno brzo odreaguje i spremi se za sledeći. Osnovna stvar je da postoji Optocoupler koji detektuje Home (početnu poziciju), nakon čega počinje iscrtavanje sata.

II. PRINCIP RАDА SISTEMA

PIC18F452 poseduje bootstrap loader [3], što znači da se program spušta direktno na mikrokontroler u EEPROM memoriju [4] i odatle se izvršava. Inače ovaj mikrokontroler pripada PICAXE [5] familiji mikrokontrolera. To je standardni Microchip PIC mikrokontroler koji je unapred programiran sa PICAXE kodom firmvare-a. Bootstrap kod omogućava PICAXE mikrokontroleru da bude ponovo programiran „u poziciji“ direktno preko kabla za preuzimanje „Trožične“ jednostavne veze. Ovo eliminiše potrebu za (skupim) konvencionalnim PIC programatorima, čineći ceo posao programiranja tzv. sistem low-cost, USB kablom. Isti softver i download kabl se koristi za sve PICAXE čipove raznih veličina.

Mikrokontroler se napaja sa 5 V DC napona, koji se dobija pretvaranjem napona napajanja (9 V DC baterija, dok se motor napaja DC naponom od 12 V) pomoću stabilizatora napona 7805 [6]. LED diodama se upravlja po principu jedna LED dioda na jedan pin PIC-a. Na slici 1. se može videti pinout mikrokontrolera. U pitanju je 40 pinski mikrokontroler.

Slika 1. Mikrokontroler PIC18F452

Naponom od 5V se napajaju i drajveri LED dioda [7] – IC74LS374 [8]. Kako bi to preopteretilo mikrokontroler, iskorišćeni su LED drajveri. U pitanju su lečevi koji služe da se signal sa odgovarajućeg pina mikrokontrolera vodi na odgovarajuću katodu LED diode. Ovde je iskorišćena logika gde se anode „emitiraju“ preko „pull up“ otpornika, koji u ovom slučaju iznose 330 Ω, i dalje se vode na 5 V DC napona. Svaki od drajvera upravlja po 8 LED dioda.

LED drajveri su kako je već naglašeno lečevi realizovani preko D – flip flopova [9], gde postoji 8 ulaza (D) i 8 izlaza (Q), jedan pin za dozvolu rada (Enable) i jedan pin za kontrolu izlaza. D – flip flopovi su ovde iskorišćeni kao bistabilna kola kod kojih izlaz stalno prati promene na ulazima dok se eventualno ne dovede pobudni signal koji zamrzava stanje na izlazu i ova kola se nazivaju leč kolima (eng. latch). Na slici 2. je data unutrašnja struktura ovog kola.

Slika 2. Unutrašnja struktura LED drajvera

Pokretanje celog sistema se vrši motorom hard disk jedinice, čiji motor ima četiri izvoda, tj. vezan je u „zvezdu“  [10]. Tri žice su vezane za svaku od tri faze, dok je četvrta žica vezana za čvorište. Motorom se upravlja – „drajvuje“ kolom za drajvovanje DC motora sa četkicama TDA5140A [11]. Kolo je 18-to pinsko. Slika povezivanja TDA kola i motora je data na slici 3.

Slika 3. Šema povezivanja TDA kola i motoraM. Đorđević, sа smerа Mikroelektronikа i Mikrosistemi, Elektronski fаkultet u Nišu, Aleksаndrа Medvedevа 14, 18000 Niš, Srbijа.

I. Ranković, sa smera Računarske nauke, Računarski fakultet u Beogradu, Knez Mihailova 6. 11000 Beograd, Srbija.

Page 2: Propeler sat sa LED diodama

Za iscrtavanje slike iskorišćeno je 16 LED dioda, od kojih su 15 zelene, a jedna je crvena. Zelene diode iscrtavaju kazaljke za sekunde, minute i sate, dok crvena dioda iscrtava krug, tj. okvir samog sata. Kao što je već navedeno, na katode pojedinačno se dovodi signal sa LED drajvera, dok se na svaku od anoda vezuje pull up otpornik i sve zajedno vodi na napon napajanja od 5 V DC, koji se dobija sa stabilizatora napona. Da bi se slika sinhronizovala i da se nebi desilo da slika „šeta“, prethodno je izvršen proračun kako bi se odredilo kada se koja od dioda pali i koliko dugo svetli.

A. ProračunPre svega, mora se imati u vidu kolika je brzina

obrtanja motora, u ovom slučaju je to 7200 obrtaja u

minuti. Dakle za jednu sekundu, ovaj motor se okrene 120 puta. Takođe treba izračunati i koliko je vreme potrebno da bi se izvršila jedna cela rotacija. U ovom slučaju je to 8,333·10-3 sekundi. Dalje treba odrediti koliko je potrebno vremena da se motor pomeri od 1° do 2°, vreme potrebno iznosi 2,314814·10-5 sekundi. Na kraju se računa i kolika je pauza za rad LED dioda, tj. koliko dugo svetle i kolika je pauza između aktivnog i neaktivnog režima rada, što zavisi od kvarcnog kristala [12]. U ovom slučaju je korišćen kvarcni kristal vrednosti 8 MHz, kako ovaj mikrokontroler multiplicira 4 puta frekvenciju rada, imamo da radi na 32 MHz. Šema sata je data na sl. 5. Šema je rađena u programskom paketu Proteus [13].

Slika 5. Šema sata

B. Sinhronizacija i opis kodaOdređivanje početnog položaja, tj.trenutka kada

mikrokontroler počinje iscrtavanje sata, vrši se pomoću optokaplera koji je izveden pomoću infracrvene diode CQY99 i senzora infracrvenog zračenja TSOP34138 [14]. Senzor se nalazi na vrhu pločice koja se okreće, dok se dioda nalazi na ploči na kojoj je fiksiran motor, a logika detektovanja je sledeća: kada senzor detektuje svetlost

infracrvene diode šalje signal mikrokontroleru. Dakle detektovanje infracrvenog svetla označava tzv. „home“ položaj, to je mesto gde je 12 sati i odatle kreće crtanje. I to je vezano za nemaskirani interrupt INT0 [15]. To znači da će kad god se desi okidanje interrupt-a , tj. prolazak kroz Home poziciju da se odradi ISR (interrupt service routine) [16] koja je u programu vezana za taj dogadjaj. U toj rutini treba odraditi sve da se resetuju svi brojači i da se krene sa crtanjem iz početka. Zbog toga je bitno poznavati

Page 3: Propeler sat sa LED diodama

brzinu obrtanja motora, kako nebi došlo do desinhronizacije slike. Pored ove glavne ISR postoji još nekoliko za setovanje-resetovanje timera (): ISR(INT1_vect) - uvećava broj sekundi za jedan, tj. prošla 1 sec ISR(TIMER0_OVF_vect) - reset timer 1 i jos neke, samo hendlovanje interruptima se radi sa dve instrukcije: sei() i cli(), setuj i clear interrupt-a unutar nje se odradi šta treba. Samo crtanje je odrađeno u AnalogMode, to je funkcija za rad sa Analognim satom. Osnovni princip je sledeći: Timer upisuje sekunde, minute i sate na lokacije definisane u memoriji, a ovde se čitaju i na osnovu trenutne pozicije se računa šta treba da se crta za svaku od kazaljki. DataRTC[HOURS_ADDR];DataRTC[MINUTES_ADDR] iDataRTC[SECONDS_ADDR],su vrednosti koje se čitaju sa lokacija u memoriji. Osnovno je da se odredi pozicija svake kazaljke u datoj poziciji motora. Na osnovu matematike šta treba da se crta radi se samo crtanje. Pošto ovaj sat ima 16 LED dioda , znači da treba da iscrta 2 sekcije po 8 bita. To je Array Linia koja ima 2 elementa, i to su 2 sekcije Led dioda koje se pale lečevima.

NPR:Linia[0] = 0b11110000;Linia[1] = 0b11111111;Kad spakuje šta i kad treba da crta, onda pozove funkciju koja ovo pošalje na izlaze, a to je: Send2Bytes(Linia[0], Linia[1]); 1 - znači pali. 0- uzemlji, gasi diodu. I kad iscrta onda pozove naredbu delay, da bi sačekao sledeću poziciju da ponovo računa i crta: _delay_ms(0.04); Ovaj delay se računa zavisno od brzine motora. To je vreme za sinhronizaciju softwera sa motorom i time se postiže da slika miruje. Glavni deo programa je u main() delu. Tu program logički kreće i inicijalizuje sve brojače i timere, a interruptne rutine rade svoje.

Vreme se dovodi sa sata realnog vremena – RTC [17] koji je realizovan kolom DS1307Z [18]. Ovo kolo poseduje I2C magistralu [19]. Povezano je na bateriju kako bi se održavala informacija o realnom vremenu. Real Time Clock (RTC) je grupa brojača koja služi za merenje vremena kada je sistem uključen na napajanje, i opcionalno kada je isključen. Koristi veoma malo energije u režimu smanjene potrošnje (power-down mod).

Slika 6. 3D model pločice sa komponentama

Na slici 6. se može videti 3D model pločice sa komponentama, takođe se vide i tri rupe koje su iskorišćene za montiranje pločice na motor. Na vrhu pločice se nalazi optokapler, koji kao što je navedeno služi za sinhronizaciju slike. Izgled štampane ploče je dat na slici 7. Štampana ploča je rađena u programskom paketu Proteus.

Slika 7. Izgled štampane ploče

III. ZАKLJUČАK

U ovom radu je prikazana realizacija analognog sata pomoću mikrokontrolera PIC18F452 i LED dioda.

Korišćeni mikrokontroler se pokazao veoma dobrim, takođe, umnogome je olakšano programiranje zahvaljujući bootstrap loaderu koji se nalazi u samom mikrokontroleru.

ZAHVALNICA

Autori se zahvaljuju celokupnom nastavnom kadru sa katedre za mikroelektroniku na sveobuhvatnoj pomoći, prilikom izrade ovog rada.

LITERАTURА

[1] HDD motor, S2504C, Samsung. [On Line]. Dostupno na: http://www.telstartech.com.tw/Product/Evercom/pdf/4_DC%20micro%20Brushless%20motor.pdf

[2] PIC18F452, Microchip, data sheet, [On Line]. Dostupno na: http://plc.mechatronika.hu/piclei/18F24-25-44-45_20.pdf

[3] Bootstrap loader, članak. [On Line]. Dostupno na: http://www.meinberg.de/english/glossary/bootstrap-loader.htm

Page 4: Propeler sat sa LED diodama

[4] EEPROM memorija, članak. [On Line]. Dostupno na: http://www.onsemi.com/PowerSolutions/parametrics.do?id=2311

[5] PICAXE mikrokontroler, članak iz data sheet. [On Line]. Dostupno na: http://www.picaxe.com/docs/picaxe_manual1.pdf

[6] Stabilzator napona 7805, data sheet. [On Line]. Dostupno na: http://www.datasheetcatalog.com/datasheets_pdf/7/8/0/5/7805.shtml

[7] LED drajver, članak. [On Line]. Dostupno na: http://hades.mech.northwestern.edu/index.php/LED_Drivers

[8] 74LS347, Texas Instruments, datasheet. [On Line]. Dostupno na:http://www.datasheetcatalog.com/datasheets_pdf/7/4/L/S/74LS347.shtml

[9] D - flip flop, članak. [On Line]. Dostupno na: http://hyperphysics.phyastr.gsu.edu/hbase/electronic/dflipflop.html

[10] Vezivanje motora u zvezdu, članak. [On Line]. Dostupno na: http://www.elitesecurity.org/t441192

[11] TDA5140A, Texas Instruments, data sheet. [On Line]. Dostupno na: http://www.nxp.com/documents/data_sheet/TDA5140A.pdf

[12] Kvarcni kristal, članak. [On Line]. Dostupno na: http://www.electronics-tutorials.ws/oscillator/crystal.html

[13] Proteus, Labcenter. [On Line]. Dostupno na: http://www.labcenter.com/index.cfm

[14] TSOP34138, Digchip, data sheet. [On Line]. Dostupno na: http://www.digchip.com/datasheets/parts/datasheet/513/TSOP34138.php

[15] Interrupt INT0, članak. [On Line]. Dostupno na: http://www.microdesignsinc.com/picbook/bookinfo/C9.pdf

[16] ISR, članak. [On Line]. Dostupno na: http://www.dauniv.ac.in/downloads/EmbsysRevEd_PPTs/Chap_4Lesson02EmsysNewInterruptBasedIOs.pdf

[17] RTC, članak. [On Line]. Dostupno na: http://www.maximintegrated.com/products/rtc/

[18] DS1307Z, Texas Instruments, data sheet. [On Line]. Dostupno na: http://www.sparkfun.com/datasheets/Components/DS1307.pdf

[19] I2C magistrala, članak. [On Line]. Dostupno na: http://www.atlasmax.rs/index.php?option=com_content&view=article&id=26&Itemid=225 http:// www.atlasmax.rs/index.php?option=com_content&view=article&id=236&Itemid=225