#include // Inclusion de la bibliothèque Servo pour contrôler les servomoteurs // Création de 4 objets Servo pour contrôler les différents servomoteurs Servo milieu, gauche, droite, pince; void setup() { Serial.begin(9600); // Initialisation de la communication série pour débogage // Attachement des servos aux broches correspondantes milieu.attach(11); // Servo pour le mouvement de rotation sur la broche 11 gauche.attach(10); // Servo pour le bras gauche sur la broche 10 droite.attach(9); // Servo pour le bras droit sur la broche 9 pince.attach(6); // Servo pour la pince sur la broche 6 // Position de départ pour chaque servo milieu.write(90); // Position neutre du servo de rotation (milieu) gauche.write(90); // Position neutre du servo du bras gauche droite.write(90); // Position neutre du servo du bras droit pince.write(170); // Position fermée de la pince delay(5000); // Attente de 5 secondes avant de commencer les mouvements // Séquence de mouvements pour les bras et la pince // Monte le bras gauche progressivement for (byte i = 90; i < 130; i++) { gauche.write(i); // Ajuste l'angle du bras gauche delay(20); // Petite pause pour un mouvement fluide } // Tourne le bras à gauche progressivement for (byte i = 90; i < 170; i++) { milieu.write(i); // Ajuste l'angle du servo de rotation (milieu) delay(20); // Petite pause pour un mouvement fluide } // Ouvre la pince progressivement for (byte i = 170; i > 70; i--) { pince.write(i); // Ajuste l'angle de la pince pour l'ouvrir delay(20); // Petite pause pour un mouvement fluide } // Baisse le bras gauche progressivement for (byte i = 130; i > 50; i--) { gauche.write(i); // Ajuste l'angle du bras gauche delay(20); // Petite pause pour un mouvement fluide } // Descend le bras droit progressivement for (byte i = 90; i < 160; i++) { droite.write(i); // Ajuste l'angle du bras droit delay(20); // Petite pause pour un mouvement fluide } // Ferme la pince progressivement for (byte i = 70; i < 170; i++) { pince.write(i); // Ajuste l'angle de la pince pour la fermer delay(20); // Petite pause pour un mouvement fluide } // Monte le bras droit progressivement for (byte i = 160; i > 90; i--) { droite.write(i); // Ajuste l'angle du bras droit delay(20); // Petite pause pour un mouvement fluide } // Monte le bras gauche progressivement for (byte i = 50; i < 140; i++) { gauche.write(i); // Ajuste l'angle du bras gauche delay(20); // Petite pause pour un mouvement fluide } // Tourne le bras vers la gauche progressivement for (byte i = 170; i > 10; i--) { milieu.write(i); // Ajuste l'angle du servo de rotation (milieu) delay(20); // Petite pause pour un mouvement fluide } // Baisse le bras gauche progressivement for (byte i = 140; i > 50; i--) { gauche.write(i); // Ajuste l'angle du bras gauche delay(20); // Petite pause pour un mouvement fluide } // Descend le bras droit progressivement for (byte i = 90; i < 160; i++) { droite.write(i); // Ajuste l'angle du bras droit delay(20); // Petite pause pour un mouvement fluide } // Ouvre la pince progressivement for (byte i = 170; i > 70; i--) { pince.write(i); // Ajuste l'angle de la pince pour l'ouvrir delay(20); // Petite pause pour un mouvement fluide } // Monte le bras droit progressivement for (byte i = 160; i > 90; i--) { droite.write(i); // Ajuste l'angle du bras droit delay(20); // Petite pause pour un mouvement fluide } // Monte le bras gauche progressivement for (byte i = 50; i < 140; i++) { gauche.write(i); // Ajuste l'angle du bras gauche delay(20); // Petite pause pour un mouvement fluide } // Tourne le bras à droite pour revenir à la position initiale for (byte i = 10; i < 90; i++) { milieu.write(i); // Ajuste l'angle du servo de rotation (milieu) pour revenir au centre delay(20); // Petite pause pour un mouvement fluide } // Ferme la pince progressivement for (byte i = 70; i < 170; i++) { pince.write(i); // Ajuste l'angle de la pince pour la fermer delay(20); // Petite pause pour un mouvement fluide } // Baisse le bras gauche pour revenir à la position initiale for (byte i = 140; i > 90; i--) { gauche.write(i); // Ajuste l'angle du bras gauche delay(20); // Petite pause pour un mouvement fluide } } void loop() { // La fonction loop est vide car toutes les actions se passent dans setup() }