Bonjour, j'ai créer un projet de fermeture automatique de porte de garage électrique.
1 arduino uno, 1 relais, 1 potentiomètre, 1 SPDT, 1 Bouton poussoir, 1 buzzer et 2 LED.
Le relais sur ordre va shunté deux bornes du système du relève porte de garage.
Le potentiomètre permet un temps de pose de 15 mn à 60 mn.
Le SPDT sert a détecter que la porte de garage est fermé.
Le bouton sert a actionner la porte de garage (EX : j'ai laissé mes clés et ma commande dans la voiture la porte ce ferme, le bouton permettra d'ouvrir la porte).
Le buzzer avertira la fermeture automatique de la porte de garage.
Les LED rouge lorsqu'il est dans la routine et vert quand il en est sortie (possibilité d'appuyer sur le bouton).
Le code :
int analogPin = 0;
int pot = 0;
const int SPDT = 10; //3
int Porte = 6;
const int bouton = 11;
int RED = 7;
int GREEN = 8;
int Buzz = 9;
int Pose = 224820;
int TEMPS;
int etat;
float sinVal;
int toneVal;
void setup()
{
pinMode(SPDT, INPUT_PULLUP);
pinMode(Porte, OUTPUT);
pinMode(bouton, INPUT_PULLUP);
pinMode(RED, OUTPUT);
pinMode(GREEN, OUTPUT);
pinMode(Buzz, OUTPUT);
}
void loop()
{
digitalWrite(RED, LOW);
digitalWrite(GREEN, HIGH);
if(digitalRead(bouton) == HIGH) {
while(digitalRead(SPDT) == HIGH){
digitalWrite(RED, HIGH);
digitalWrite(GREEN, LOW);
delay (Pose);
while(digitalRead(SPDT) == HIGH){
delay (Pose);
while(digitalRead(SPDT) == HIGH){
delay (Pose);
while(digitalRead(SPDT) == HIGH){
delay (Pose);
while(digitalRead(SPDT) == HIGH){
pot = analogRead(analogPin);
TEMPS=(pot*440);
delay (TEMPS);
while(digitalRead(SPDT) == HIGH){
delay (TEMPS);
while(digitalRead(SPDT) == HIGH){
delay (TEMPS);
while(digitalRead(SPDT) == HIGH){
delay (TEMPS);
while(digitalRead(SPDT) == HIGH){
delay (TEMPS);
while(digitalRead(SPDT) == HIGH){
delay (TEMPS);
while(digitalRead(SPDT) == HIGH){
digitalWrite(RED, HIGH);
digitalWrite(GREEN, HIGH);
for(int x=0; x<180; x++){
sinVal = (sin(x*(3.1412/180)));
toneVal = 2000+(int(sinVal*1000));
tone(Buzz, toneVal,500);
delay(2);
}
for(int x=0; x<180; x++){
sinVal = (sin(x*(3.1412/180)));
toneVal = 2000+(int(sinVal*1000));
tone(Buzz, toneVal,500);
delay(2);
}
delay (20000);
tone(Buzz,500,500);
digitalWrite(Porte, HIGH);
delay (1000);
digitalWrite(Porte, LOW);
}
}
}
}
}
}
}
}
}
}
}
}
else {
digitalWrite(RED, HIGH);
digitalWrite(GREEN, HIGH);
digitalWrite(Porte, HIGH);
delay (1000);
digitalWrite(Porte, LOW);}
}
Mon but était de sortir le plus souvent de la routine (3 minutes et 30 secondes) pour pouvoir appuyer sur le bouton et cas de problème, mais la led vert c'est bien allumer la rouge c'est éteinte et lorsque j'appuie sur le bouton rien ne se passe.
Pourquoi ?
Avez vous une solution?
Merci d'avance