Analog Read/Write
Last updated
Last updated
Tento příklad znázorňuje, jak vyčíst analogovou hodnotu napětí pomocí zařízení IODAG3E. Jako příklad budeme pomocí této hodnoty pozorovat pozici otočení potenciometru. Toto natočení budeme monitorovat pomocí sériové linky v PC. Taktéž budeme měnit hodnotu napětí na LED a tím ji stmívat.
IODAG3E
10kΩ potenciometr
LED
220Ω rezistor
Potenciometr zapojíme tak abychom vytvořili jednoduchý dělič napětí. Potenciometr zapojíme mezi pin 3V3 a GND. Jezdec potenciometru poté zapojíme na pin Y23, který dokáže pracovat jako analogový vstup. LED poté připojíme k pinu Y25, který naopak dokáže pracovat jako analogový výstup viz Analogové vstupy a Analogové výstupy.
Zařízení IODA je vybavené ADC převodníky a na některých svých vstupech konektoru XY je schopné snímat analogovou hodnotu napětí a interpretovat tuto hodnotu číslem v programu. Hodnota tohoto vstupního napětí musí být v rozsahu 0-3.3V a lze ji interpretovat několika způsoby. Buď jí lze interpretovat hodnotou float, která reprezentuje rozsah vstupního napětí desetiným číslem 0-1, nebo jí lze interpretovat celočíselným 16ti-bitovým číslem (uint16_t). Více o Analogovém vstupu se lze dozvědět v sekci Vstupy a výstupy. Následující kód převede vstupní hodnotu napětí, která je závislá na otočení potenciometru, do digitální podoby a nastaví pomocí ní výstupní hodnotu napětí na LED diodě. Otáčením tedy můžeme LED diodu stmívat a rozsvěcet.
V hlavičce programu je nutné importovat knihovny Byzance Hardware API a Mbed API. pomocí
Poté nasleduje konstruktor definující objekt sériové linky.
Převede napětí na pinu analogového vstupu v rozmezí 0 - 3.3V do digitální podoby a interpretuje ho číslem na škále 0-1.
Funkce AnalogOut umožňuje definovat analogový výstup, který pomocí digitáně analogového převodníku dokáže na základě vstupní hodnoty této funkce měnit hodnotu napětí na výstupním pinu v rozsahu 0 - 3.3V . Procesor umožňuje definovat dva analogové výstupy, a to na pinech Y23 a Y25. Velikost napětí na výstupu je škálováno zápisem v rozsahu 0 - 1, kdy 1 je maximální napětí 3.3V.
Funkce init()
se vyvolá při spuštění. Používa se pro inicializaci proměnných, pinových režimů apod. Funkce se spustí pouze jednou při spuštění nebo resetování desky. V tomto případě pouze inicializuje rychlost komunikace sériové linky.
Funkce loop()
je nekonečná smyčka, ve které se přečte hodnota napětí na jezdci potenciometru do proměnné ain. Tato hodnota se vypíše do sériové linky a nastaví se pomocí ní výstupní hodnota napětí na LED diodě (aout).
V poslední části kódu je vlákno programu uspáno na 100 milisekund.