Kapacitní klávesnice u PIC a PICAXE 2

PICAXE

Protože mikrokontrolér PICAXE je založen na PIC, můžeme u řad -M2 a -X2 využívat funkce kapacitních senzorů. Mikrokontrolér PICAXE je určen pro snadné použití, odpadne nám tedy před použitím této funkce složité konfigurování mikrokontroléru a vlastní tvorba obslužného programu (viz třeba v minulém díle zmíněná obsluha timerů a vyhodnocovací program).

Pro práci s dotekovými čidly je u mikrokontrolérů PICAXE řady -M2 a -X2 určen příkaz touch16, který zpracovává signál z dotekového čidla, připojeného na některý ze vstupů ADC mikrokontroléru a výsledek operace ukládá do proměnné datového typu word. Tento příkaz pracuje jen s piny mikrokontroléru, které jsou pro tuto funkci připraveny, při spuštění automaticky nakonfiguruje určený pin jako ADC a zapne na něm funkci dotykového senzoru.

Konstrukce klávesnice

Doteková ploška musí být vždy elektricky izolována. Na průmyslově vyrobené desce plošných spojů může být ploška například překryta nepájivou maskou, na amatérsky vyrobené desce je možno dotekovou plošku přelepit samolepící fólií nebo nad ní umístit kousek plastové destičky, silné až 2 mm. Nikdy se přímo nedotýkejte neizolované dotekové plošky nebo holého drátu, připojeného na pin, hrozí nebezpečí poškození PICAXE výbojem statické elektřiny!

Pro konstrukci klávesnice  je ideální například víčko plastové konstrukční krabičky; deska plošných spojů se senzorovými ploškami se připevní na víčko zevnitř a na jeho vnější plochu se přilepí samolepící štítek se symboly.

Vodivá dotyková ploška musí být připojena přímo na vstupní pin mikrokontroléru PICAXE. Nesmí být použity žádné pull-up ani pull-down rezistory.

Na tvaru dotekové plošky nezáleží, ale pro dotek prstu je nejvýhodnější kruhový nebo pravoúhlý tvar. Jkak bylo zmíněnovýše, přímo se nabízí možnost vytvoření senzoru jako kruhové měděné plošky o průměru 15 až 20 mm (plocha nejméně 200 mm2) přímo na desce plošných spojů.

Při návrhu většího množství senzorů, umístěných vedle sebe, je nutno počítat nejen s různými rozměry prstů, ale i s tím, že prst nebude vždy na plošku přiložen zcela přesně. Na krycím štítku je tedy třeba vyznačit místo doteku a mezi senzory ponechat co nejvíce volného prostoru.

Aplikační poznámky

PICAXE řady -M2 a -X2 používají kvůli odlišné vnitřní konstrukci různé způsoby měření změn kapacity dotekového senzoru.  Měření kapacity probíhá u PICAXE řady -X2 rychleji, ale vrací jen desetibitovou hodnotu (0 až 1023), namísto hodnoty šestnáctibitové (0-65535), která se používá u PICAXE řady -M2.

Vliv změny taktovací frekvence mikrokontroléru

Taktovací frekvence  bude mít vliv na rychlost měření a výsledek operace se tedy bude se změnou této frekvence měnit. Příkaz touch16 tedy musíme kalibrovat při té taktovací frekvenci, kterou budeme používat v programu.

Kalibrace

Dotekový senzor funguje – jak bylo podrobně vysvětleno výše – na principu změny kapacity, vzniklé přiblížením prstu nebo podobného objektu k dotekové plošce. Kapacita dotekové plošky určuje frekvenci vnitřního oscilátoru v PICAXE. Při přiblížení prstu k plošce se její kapacita zvýší, tím se naopak sníží frekvence oscilátoru a prodlouží se doba, potřebná k vykonání stanoveného počtu period kmitů. Ze změny této doby je možno vypočíst relativní velikosti kapacity senzoru.

Vzhledem k drobným odlišnostem ve vnitřní struktuře mikrokontrolérů se bude každý z touch pinů chovat nepatrně odlišně a měl by být kalibrován samostatně.

Čtení údajů z dotekového senzoru může být ovlivněno připojením dlouhého programovacího kabelu k vývojové desce. Proto se při kalibraci příkazu touch nedoporučuje ponechat programovací kabel připojený.

Při běžném použití příkazu touch16 můžeme použít výchozí nastavení parametrů a není nutno je měnit pomocí konfiguračních bitů. Změnou konfigurace naopak můžeme vlastnosti příkazu touch16 upravit podle svých potřeb.

Konfigurační byte pro PICAXE řady -M2

Konfigurační byte pro PICAXE řady M2 se skládá z 8 bitů:

Nastavení doby běhu oscilátoru:

bit7,6,5

= 000 musí proběhnout 256 kmitů oscilátoru

= 010 musí proběhnout 192 kmitů oscilátoru

= 100 musí proběhnout 128 kmitů oscilátoru

= 110 musí proběhnout 64 kmitů oscilátoru

= 111 musí proběhnout 32 kmitů oscilátoru

Nastavení citlivosti:

bit4,3

= 00 oscilátor dotekového senzoru je vypnut

= 01 malý nabíjecí proud, nízká citlivost (0,1µA)

= 10 střední nabíjecí proud, střední citlivost (1,2µA)

= 11 vysoký nabíjecí proud, vysoká citlivost (18µA)

Nastavení počátečního stavu čítače kmitů oscilátoru  (2 až 256):

bit2,1,0

= 001 přednastaví čítač na stav 4

Výchozí nastavení konfiguračního bytu pro PICAXE řady M2 je %00001001

Konfigurační byte pro PICAXE řady -X2

Konfigurační byte pro PICAXE řady X2 se skládá z 8 bitů:

bit7, 6 nejsou použity

bit5,4

= 00 oscilátor dotekového senzoru je vypnut

= 01 nominální nabíjecí proud

= 10 střední nabíjecí proud (10 x větší než nominální)

= 11 vysoký nabíjecí proud (100 x větší než nominální)

bit 3,2,1,0

= čas, potřebný pro nabití referenční kapacity v násobcích 2µs (1-15)

Výchozí nastavení konfiguračního bytu pro PICAXE řady – X2 je %00110010 (vysoký nabíjecí proud, základní nabíjecí čas násobený 2)