// On définit le sens: 0 pour le sens des aiguilles (CW: clocwise) d'une montre et 1 pour l'inverse (CCW: counter clockwise) // Suivant le câblage du moteur, on peut devoir changer valeur de CW et CCW #define CW 0 // n° de la broche où se situe CW. #define CCW 1 // n° de la broche où se situe CCW #define MOTEUR_A 0 // n° de la broche où se situe MOTEUR A #define MOTEUR_B 1// n° de la broche où se situe MOTEUR B // On définie les broches Arduino pour chaque fonction const int PWMA = 3; // PWMA est sur la PIN N°3 const int PWMB = 11; // PWMB est sur la PIN N°11 const int DIRA = 12; // DIRA est sur la PIN N°12 const int DIRB = 13; // DIRB est sur la PIN N°13 Vérifier sur votre Shield int i=0; // driveArdumoto commande le 'MOTEUR' dans le sens 'dir' à la vitesse 'spd' void driveArdumoto(int MOTEUR, byte dir, byte spd) { if (MOTEUR == MOTEUR_A) { digitalWrite(DIRA, dir);// met un niveau de dir sur la broche de DIRA. analogWrite(PWMA, spd); // met la valeur de speed sur la broche de PWMA. } else if (MOTEUR == MOTEUR_B) { digitalWrite(DIRB, dir); analogWrite(PWMB, spd); } } // stopArdumoto void stopArdumoto(int MOTEUR) { driveArdumoto(MOTEUR, 0, 0); } void setup() { // All pins should be setup as outputs: pinMode(PWMA, OUTPUT);// déclare la broche « n° de broche » en sortie. pinMode(PWMB, OUTPUT); pinMode(DIRA, OUTPUT); pinMode(DIRB, OUTPUT); // Initialize all pins as low: digitalWrite(PWMA, LOW); // met un niveau bas sur la broche de PWMA. digitalWrite(PWMB, LOW); digitalWrite(DIRA, LOW); digitalWrite(DIRB, LOW); } void loop() { driveArdumoto(MOTEUR_A, CCW, 255); delay(1000); driveArdumoto(MOTEUR_A, CW, 127); delay(1000); stopArdumoto(MOTEUR_A); driveArdumoto(MOTEUR_B, CCW, 255); delay(1000); driveArdumoto(MOTEUR_B, CW, 127); delay(1000); stopArdumoto(MOTEUR_B); driveArdumoto(MOTEUR_A, CW, 255); driveArdumoto(MOTEUR_B, CW, 255); delay(1000); driveArdumoto(MOTEUR_A, CCW, 127); driveArdumoto(MOTEUR_B, CCW, 127); delay(1000); stopArdumoto(MOTEUR_A); stopArdumoto(MOTEUR_B); delay(10000); }