
IoT prakticky: Analógové vstupy čipu PICAXE a univerzálne dosky pre tento mikrokontrolér
Mikrokontroléry PICAXE sú veľmi obľúbené, pretože aj začiatočník ich vie použiť priamo, bez vývojovej dosky, takže sa hodia do miniatúrnych konštrukcií, modelov, robotov a podobne. Dajú sa jednoducho programovať v jazyku BASIC a program sa z PC do čipu prenáša pomocou sériového rozhrania cez jednoduchý káblik zo sériového portu, alebo portu USB cez prevodník.
Príklady sú vo videu
Aj pre čipy PICAXE sú k dispozícii univerzálne dosky umožňujúce priame pripojenie senzorov, či servomotorov, prípadne špeciálne dosky na ovládanie krokových, či jednosmerných motorov a podobne. Skôr, než sa začneme venovať spracovaniu analógových veličín ako inšpiráciu predstavíme niekoľko jednoduchých dosiek, s týmto čipom, ktoré sú k dispozícii na e-shope www.hobbyrobot.cz a budeme ich používať aj v ďalších dieloch seriálu.
![]() |
![]() |
Všetky dosky majú stabilizátor napätia 5V, takže sa dajú napájať jednosmerným napätím +8 až +15 V. Pripomíname, že rozsah napájacieho napätia pre PICAXE je 1.8 – 5V. Ak napájate PICAXE napätím 3.3 V je zlučiteľný s 3.3 V logikou. Pri napájacom napätí 5 V je zasa kompatibilný z TTL logikou a to je aj prípad dosiek predstavených v tomto článku.
Napájací zdroj je chránený vratnou nadprúdovou poistkou a ochrannou diódou proti preťaženiu a opačnej polarite vstupného napätia. Ak je napájacie napätie v poriadku, rozsvieti sa po jeho pripojení zelená indikačná LED. Ochrana proti prepólovaniu napájacieho napätia je totiž v prípade PICAXE veľmi dôležitá. Mikrokontroléry PICAXE sú vlastne čipy PIC vyrábané firmou Microchip, do ktorých bol vložený špeciálny softvér umožňujúci zaviesť váš program do mikrokontroléra a podpora funkcií súvisiacich s hardvérom. Tento softvér nesmiete prepísať, inak by ste z PICAXE mali obyčajný PIC čip. Tento špeciálny softvér sa vymaže aj v prípade ak prekročíte hornú hranicu maximálneho napájacieho napätie približne 5.5 V alebo napájacie napätie prepólujete. Začneme univerzálnymi doskami:
AXEboard08
Univerzálna doska AXEboard08 je určená pre čip PICAXE 08M2. Doska má vyvedené všetky použiteľné piny nikrokontroléra a má aj konektor na káblik, ktorým sa PICAXE programuje cez sériové rozhranie. Na moderných počítačoch a notebookoch, ktoré nemajú sériové rozhranie je potrebné použiť dostupný a lacný prevodník z USB na sériový port.
Uvedieme aj schému zapojenia, no informácie, ktoré potrebujete vedieť sa dajú zhrnúť do niekoľkých odrážok
- Na pin 1 každého z konektorov C.0 až C.5 je vyvedená elektrická zem (GND
- Na pin 2 je vyvedené stabilizované napätie +5 V, určené pre napájanie vonkajších zariadení. Prúd, odoberaný z tohto pinu nesmie presiahnuť 50 mA.
- Na pin 3 je cez rezistor 220 ohmov vyvedená vstupne / výstupný port mikrokontroléru.
Rezistory 220 ohmov chránia piny mikrokontroléru pred poškodením skratom alebo privedeným vonkajším napätím. Skratovacia spojka JP1 (PGM / RUN) umožňuje odpojiť pin C.5 od programovacieho obvodu a používať ho ako bežný I/O pin. V tomto prípade ale vždy na začiatku vášho programu použite príkaz DISCONNECT
AXEboard20
Až na počet konektorov je identická s doskou AXEboard08. Má päticu na mikrokontrolér PICAXE 20M2, prípadne 20X2 a na konektory je vyvedených 17 pinov. Vedľa programovacieho konektora je konektor A.0 a pozdĺž dlhších stran sú na jednej strane konektory C.0 – C.7 a na druhej strane B.0 – B.7.
![]() |
![]() |
Analógové vstupy, AD prevodníky
Načítanie analógových hodnôt je dôležité hlavne čo sa týka údajov z analógových senzorov, prípadne merania napätia batérií a akumulátorov v rôznych zariadeniach. Taktiež sa hodí pri ovládaní rôznych funkcií pomocou otočných, alebo posuvných potenciometrov. Stačí zapojiť potenciometer ako delič napätia a podľa hodnoty nameranej na bežci sa dá určiť poloha natočenia medzi krajnými polohami minimum a maximum. Tento princíp budeme používať aj na ovládanie otáčok motora, takže preto najskôr preberieme funkcie jazyka BASIC na mikrokontroléroch PICAXE na načítanie analógových hodnôt.
Mikrokontrolér PICAXE 08M2 má tri A/D prevodníky na vstupoch C.1, C.2 a C.4. Prevodníky môžu pracovať s presnosťou 8 bitov, čiže v rozsahu hodnôt 0 – 255 a vtedy sa výsledok dá uložiť do premennej s veľkosťou bajt, prípadne s presnosťou 10 bitov v rozsahu hodnôt 0 – 1023 a vtedy sa výsledok ukladá do premennej typu word, čiže do dvoch bajtov. Rozsah napätia na vstupoch môže byť daný napájacím napätím, ktoré je najčastejšie 5V, alebo pre presnejšie merania niektorým z vnútorných referenčných napätí 1.024 V, 2.048V, alebo 4.096 V
Analógová hodnota napätia sa číta pomocou príkazov READADC, alebo READADC10. Prvým parametrom je pin a druhým parametrom premenná, do ktorej sa uloží načítaná hodnota. Pre READADC sa výsledok ukladá do premennej typu byte a pre READADC10 do premennej typu word.
V prvom príklade budeme posielať nameranú hodnotu do počítača cez sériové rozhranie. Príkaz SERTXD pošle údaje v parametroch cez rovnaké sériové rozhranie, ako sa mikrokontrolér programuje do počítača, Prenosové parametre sú rýchlosť 4800 Bd, bez parity (N), 8 bitov a 1 stop bit. Ak chcete poslať hodnotu premennej, treba pred jej označenie dať znak #, napríklad #b0.
Výpis môžeme trochu poľudštiť a napätie vypísať ako desatinné číslo
Ak predpokladáme napájacie napätie 5V tak platí
NameraneNapätie / 5 = HodnotaAD / 255
Po úprave
NameraneNapätie = 5*( HodnotaAD / 255)
NameraneNapätie = HodnotaAD / 51
Takže vzorec bude
Vin = ADCval * 100 / 51
Program:
Spôsob pripojenia referenčného napätia určuje príkaz ADCCONFIG. Parametrom je jeden bajt, z ktorého sa použijú len tri bity. Bity 1 a 0 určujú aký typ referenčného napätia sa použije. Implicitná hodnota je 00.
Bity 1 a 0
|
referenčné napätie
|
00
|
napájacie napätie procesora
|
01
|
nepovolená hodnota
|
10
|
externý vstup
|
11
|
vnútorný zdroj nastavený cez FVRSETUP
|
Pomocou príkazu FVRSETUP sa nastavuje pripojenie k vnútornému referenčnému zdroju. Parametre sú FVR1024, FVR 2048 a FVR 4096.
Analógové výstupy, D/A prevodník
Najmenší obvod PICAXE 08M2 má jeden D/A prevodník, ktorý je na pine 0, takže ak ho chcete použiť, treba odpojiť programovací kábel. Prevodník má bohužiaľ len 32 úrovní napätia.
Výstupná úroveň napätia sa nastavuje príkazom DACLEVEL s jedným parametrom, ktorý môže mať hodnotu v intervale 0 – 31. Príkazom DACSETUP sa nastavuje fungovanie D/A prevodníka. Význam jednotlivých bitov parametra:
Bit
|
0
|
1
|
0
|
vzťažná úroveň je GND
|
vzťažná úroveň je externý vstup
|
Bity
|
00
|
01
|
10
|
2 a 3
|
napájacie napätie
|
externý vstup
|
interný zdroj nastavený cez FVRSETUP
|
V príklade budeme v cykle postupne zvyšovať napätie na výstupe. Po prejdení celého cyklu sa výstupné napätie vráti na nulovú hodnotu, takže v konečnom dôsledku budeme generovať pílový signál, ktorého nábežná hrana nebude spojitá, ale bude vytvorená z 32 napäťových úrovní
Na regulovanie výkonu je lepšie použiť PWM, čiže pulzne šírkovú moduláciu. To si ukážeme v ďalšom dieli venovanom ovládaniu jednosmerných motorov
Video ukazuje ako si vyrobiť kábel na programovanie PICAXE aj pripojenie alfanumerického displeja
Predchádzajúce časti
Prvé pokusy s čipom PICAXE jednoducho programovateľným v jazyku BASIC
Využitie čipov PICAXE na generovanie a meranie impulzov
Zobrazit Galériu