/* Robot quadrupède à 2 servomoteurs Pour plus d'infos: https://electroniqueamateur.blogspot.com/2021/06/robot-quadrupede-2-servomoteurs-arduino.html */ // bibliothèque servo #include <Servo.h> // numéro des broches utilisées (doivent être des sorties PWM) #define pin_servo_avant 9 #define pin_servo_arriere 10 // angle de rotation des servos par rapport à leur position d'équilibre // (vous l'augmentez pour faire de plus grands pas) #define angle_rotation 20 //position d'équilibre des servos, en degrés #define angle_avant 90 #define angle_arriere 90 // création de deux objets servo Servo servo_avant, servo_arriere; // les 4 phases de la marche avant char marche_avant[] = {angle_avant - angle_rotation, angle_arriere + angle_rotation, angle_avant + angle_rotation, angle_arriere + angle_rotation, angle_avant + angle_rotation, angle_arriere - angle_rotation, angle_avant - angle_rotation, angle_arriere - angle_rotation }; // les 4 phases de la marche arrière char marche_arriere[] = {angle_avant - angle_rotation, angle_arriere - angle_rotation, angle_avant + angle_rotation, angle_arriere - angle_rotation, angle_avant + angle_rotation, angle_arriere + angle_rotation, angle_avant - angle_rotation, angle_arriere + angle_rotation }; void setup() { servo_avant.attach(pin_servo_avant); servo_arriere.attach(pin_servo_arriere); } void loop() { // on avance (10 cycles): for (int i = 0; i < 10; i++) { for (int n = 0; n < 4; n++) { servo_avant.write(marche_avant[2 * n]); servo_arriere.write(marche_avant[(2 * n) + 1]); delay(300); } } // on recule (10 cycles): for (int i = 0; i < 10; i++) { for (int n = 0; n < 4; n++) { servo_avant.write(marche_arriere[2 * n]); servo_arriere.write(marche_arriere[(2 * n) + 1]); delay(300); } } }