0% ont trouvé ce document utile (0 vote)
5 vues6 pages

Code de Contrôle Servomoteurs ESP32

Le code contrôle un robot équipé de trois servomoteurs et trois LEDs à l'aide d'un ESP32. Il effectue des mouvements de levée et de rotation des servos, tout en indiquant l'état du robot par l'allumage des LEDs. Les différentes phases incluent des mouvements vers l'avant, des rotations et des déplacements vers la droite, avec des délais intégrés pour maintenir les positions.

Transféré par

kalungamirland
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
5 vues6 pages

Code de Contrôle Servomoteurs ESP32

Le code contrôle un robot équipé de trois servomoteurs et trois LEDs à l'aide d'un ESP32. Il effectue des mouvements de levée et de rotation des servos, tout en indiquant l'état du robot par l'allumage des LEDs. Les différentes phases incluent des mouvements vers l'avant, des rotations et des déplacements vers la droite, avec des délais intégrés pour maintenir les positions.

Transféré par

kalungamirland
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd

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).

Vous aimerez peut-être aussi