Задача:
Имеется две ардуино (нано и леонардо(тк может имитировать HID устройства)). леонардо подключена по microUSB, а нано от неё по земле и +5В. С нано передаются значения на леонардо по TX → RX , а с леонардрдо на ПК по USB (тип данных мне неважен тк всё будет преобразовываться в str (например передаётся число 10011101011, а дальше преобразовывается в str и если STR[0] == “1” {кнопка 1 нажата}, и тд)).
Если кому интересен мой НЕработающий код то вот он:
НАНО
int pin1 = 2;
void setup() {
Serial.begin(9600);
pinMode(pin1, INPUT);
}
void loop() {
int parse = 0;
if (digitalRead(pin1) == true) {
parse = 1;
}
Serial.print(parse);
}
LEONARDO
void setup() {
Serial.begin(9600);
Serial.setTimeout(2);
void loop() {
if (Serial.available()) {
int val = Serial.parseInt();
if (val == 1) {
digitalWrite(13, HIGH);
}
else {
digitalWrite(13, LOW);
}
}
}
Вместо зажигания лампочки должна подключатся библиотека Keyboard и имитировать нажатие клавиш (или какая-нибудь др библиотека, имитирующая геймпад/джойстик). Если есть какой-нибудь модуль или библиотека могу купить (установить). если уже есть подобное обсуждение, то скиньте ссылк.
PS: делаю кабину от cirrus vision jet.
нано непрерывно подаёт число (когда всё отпущено то 0) на леонардо.
сейчас должно работать так:
1)нажимаю на кнопку
2)загорается светодиод
3)отпускаю кнопку
4)светодиод гаснет
Но так не происходит, хотя должно
я сейчас поставил таймаут 100 и он все равно ничего не вывел + я и до этого вводил значения в сом порт и он писал всё нормально. Думаю, что проблема не в этом
Хотя очень странно то, что val ничему не равняется, учитывая то, что при истечении таймаута он должен писать 0
@in3d
А зачем вообще посылать число как строку, чтобы потом преобразовывать ее в число назад?
Не кажется, что вы сами себе жизнь портите?
Что мешает послать в Сериал число как байт и принять его как байт, оно и проще и работать будет в десятки раз быстрее
Я кажется не указал проблему:
Когда НАНО подаёт число 1 на tx, то леонардо должна принимать его по rx, затем включать встроенный светодиод, но этого не происходит, почему, не знаю, но прошу помочь.