Piloter un treuil pour un bateau avec un ESP32
Il s'agit de tester le mouvement d'un treuil pour border puis choquer les voiles d'un bateau radiocommandé. Avant d'implanter le treuil pour naviguer.
Avec la vidéo de démonstration, où on voit les 3 fils qui sortent de l'ESP32 pour alimenter le treuil : https://youtube.com/shorts/Byju1J4KVjE?si=6XNSDmRLjH-AZsWE
- un pour le +5V
- un pour la masse
- un pour le signal
Le code,
#include <ESP32Servo.h>
#define PIN_w5513 12 // Broche de sortie utilisée pour le servo
#define LED_PIN 2 // Définir le numéro de broche pour la LED
Servo w5513; // on crée un objet servo appelé w5513
void setup() {
Serial.begin(115200);
pinMode(LED_PIN, OUTPUT); // Configurer la broche de la LED en mode sortie
w5513.setPeriodHertz(50); // Fréquence PWM pour le w5513
w5513.attach(PIN_w5513); // on attache la PIN du servo
}
void loop() {
// signal de départ = clignote 3 fois
digitalWrite(LED_PIN, HIGH); // Allumer la LED
delay(200);
digitalWrite(LED_PIN, LOW); // eteindre la LED
delay(200);
digitalWrite(LED_PIN, HIGH); // Allumer la LED
delay(200);
digitalWrite(LED_PIN, LOW); // eteindre la LED
delay(200);
digitalWrite(LED_PIN, HIGH); // Allumer la LED
delay(200);
digitalWrite(LED_PIN, LOW); // eteindre la LED
//remise à zéro
w5513.write(0); // on déplace le servo à la position 0º
delay(1000); // pause de 1 seconde
// tour de 0 à 180º
for (int i = 0; i <= 180; i++){
w5513.write(i); // angle demandé au servo
Serial.print("Angle: ");
Serial.println(i);
Serial.print("Angle lu: ");
Serial.println(w5513.read()); // angle lu du servo
digitalWrite(LED_PIN, HIGH); // Allumer la LED
delay(40);
digitalWrite(LED_PIN, LOW); // éteindre la LED
delay(40);
}
// tour de 180 a 0º
for (int i = 179; i > 0; i--){
w5513.write(i);
Serial.print("Angle: ");
Serial.println(i);
Serial.print("Angle lu: ");
Serial.println(w5513.read());
digitalWrite(LED_PIN, HIGH); // Allumer la LED
delay(40);
digitalWrite(LED_PIN, LOW); // eteindre la LED
delay(40);
}
}
Et un extrait de ce qui s'affiche sur la console,
22:01:41.428 -> Angle: 0 22:01:41.428 -> Angle lu: -1 22:01:41.504 -> Angle: 1 22:01:41.504 -> Angle lu: 0 22:01:41.659 -> Angle: 2 22:01:41.659 -> Angle lu: 0 22:01:41.699 -> Angle: 3 22:01:41.699 -> Angle lu: 2 22:01:41.782 -> Angle: 4 22:01:41.782 -> Angle lu: 2 22:01:41.861 -> Angle: 5 22:01:41.861 -> Angle lu: 4 22:01:41.930 -> Angle: 6 22:01:41.930 -> Angle lu: 4 22:01:42.011 -> Angle: 7 22:01:42.011 -> Angle lu: 6 22:01:42.096 -> Angle: 8 22:01:42.096 -> Angle lu: 7 22:01:42.176 -> Angle: 9 22:01:42.176 -> Angle lu: 7 22:01:42.244 -> Angle: 10 22:01:42.244 -> Angle lu: 9 22:01:42.315 -> Angle: 11 22:01:42.315 -> Angle lu: 9