Salut jpbbricole
Je reviens vers toi pour te demander une modification si possible:
Il faudrait mettre un deuxième bouton pour que quand j'appuie dessus le moteur tourne pendant 1 seconde puis s'arrête (tout en gardant le premier bouton).
J'ai essayer mais je n'y arrive pas pourrait tu m'aider. Voici mon programme avec le bouton brancher sur la broche 4 de l'arduino :
`// Définition des broches
const int boutonPin1 = 2; // Broche du bouton 1
const int boutonPin2 = 4; // Broche du bouton 2
const int moteurPin1 = 9; // Broche pour Input 1 du L293D
const int moteurPin2 = 10; // Broche pour Input 2 du L293D
void setup() {
// Configuration des broches
pinMode(boutonPin1, INPUT_PULLUP); // Bouton en mode PULLUP
pinMode(boutonPin2, INPUT_PULLUP);
pinMode(moteurPin1, OUTPUT);
pinMode(moteurPin2, OUTPUT);
// Initialisation du moteur à l'arrêt
digitalWrite(moteurPin1, LOW);
digitalWrite(moteurPin2, LOW);
}
void loop() {
// Lecture de l'état du bouton
int etatBouton1 = digitalRead(boutonPin1);
int etatBouton2 = digitalRead(boutonPin2);
if (etatBouton1 == LOW) {
// Le bouton est pressé : faire tourner le moteur dans un sens
digitalWrite(moteurPin1, HIGH);
digitalWrite(moteurPin2, LOW);
} else {
// Le bouton est relâché : faire tourner le moteur dans l'autre sens pendant 1 seconde
digitalWrite(moteurPin1, LOW);
digitalWrite(moteurPin2, HIGH);
delay(1000); // Attendre 1 seconde
// Arrêter le moteur après la rotation en arrière
digitalWrite(moteurPin1, LOW);
digitalWrite(moteurPin2, LOW);
while(digitalRead(boutonPin1) == HIGH) // Attendre nouvelle pression du bouton
{}
if (etatBouton2 == LOW) {
// Le bouton est pressé : faire tourner le moteur dans un sens
digitalWrite(moteurPin1, HIGH);
digitalWrite(moteurPin2, LOW);
delay(1000); // Attendre 1 seconde
} else {
// Arrêter le moteur après la rotation en arrière
digitalWrite(moteurPin1, LOW);
digitalWrite(moteurPin2, LOW);
while(digitalRead(boutonPin2) == HIGH) // Attendre nouvelle pression du bouton
{}
}
}
}`
Bastien