//Pin de contrôle moteur/direction int in1 = 10; //moteur a int in2 = 11; // moteur a int in3 = 12; // moteur b int in4 = 13; // moteur b /* L= Low= 0 / H = High = 1 in1 in2 Le moteur a... L H Tourne à droite H L Tourne à gauche H H Stop L L Arrêt in3 in4 Le moteur b... L H Tourne à droite H L Tourne à gauche H H Stop L L Arrêt */ // Pin de lecture de potentiometre int vres1 = A1; int vres2 = A2; // Les « Enable » qui permettent de contrôler la vitesse int ena = 9; int enb = 6; // Variables pour les valeurs des potentiomètres int valp1 = 0; int valp2 = 0; void setup() { pinMode(ena, OUTPUT); pinMode(enb, OUTPUT); pinMode(in1, OUTPUT); pinMode(in2, OUTPUT); pinMode(in3, OUTPUT); pinMode(in4, OUTPUT); pinMode(vres1, INPUT); pinMode(vres2, INPUT); } void loop() { // Lecture des potentiomètres valp1 = analogRead(vres1); valp2 = analogRead(vres2); // Les 2 moteurs avancent avec la valeur de P1 pendant 3 sec. moteur(valp1, LOW, HIGH, valp1, LOW, HIGH); delay(3000); // Les moteurs sont stoppés moteur(valp1, LOW, LOW, valp1, LOW, LOW); // Attente de 2 sec avant la nouvelle direction delay(2000); // Les 2 moteurs reculent avec la valeur de P2 pendant 3 sec. moteur(valp1, HIGH, LOW, valp1, HIGH, LOW); delay(3000); // Les moteurs sont stoppés moteur(valp1, LOW, LOW, valp1, LOW, LOW); // Attente de 2 sec avant la nouvelle direction delay(2000); } // Fonction de mise en marche des moteurs void moteur(int valma, int i1,int i2,int valmb,int i3,int i4){ //Avant de mettre en fonction les moteurs on indique ce que l’on veut faire digitalWrite(in1, i1); digitalWrite(in2, i2); digitalWrite(in3, i3); digitalWrite(in4, i4); //Mise en marche des moteurs à la vitesse déterminée par les potentiomètres analogWrite(ena, valma); analogWrite(enb, valmb); }