joystick

Mam takový joystick arduinolearning.com/wp-content/u … ystick.jpg chci ovládat krokový motor připojím k atmega328 vyčtu ADC hodnotu potřebuji tu hodnotu upravit na 0%50%100%
problém je že ten joystick není moc kvalitní a ty hodnoty jsou 2 536 1011
chci ten rozsah matematicky upravit aby od středu bylo na obě strany stejně
ale nevím jak nato můžete mě nasměrovat

Já nevím, ale pokud jde jenom o rozdělení 0-50-100, tak by to snad takový problém být neměl, ne ?

Hodnota_AD = načíst AD převodník; Procenta = 50; if (Hodnota_AD < 400 ) Procenta = 0; if (Hodnota_AD > 700 ) Procenta = 100;

Případně si hodnoty 400 a 700 upravíš a máš hotovo…

Důležité je, jak je hodnota z AD převodníku stabilní, jestli máš dobře udělané napájení MCU tak, aby odpovídalo požadavkům pro použití AD převodníku podle datasheetu. To, že v krajních hodnotách z AD převodníku nedostaneš 0 a 1023 bych rozhodně neviděl jako problém.

já sem myslel něco jako u RC radia nastavíš krajní polohy a střed taková kalibrace

A čo takto:

Percenta = ((Hodnota_AD - 536) * 100) / (1011 - 536)

Nekvalitní ? Cos čekal, přesně 0-511-1023 ? :slight_smile:) To je reálnej svět. A to ještě budeš rád, že nebude chrastit. Pokud to chceš proporcionálně a jen zakompilovat natvrdo do kódu tak jen vymezíš dvě oblasti - ve Tvém případě 2-536 a 537-1011 pro 0-50% a 50-100% , pro první oblast odečteš offset 2 a pro tu druhou 536. Zbytek je jen zjištění poměru v té dané oblasti.