Požár Marek, Kaňa
Leoš
xkanal03stud.feec.vutbr.cz, xpozar00
stud.feec.vutbr.cz
Obr.1: Zapojení inkrementálního čidla a průběhy jejich výstupů [1]
Obr.2: Mechanické inkrementální čidlo P-RE30S [1]
Základní a důležité parametry jsou uvedeny v tabulce Tab1. Inkrementální čidlo je připojeno k mikrokontroleru pomocí 3 pinů. Jeden vývod inkrementálního čídla (vývod A) je připojen na externí přerušení mikrokontroleru a druhý vývod inkeremetnálního čídla (vývod B) je připojen k normální pinu mikrokontroleru. Jestliže dojde k otočení čidla vyvolá se externí přerušení mikrokontroleru (EXT7) a testuje se druhý pin na který je připojen vývod B daného inkrementálního čidla. Poslední 3 vývod inkrementální čidla (vývod C) je připojen k dalšímu externímu přerušení mikrokontroleru. Slouži pro přepínání „hrubého“ nebo „jemného kroku“ nastavování výstupního napětí.
Napájecí napětí AD5627 | 5V |
---|---|
Referenční napětí AD5627 | 5V |
Komunikace s mikrokontrolerem | Sběrnice I2C |
Max. výstupní napětí | 5V |
Krok D/A převodníku AD5627 | 12/16bit |
Počet kroku na otáčku IR čidla | 30 |
Životnost IR čidla | 15000 |
Max. proud kontakty IR čidla | 10 mA |
Nízká cena | 55 Kč |
Obr.3: Blokový diagram přípravku
D/A převodník je ovládán pomocí sběrnice I2C. Paket pro komunikaci s D/A převodníkem má pevně danou délku pro 12,14 nebo 16 bitů. Hodnota pro D/A převodník je inkrementována v externím přerušení mikrokontroleru, které je vyvoláno IR_čidlem.
(1.1)
Struktura komunikace D/A převodníku s mikrokontrolerem je na obr. 4. Nejprve je potřeba uskutečnit inicializaci sběrnice I2C. Poté vyslat příkazový byte. Tento byte obsahuje, které bude bráno referenční napětí, jaký bude zapnutý výstup, nulovaní registru zápisu atd. Poté se vysílá adresovací byte, který obsahuje adresu zařízení v našem případě adresa AD5627 a nakonec datový byte, který obsahuje hodnotu D (4096 -65535) podle vzorce 1.1, který zajišťuje velikost výstupního napětí s příslušným krokem.
Obr.4: Struktura zapisu na sbernici I2C pro AD5627
Obr.5: Struktura zapisu na sbernici I2C pro AD5627 12-bitová komunikace
Hlavni program main.c a jeho strukturu lze popsat tímto způsobem. Při zapnutí mikrokontroleru se před vstupem do nekonečné smyčky provede inicializace lcd diplaje a inicializace komunikace po sběrnici I2C. Nastaví se PORTE jako vstupní a vnitřní A/D převodník mikrokontroleru se nastaví na vybraný pin na kterém se měří napětí a také jeho reference. Dále se pošle do D/A převodníku hodnota pro nastavení při prvním spuštění mikrokontroleru. Poté se nastaví a povolí přerušení INT7, které se využívá pro spuštění testování inkrementálního čidla. Poté se v nekonečné smyčce posílá požadované napětí z inkrementálního čidla do D/A převodníku a zobrazuje se hodnota výstupního napětí na LCD_display.
Funkce pro komunikaci s D/A převodníkem jsou umístěny v souboru DA_prevodnik.c. Poslání dat na sběrnici probíhá pomocí i2c_write(napeti_DA). Zákmity inkrementálního čidla jsou ošetřeny testováním daného pinu přerušení, jestli má skutečně danou hodnotu.
Při nahrání kódu do mikrokontroleru se jeho spuštění se provede inicializace. Poté stačí ovládat inkrementální čidlo a zvyšovat tak nebo snižovat výstupní napětí, které je měřené pomocí vnitřního A/D převodníku v mikrokontoroleru ATMega128. Měřené napětí je zobrazeno na LCD_diplady s přesností na 100 mV.
Kód hlavního programu (main.c)
Kód D/A převodníku
(D/Aprevodnik.c)
[1] Mechanické inkrementální čidlo P-RE30S[online]. [citováno 5.5.2010]. Dostupný z WWW: http://www.gme.cz/_dokumentace/dokumenty/532/532-087/dsh.532-087.1.pdf
[2] D/A převodník AD5627[online]. [citováno 5.5.2010]. Dostupný z WWW: http://www.analog.com/static/imported-files/data_sheets/AD5627R_5647R_5667R_5627_5667.pdf