ЭЛЕКТРОНИКА Напольный джойстик на Холле: проблема с показаниями

Статус
В этой теме нельзя размещать новые ответы.

lexmirnov

✩✩✩✩✩✩✩
16 Фев 2022
1
0
Рефералки запрещены, см. правила. Исправь или сообщение будет удалено. Срок 1 час
Доброго дня всем!

Собираю напольный джойстик для авиасимулятора, за основу взял решение от Тима Стэнтона с механикой от busel.

Координаты по X и Y задаются снятием показаний с датчика Холла при вращении в диапазоне 30o закрепленного на штоке джойстика кубического магнита

Проблема
Для корректной работы нужен диапазон показаний от 0 до 1024. Его получить не получается.
C++:
#include <Joystick.h>
Joystick_ Joystick;


int JoystickX;
#define X_PIN A0

void setup()
{
pinMode(X_PIN, INPUT_PULLUP);
  Joystick.begin();
  Joystick.setXAxisRange(0, 1024);
Serial.begin(9600);
}

void loop()
{
JoystickX = analogRead(X_PIN);
Serial.print(", Analog: ");
Serial.println(JoystickX); // Аналоговый сигнал с датчика
delay(100);
}
Пробовал:
  1. Модули KY-024 -- при вращении относительно одного магнита дают диапазон около 150 показаний, при размещении между двумя около 200.
  2. Китайские датчики SS496A1 (родное решение) -- подключены к Arduino напрямую, разброс около 1000, но показания "шумят", при одном положении джойстика самопроизвольно изменяются.
Вопросы
  • Может ли проблема быть в магните? Смотрел другие решения -- не похоже, что авторы заморачиваются с подбором магнитов.
  • В чем может быть причина "шума" на SS496A1? Все компоненты закреплены неподвижно, у автора решения такой проблемы нет, никаких дополнительных компонентов (резисторы, конденсаторы) в схеме нет.
  • Есть ли смысл перейти на TL5010 -- судя по тому, что удалось нарыть, он значительно точнее? Сомнения вызывает то, что он тоже на принципе Холла, а значит, проблема может быть не устранена.
 
Статус
В этой теме нельзя размещать новые ответы.