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 ? ) 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.