Čtení polohy potenciometru bez AD převodníku

Jindrich Fucik fulda na seznam.cz
Středa Září 28 14:35:37 CEST 2022


Ahoj,

v rámci svého minimalistického projektu tady mám další výzvu. Jelikož už 
jsem AD převodník použil jinde, nemohu jej použít pro čtení polohy 
potenciometru. Potenciometr je zde jako součást uživatelského rozhraní, 
které má umožnit uživateli rozeznat zhruba 50 dílků (ne že bych věřil, 
že to uživatel dokáže nastavit).

Mám k dispozici buď PIC16LF15345 nebo PIC16F15244. Ten první je LF 
(3,3V) a má 5 bit DA převodník, druhý je "bez L" (1,8 až 5,5V) a NEmá DA 
převodník. Oba mají komparátor, oba mají dostatek PWM, oba mají CCP 
(měření délky pulzu).

Zatím znám několik metod:
1A) k potenciometru přidat kondenzátor, tím dostaneme RC a měřit dobu 
nabíjení kondenzátoru. Tady mne trochu trápí nelinearita, ideální by 
bylo si udělat zdroj proudu s tím potenciometrem.

1B) udělám si zdroj proudu, kterým budu nabíjet kondenzátor, připojím ho 
na vstup komparátoru, na druhý vstup připojím napětí z potenciometru a 
budu měřit čas kdy se napětí překročí. To je podobné jako 1A, možná to 
zjednoduší schéma, ale potřebuje to více nožiček.

2) použít komparátor a PWM. Tedy PWM pomocí nějakého kondenzátoru+odporu 
vyhladím a napětí budu porovnávat s napětím na potenciometru. Tady je 
mrzutá ta postupná aproximace, která nemůže být moc rychlá. Také 
přesnost na 6 bitů bude na zvážení.

3) použiji ten DA převodník a komparátor a de-facto si postavím AD 
převodník s postupnou aproximací. Tohle mi přijde asi nejjednodušší, ale 
dostanu jen 5 bit (protože mám 5bit DA).

Při návrhu zohledňuji i počet vnějších součástek.

Nezná někdo ještě nějakou jinou zábavnou metodu?

Díky za nápady a připomínky

Jindra


Další informace o konferenci Hw-list