Obr. 12
Napětí a osvit
Odečíst napětí či intenzitu osvitu můžete různými způsoby. Zde ukážeme, jak lze získat hodnoty pomocí rozšiřujícího senzorického kitu DDC-SE-01 (obr. 12). Ten lze snadno pomocí zřetězení připojit do vývojového zařízení DK-EVAL-04A. Na tomto kitu najdete senzor intenzity osvětlení – fotorezistor, potenciometr pro snímání hodnot napětí, či externí teplotní čidlo Dallas 18B20.
Výrobce připravil sadu řešených praktických příkladů (www.iqrf.org), mezi nimiž najdete i příklad určený pro čtení hodnot z fotorezistoru a potenciometru (CustomDpaHandler-UserPeripheral-ADC.c).
Tento příklad upravte nebo použijte v dodávané variantě, a po zkompilování nahrajte do Nodu, na který připojíte rozšiřující senzorický kit. V konfiguraci povolte použití Custom DPA Handleru. Abyste věděli, na jakou periferii zasílat jaké příkazy, prostudujte zdrojový kód tohoto programu (obr. 13).
Ovládací údaje
Ze zdrojového kódu Custom DPA Handleru zjistíte, že PNUM = 0x20 a PCMD = 0 vrací dvoubajtovou hodnotu s 10b ADC výsledkem z pinu C5 (AN4) v parametru PData, a že PNUM = 0x21 a PCMD = 0 vrací dvoubajtovou hodnotu s 10b ADC výsledkem z pinu C1 (AN0) v parametru PData.
Z dokumentace senzorického kitu (obr. 14) zjistíte, že pin C5 je připojen na potenciometr, a C1 na fotorezistor.
Pro získání hodnoty z potenciometru je tedy potřeba zaslat příkaz PCMD = 0 na první uživatelskou periferii PNUM = 0x20, pro získání hodnoty z fotorezistoru zašlete příkaz PCMD = 0 na druhou uživatelskou periferii PNUM = 0x21. Návratové hodnoty dostanete v parametru PData (v pořadí Little-endian – PDATA[1] a PDATA[0]).
V ukázce byla získána hodnota z potenciometru 0x022A, což lze binárně vyjádřit jako 0000 0010 0010 1010. Tuto 10bitovou hodnotu můžete převést na napětí (obr. 15). Podobně byla získána hodnota intenzity osvitu 0x0126, binárně 0000 0001 0010 0110. Toto číslo lze převést na odpovídající hodnotu intenzity osvětlení (obr. 16).
Teplota z externího čidla
Na senzorickém kitu najdete externí teplotní čidlo Dallas 18B20, pomocí kterého můžete měřit teplotu okolí neovlivněnou vlastním transceiverem. Pro čtení této teploty je připraven příklad CustomDpaHandler-UserPeripheral-18B20.c. Pro získání teploty zašlete příkaz PCMD = 0 na první uživatelskou periferii PNUM = 0x20. V parametru PData získáte návratovou hodnotu (obr. 17).
V této ukázce jsme získali hodnotu 0x0190, což binárně odpovídá hodnotě 0000 0001 1001 0000. Interpretace hodnoty závisí na samotném čidlu, jehož manuál je třeba vyhledat a prostudovat (např. http://www.gme.cz/img/cache/doc/530/067/ds18b20-datasheet-1.pdf ). Zde byla vrácena hodnota 25 °C.
V příštím dílu se podíváme blíže na Fast Response Command, který umožňuje hromadné získávání informací ze zařízení či jejich řízení.
Ivona Spurná
PR & EDU Specialist
IQRF Smart School Project Manager
ivona.spurna@microrisc.com