Всем привет!
Давно у меня чесались руки сделать модельку симулятора Fly Motion, так как в натуральную величину ставить в квартире его просто негде .
Даже заказал двигатели http://ru.aliexpress.com/item/T-Best-Price-promotion-12V-DC-100RPM-High-Torque-Gear-Box-Electric-Motor-25mm/32328884447.html,
датчики холла 360гр. http://ru.aliexpress.com/item/Full-Circle-No-Dead-Angle-12-Bit-Holzer-Angle-Sensor-0-360-Degree-0-5V-Output/32422949989.html,
и мост http://ru.aliexpress.com/item/M112-New-L298P-Shield-R3-DC-Motor-Driver-Module-2A-H-Bridge-2-way-For-Arduino/32214100722.html.
Но как то все руки не доходили. Но вот попался мне на глаза проект http://www.xsimulator.net/community/threads/problems-with-motor-responsiveness-w-game.8041/#post-98201,
который с в квартире уже помещается . Правда одна ось 360 градусов, но все равно очень интересно. В общем смастерил я быстренько его модельку из куска ламината.
На одной оси датчик холла 360гр., а на другой потенциометр 10 кОм.
Прошивку залил последнюю "Ale_2DOF_Ard_PD_30_11_15" с небольшими изменениями:
const int potMinR=208;
const int potMaxR=815;
const int potMinL=0;
const int potMaxL=1016;
#define potL A0
#define potR A1
#define motorL_PWM 9
#define motorL_DIRA 8
#define motorL_DIRB 12
#define motorR_PWM 10
#define motorR_DIRA 11
#define motorR_DIRB 13
Пины другие прописал, так как распаял сначала под прошивку "xsim_arduino_uno_v3_by_Ale_SimToolsCompatible", а перепаивать не хотелось.
Константы 0-1016 подобрал чтобы после масштабирования в прошивке получился диапазон 0-255 и был плавный переход из 255 в 0.
Но прошивка не расчитана полный оборот 360 градусов и при переходе через ноль происходят незапланированные движения.
Можно ли как то адаптировать прошивку для корректной обработки полного оборота 360 градусов?