Bonjour ,
Je suis en terminale STID et j'ai un projet qui est sur toute l'année .
Je suis chargé de de programmer une porte motorisé avec un gond électrique .
Or j'ai un problème pour active le moteur j'utilise un capteur infrarouge je dois passé mon pied lorsque je dois l'ouvrir et le moteur arrête de tourné lorsque la porte tape un bouton fin de course .
A partir de la rien de bien compliqué .
MAIS le problème c'est que je n'arrive pas a dirt a mon moteur qu'il doit tourné dans l'autre sens lorsque que je repasse mon pied en dessous du capteur.
Donc pourriez vous m'aider je vous envoies le code que j'ai fait :
PS : pour me simplifier la tache j'ai remplacer le moteur par 2 LED une doit s'allumer lorsque le moteur doit tourner dans le AM et une autre doit s'allumer quand le moteur tourne dans le IM
ET le E = a l'Eclairage car je dois m'occuper aussi de la partie éclairage .
int AM = 13; // SENS AIGUILLE MONTRE
int IM = 12; // SENS INVERSE MONTRE
int E = 11 ; // ECLAIRAGE
int AR1 = 9 ; // ARRRET 1
int IR = 10; // CAPTEUR IR
int VIR = HIGH ; // variable capteur IR
int va = 0;
boolean ra = true ;
void setup()
{
pinMode(IM,OUTPUT);
pinMode(E, OUTPUT);
pinMode(AM, OUTPUT);
pinMode(IR, INPUT);
pinMode(AR1, INPUT);
pinMode(AR2,INPUT);
}
void loop()
{
VIR = digitalRead(IR);
if (VIR == LOW && va == 0){
va = 1;
}
else if(VIR == LOW && va == 1){
va = 0;
}
if(va == 1 && VIR == LOW){
ouvrireP();
}
if(va == 0 && VIR == LOW){
fermerP();
}
}
void fermerP(){
digitalWrite(AM,LOW);
digitalWrite(IM,HIGH);
digitalWrite(E,HIGH);
}
void ouvrireP(){
digitalWrite(AM,HIGH);
digitalWrite(IM,LOW);
digitalWrite(E,HIGH);
}
void arreterFermeture(){
digitalWrite(AM,LOW);
digitalWrite(IM,LOW);
digitalWrite(E,LOW);
}