Bonjour
Voici le code initial
//************************************************************************************//
// Association des entrées de la platine, aux sorties utilisées sur notre Arduino Uno //
//************************************************************************************//
const int bouton1 = 5; // Broche du premier bouton poussoir (montée)
const int bouton2 = 6; // Broche du deuxième bouton poussoir (descente)
const int led1 = 2; // Broche de la première LED (allumée si MONTÉE demandée)
const int led2 = 3; // Broche de la deuxième LED (allumée si DESCENTE demandée)
#define bornePWM 10 // On associe la borne "PWM" de la platine à la pin D10 de l'Arduino (PWM possible sur cette broche)
#define borneDIR 9 // On associe la borne "DIR" de la platine à la pin D9 de l'Arduino
int etatBouton1 = 0; // Variable pour stocker l'état du premier bouton
int etatBouton2 = 0; // Variable pour stocker l'état du deuxième bouton
//*************************//
// Constantes du programme //
//*************************//
#define vitesseMinimale 60 // Rapport cylique minimal du signal PWM, pour faire tourner le moteur au minimum de sa vitesse (en pratique, on évitera de trop approcher la valeur 0)
#define vitesseMaximale 255 // Rapport cylique maximal du signal PWM, pour faire tourner le moteur au maximum de sa vitesse
//************************//
// Variables du programme //
//************************//
int vitesse; // Spécifie la vitesse de rotation du moteur, entre son minimum (0) et son maximum (255) <= signal PWM
void setup() {
pinMode(bouton1, INPUT); // Définir le premier bouton comme entrée
pinMode(bouton2, INPUT); // Définir le deuxième bouton comme entrée
pinMode(led1, OUTPUT); // Définir la première LED comme sortie
pinMode(led2, OUTPUT); // Définir la deuxième LED comme sortie
pinMode(bornePWM, OUTPUT); //Borne associé à la commande de vitesse en PWM (sortie)
pinMode(borneDIR, OUTPUT); //Borne associé au sens de rotation du moteur (sortie)
}
void loop() {
vitesse = vitesseMinimale; //Vitesse paramétrée au minimum (on peut changer la valeur mini dans la déclaration des constantes du programme)
etatBouton1 = digitalRead(bouton1); // Lire l'état du premier bouton
etatBouton2 = digitalRead(bouton2); // Lire l'état du deuxième bouton
if (etatBouton1 == HIGH && etatBouton2 == LOW) { //Bouton montée appuyé ET bouton descente relâché
// ***************** Pilotage des LEDs (pas nécessaire) ******************** //
digitalWrite(led1, HIGH); // Allumer la première LED
digitalWrite(led2, LOW); // Éteindre la deuxième LED
// ***************** MONTÉE ******************** //
digitalWrite(borneDIR, HIGH); //Etat haut sur l'entrée DIR de la platine = montée du monte escalier
analogWrite(bornePWM, vitesse); //Commande en vitesse par PWM
// ********************************************* //
} else if (etatBouton2 == HIGH && etatBouton1 == LOW) { //Bouton descente appuyé ET bouton montée relâché
// ***************** Pilotage des LEDs (pas nécessaire) ******************** //
digitalWrite(led2, HIGH); // Allumer la deuxième LED
digitalWrite(led1, LOW); // Éteindre la première LED
// ***************** DESCENTE ******************* //
digitalWrite(borneDIR, LOW); //Etat bas sur l'entrée DIR de la platine = descente du monte escalier
analogWrite(bornePWM, vitesse); //Commande en vitesse par PWM
// ********************************************* //
} else {
// ***************** Pilotage des LEDs (pas nécessaire) ******************** //
digitalWrite(led1, LOW); // Éteindre la première LED
digitalWrite(led2, LOW); // Éteindre la deuxième LED
// ***************** ARRÊT du moteur ******************** //
analogWrite(bornePWM, 0); //Arrêt du moteur PWM=0
}
}
bras_Montee_Descente_v2(2).ino (3,8 Ko)
Je souhaite ajouter les fins de course qui sont embarqués sur le fauteuil
un fc :upper limit ralentissement du fauteuil : sollicité en bas du rail par la butée méca
un fc : final limit arrêt en haut ou en bas
un fc lower limit ralentissement du fauteuil : sollicité en haut du rail par la butée méca
Ces fins de course atteignent les butées mécaniques haute et basse qui sont installées sur le rail du monte escalier
Je souhaite de l'aide ayant du mal avec les if , les while
merci par avance

