Библиотека джойстика не читает потенциометр
Я использую библиотеку джойстиков для создания системы HOTAS для авиасимуляторов. Когда я загружаю тестовую программу, я могу зарегистрировать все смоделированные входы контроллера в Windows. Я также могу получить значение от моего ползункового потенциометра и прочитать его на последовательном мониторе. Но это не изменит значение входной функции, которой я ее передаю. Я предполагаю, что это неправильный тип целого числа, но я не очень разбираюсь в типах int. Joystick.setThrottle имеет параметр int32_t. Windows считывает значение дроссельной заслонки на уровне 49 % при подключении.
Что я пробовал:
изменение диапазона (по умолчанию от 0 до 1023, я хочу от 0 до 255)
изменение типа throttle_ на int, unsigned int и int_32_t
изменение initAutoSendState
использование номера контакта вместо макро-дросселя передача throttle_ непосредственно в Joystick.setThrottle без функции updateThrottle
У меня есть некоторый опыт программирования в старшей школе, поэтому я просто пробовал разные подходы, но я новичок в Arduino.
#include "Joystick.h"
//определяем входные контакты
#define throttle A0
//включаем скрытое, тип, количество кнопок, количество шляп, ось X, ось Y, ось Z, ось Rx, ось Ry, ось Rz, руль направления, газ, акселератор, тормоз, рулевое управление
Joystick_ Joystick(JOYSTICK_DEFAULT_REPORT_ID,JOYSTICK_TYPE_JOYSTICK, 0, 0, false, false, false, false, false, false, false, true, false, false, false);
const bool initAutoSendState = true;
int32_t throttle_ = 0;
void updateThrottle (int32_t value)
{
Joystick.setThrottle(value);
}
void setup() {
// поместите сюда свой код установки для однократного запуска:
Serial.begin(9600);
pinMode(throttle, INPUT_PULLUP);
Joystick.setThrottleRange(0, 255);
}
void loop() {
// поместите сюда свой основной код для многократного запуска:
throttle_ = analogRead(throttle);
throttle_ = map(throttle_, 0, 1023, 0, 255);
updateThrottle(throttle_);
Serial.print(throttle_);
Serial.print("\n");
}
@Bodhi Teraguchi, 👍-1
1 ответ
Лучший ответ:
Просмотр примеров показал, что мне нужно было добавить Joystick.begin();
в настройку
- Нажать клавишу Windows, используя «keyboard.press();»
- Экспонируйте два устройства HID Joystick с одной платой RP2040 (Waveshare Pi Pico Zero)
- Библиотека джойстиков Arduino не распознается играми (Steam)
- Windows 10 не распознает Arduino Leonardo
- Не удается ввести обратную косую черту (\) с помощью библиотеки клавиатуры
- Почему Xbox360 не может определить Arduino Leonardo как клавиатуру?
- Клавиатура Arduino стартует строчными буквами (но не должна)
- Как использовать SPI на Arduino?