J'essaie de contrôler un robot voiture/roue essentiellement avec ce code. Le problème ici est que si j'envoie des signaux plus rapidement que 0.9 secondes, l'Arduino ne peut pas le traiter. Y a-t-il un moyen de le réparer?Le circuit Arduino ne répond pas
(J'ai vérifié le moniteur série d'un autre ordinateur et il montre que l'Arduino reçoit toujours le signal mais il ne fournit pas la sortie à mon contrôleur de moteur).
Toute aide serait appréciée. Merci.
#include <Servo.h>
//Using mega 2560 and sabertooth 2x12 dip switch 010111
int onevar;
int twovar;
Servo myservo;
Servo myservo2;
void setup() {
// put your setup code here, to run once:s
pinMode(servo1, OUTPUT);
pinMode(servo2, OUTPUT);
Serial.begin(9600);
myservo.attach(servo1);
myservo2.attach(servo2);
Serial.setTimeout(10);
//works for 10ms 0.9s need to figure out
}
void loop() {
// put your main code here, to run repeatedly:
// Receive up to 7 bytes
if (Serial.available()>0) {
// Wait for characters
onevar = Serial.parseInt();
twovar = Serial.parseInt();
//number = atoi(buffer);
Serial.println(onevar);
Serial.println(twovar);
/* if (Serial.available() > 0) {
number = Serial.read()-'0'; // read the incoming byte:
Serial.print(number);
*/
myservo.write(onevar);
// 93 is stop backward and forward is scalable range 25 to 155
myservo2.write(twovar);
//93 is no steering 30 to 160
}
}
Vous ne montrez pas ce que vous appelez 'loop' qui n'est pas une boucle de toute façon. À côté: déplacer les variables globales pour qu'elles soient des variables locales dans la fonction à laquelle elles se rapportent, dans la mesure du possible. –
@WeatherVane - 'setup()' et 'loop()' sont appelés depuis un 'main()' caché sur Arduino. 'main()' continue d'appeler la boucle encore et encore. –
Je ne sais pas comment le délai d'attente fonctionne ici (par caractère ou par message), mais 9600 bauds ne peuvent recevoir qu'un seul caractère par milliseconde. Votre délai d'expiration est de 10 millisecondes, ce qui est un peu juste pour recevoir deux champs numériques sous forme de texte. –