Tak, jak jsem si myslel, už dekódování enkoderu někdo napsal přede mnou. Takže jsem si drze stáhnul https://code.google.com/p/arduino-rotary-encoder-with-velocity/ .
To to vcelku jednoduchá knihovna + nějaká vychytávka, která zrychluje (mění velikost výstupní hodnoty), pokud se točí dostatečně dlouho jedním směrem.
Tuto úžasnost jsem zapoznámkoval a zbyl asi pětiřádkový základ, kde se hlídá změna na určených pinech.
To celé jsem použil v již zmíněném projektu USB Gamepad zmíněným výš. V příkladu níž obsluhuju dvě osy a jeden rotační enkodér. Aby to moc nešumělo, proběhne na jedno zmáčknutí tlačítka joye (opravdu to jen blikne) 250 čtení os a enkoderu, jen pro představu výkonu. Viz konstanta magic ve zdrojácích.
Určitě to půjde optimalizovat na velikost proměnných, rychlosti a případně šumy, to snad později.
Kdo chce nahlédnout, zkuste http://markovo.wz.cz/Arduino.zip
Takže fakt vcelku brnkačka.
Ještě udělám matrixové snímání, ať těch enkodérů může být kybl.
Ještě vřele doporučuju enkodery aspoň trochu harwarově odšumět (R-C nebo aspoň C - rozuměj Rezistor, Condenzator).
Tož tak. Jdu trénovat let na zádech... 
|
|