Salve, sto cercando di creare una piccola cosa con arduino. Sostanzialmente ho fatto un'applicazione con app inventor che dovrebbe inviare 2 valori, i quali indicano le velocità di due servi motori a rotazione continua. Il problema è che non riesco a ricevere i due valori da arduino.
Il programma è il seguente:
#include <Servo.h>
Servo leftServo;
Servo rightServo;
byte msg[2];
bool msgReceived;
void setup() {
leftServo.attach(6);
rightServo.attach(5);
Serial.begin(9600);
}
void loop() {
msgReceived = false;
while (!msgReceived) {
if (Serial.available() > 0) {
Serial.readBytes(msg, 2);
msgReceived = true;
//
Serial.println("DEBUG1");
}
}
leftServo.writeMicroseconds(1500 + msg[0] * 2);
rightServo.writeMicroseconds(1500 - msg[1] * 2);
//
Serial.println("DEBUG2");
Serial.println(msg[0]);
Serial.println(msg[1]);
Serial.println();
}
Mentre la parte fondamentale dello schema di app inventor è:
Dal monitor seriale, non ricevo mai la scritta DEBUG, quindi è come se i dati non gli inviassi. Tanto per precisare, il cellulare invia i dati, anche perché so che arriva a quella parte di codice perché i set.text funzionano.
Dove sbaglio?