#include <Servo.h>
Servo myServo; // Création d'un objet Servo
const int buttonPin = 6; // Pin du bouton poussoir
int buttonState = 0; // Variable pour lire l'état du bouton
int lastButtonState = 0; // Variable pour enregistrer le dernier état du bouton
int servoPosition = 0; // Position actuelle du servomoteur, initialement à 0°
void setup() {
myServo.attach(9); // Attachement du servomoteur à la broche D9
pinMode(buttonPin, INPUT_PULLUP); // Définir le bouton comme entrée avec résistance pull-up interne
myServo.write(servoPosition); // Position initiale du servomoteur
}
void loop() {
buttonState = digitalRead(buttonPin); // Lire l'état du bouton
// Vérifier si le bouton a été pressé (passage de HIGH à LOW)
if (buttonState != lastButtonState && buttonState == LOW) {
// Changer la position du servomoteur selon la position actuelle
if (servoPosition == 0) {
moveServo(0, 90, 5000); // Mouvement aller de 0° à 90° en 5 secondes
servoPosition = 90; // Mettre à jour la position actuelle
} else {
moveServo(90, 0, 5000); // Mouvement retour de 90° à 0° en 5 secondes
servoPosition = 0; // Mettre à jour la position actuelle
}
delay(50); // Débouncing
}
lastButtonState = buttonState; // Enregistrer l'état du bouton
}
void moveServo(int startPos, int endPos, int duration) {
int steps = abs(endPos - startPos); // Nombre de pas (1 degré par pas)
int stepDelay = duration / steps; // Délai entre chaque pas
if (startPos < endPos) {
for (int pos = startPos; pos <= endPos; pos++) {
myServo.write(pos); // Déplacer le servomoteur à la position actuelle
delay(stepDelay); // Attendre avant de passer à la position suivante
}
} else {
for (int pos = startPos; pos >= endPos; pos--) {
myServo.write(pos); // Déplacer le servomoteur à la position actuelle
delay(stepDelay); // Attendre avant de passer à la position suivante
}
}
}
uno:A5.2
uno:A4.2
uno:AREF
uno:GND.1
uno:13
uno:12
uno:11
uno:10
uno:9
uno:8
uno:7
uno:6
uno:5
uno:4
uno:3
uno:2
uno:1
uno:0
uno:IOREF
uno:RESET
uno:3.3V
uno:5V
uno:GND.2
uno:GND.3
uno:VIN
uno:A0
uno:A1
uno:A2
uno:A3
uno:A4
uno:A5
servo1:GND
servo1:V+
servo1:PWM
btn1:1.l
btn1:2.l
btn1:1.r
btn1:2.r