CODE ROBOT
#include <ESP32Servo.h>
const int servoPin1 = 18; // GPIO de l'ESP32 pour le servomoteur
const int servoPin2 = 19; // a droite
const int servoPin3 = 5; // a gauche
const int ledverte = 16;
const int ledrouge = 4;
const int ledjaune = 15;
Servo monServo1; // Créer un objet Servo
Servo monServo2;
Servo monServo3;
void setup() {
[Link](servoPin1); // Attacher le servomoteur au pin
[Link](servoPin2);
[Link](servoPin3);
pinMode(ledverte, OUTPUT);
pinMode(ledrouge, OUTPUT);
pinMode(ledjaune, OUTPUT);
void loop() {
//-------------------------FACE-------------------------------------
for (int angle = 0; angle <= 90; angle += 1) {
[Link](angle);
[Link](angle);
delay(25);
digitalWrite(ledjaune, LOW);
digitalWrite(ledverte, HIGH);
digitalWrite(ledrouge, HIGH);
delay(4000);
digitalWrite(ledverte, LOW);
digitalWrite(ledrouge, HIGH);
digitalWrite(ledjaune, HIGH);
delay(2000);
for (int angle = 90; angle >= 0; angle -= 1) {
[Link](angle);
[Link](angle);
delay(25);
//digitalWrite(ledverte, LOW);
digitalWrite(ledrouge, HIGH);
digitalWrite(ledjaune, HIGH);
delay(1000);
//-------------------------------------------------------------------
//=====================ROTATION========================================
for (int angle = 0; angle <= 90; angle += 1) {
[Link](angle);
delay(20);
//---------------------DROIT------------------------
for (int angle = 0; angle <= 90; angle += 1) {
[Link](angle);
[Link](angle);
delay(25);
digitalWrite(ledjaune, LOW);
digitalWrite(ledverte, HIGH);
digitalWrite(ledrouge, HIGH);
delay(4000);
digitalWrite(ledverte, LOW);
digitalWrite(ledrouge, HIGH);
digitalWrite(ledjaune, HIGH);
delay(2000);
for (int angle = 90; angle >= 0; angle -= 1) {
[Link](angle);
[Link](angle);
delay(25);
digitalWrite(ledverte, LOW);
digitalWrite(ledrouge, LOW);
digitalWrite(ledjaune, HIGH);
delay(2000);
//----------------------------------------------------
for (int angle = 90; angle >= 0; angle -= 1) {
[Link](angle);
delay(20);
//====================================================================
}
⚙️2. Détail du code et explication
📌 Déclaration et initialisation
#include <ESP32Servo.h>
→ Inclusion de la bibliothèque pour piloter les servos avec l’ESP32.
const int servoPin1 = 18;
const int servoPin2 = 19;
const int servoPin3 = 5;
const int ledverte = 16;
const int ledrouge = 4;
const int ledjaune = 15;
Servo monServo1, monServo2, monServo3;
→ Association des pins aux composants physiques : 3 servos + 3 LEDs.
🔁 setup() — initialisation
[Link](servoPin1);
[Link](servoPin2);
[Link](servoPin3);
→ Chaque servomoteur est attaché à son GPIO (broche de l’ESP32).
pinMode(..., OUTPUT);
→ On configure les broches des LEDs comme sorties.
🔁 loop() — le comportement du robot
🎯 Phase 1 : FACE
for (angle = 0 → 90) {
[Link](angle);
[Link](angle);
...
→ Les servo2 et servo3 tournent progressivement de 0 à 90°. Cela simule une levée de bras, une
ouverture, ou un déplacement vers l’avant.
digitalWrite(ledjaune, LOW);
digitalWrite(ledverte, HIGH);
digitalWrite(ledrouge, HIGH);
→ Allume LED verte et rouge, éteint la jaune → indique probablement un état actif.
Puis :
delay(4000); // attente 4 secondes
→ Le robot reste dans cette position.
Ensuite :
for (angle = 90 → 0) {
[Link](angle);
[Link](angle);
→ Retour à la position initiale.
🔁 Phase 2 : Rotation (Servo 1)
for (angle = 0 → 90) {
[Link](angle);
→ Le servo 1 effectue une rotation de 90°, peut-être une tête, un capteur ou la base du robot.
🚶 Phase 3 : DROITE
Encore une fois, servo2 et servo3 vont de 0 à 90° → déplacement ou bras vers la droite.
Delais, LED vert + rouge → état actif à nouveau.
Puis retour à 0°.
🔁 Phase 4 : Retour rotation
for (angle = 90 → 0) {
[Link](angle);
→ Le robot revient à sa position de départ (rotation annulée).