Voila j'ai ce petit bout de code qui fait fonctionner ma base roulante. Tout fonctionne correctement mais dès que j'essaye d'envoyer et recevoir des données en mm tps, cela fonctionne trés mal. Ma base roulante réponds avec bcp de retard.
J'aimerais avoir votre avis sur ce code pour que je puisse envoyer correctement une variable de mon arduino vers mon programme coté pc (processing)
// Moteur A int dir1PinA = 13; int dir2PinA = 12; // Moteur B int dir1PinB = 11; int dir2PinB = 8; // Vitesse Moteur int speedPinA = 10; int speedPinB = 9; int speed = 0; char incomingByte; void setup() { Serial.begin(57600); pinMode(dir1PinA, OUTPUT); pinMode(dir2PinA, OUTPUT); pinMode(speedPinA, OUTPUT); pinMode(dir1PinB, OUTPUT); pinMode(dir2PinB, OUTPUT); pinMode(speedPinB, OUTPUT); speed = 100; } void loop() { while (Serial.available()>0) { incomingByte = Serial.read(); //Serial.println(incomingByte, DEC); analogWrite(speedPinA, speed); analogWrite(speedPinB, speed); switch (incomingByte) { case 'A': digitalWrite(dir1PinA, LOW); digitalWrite(dir2PinA, HIGH); digitalWrite(dir1PinB, HIGH); digitalWrite(dir2PinB, LOW); break; case 'B': digitalWrite(dir1PinA, LOW); digitalWrite(dir2PinA, LOW); digitalWrite(dir1PinB, LOW); digitalWrite(dir2PinB, LOW); break; case 'C': digitalWrite(dir1PinA, HIGH); digitalWrite(dir2PinA, LOW); digitalWrite(dir1PinB, LOW); digitalWrite(dir2PinB, HIGH); break; case 'D': digitalWrite(dir1PinA, LOW); digitalWrite(dir2PinA, HIGH); digitalWrite(dir1PinB, LOW); digitalWrite(dir2PinB, HIGH); break; case 'G': digitalWrite(dir1PinA, HIGH); digitalWrite(dir2PinA, LOW); digitalWrite(dir1PinB, HIGH); digitalWrite(dir2PinB, LOW); break; default: Serial.print("commande : "); Serial.print(incomingByte); Serial.println(" non reconnue."); break; } } }
Cordialement,
bypbop