Problème programme arduino
Bonjour, j'ai un problème dans un de mes programmes que je n'arrive pas à faire fonctionner correctement à cause d'un petit détail que je n'arrive pas à corriger. Si qqun pouvais m'aider ce serait vraiment cool, merci...
Tout simplement, il y a 2 interrupteurs (IP et BR), et une led,
IP est toujours enfoncé (NL 0), dès qu'il est relaché (NL1), la led doit s'allumer, et rester allumée peut importe si il est enfoncé / relaché par la suite
BR est toujours sur 1, dès qu'il passe sur 0, la led doit s’éteindre (donc revenir au début de la boucle).
C'est une sorte de capteur de présence, si qqun entre dans une pièce et ouvre la porte, l’interrupteur sera relâché donc allumera une led, le seul moyen d'éteindre la led, est que ce soit le propriétaire lui même qui éteigne la led et donc savoir si oui ou non, qqun est entré avant lui.
Le pb dans mon programme, est que soit BR n'est même pas reconnu, et que peut importe l'action, il n'influe pas sur le programme, ou sinon, il y a une boucle infinie, et la Led clignote sans arrêts...
(Pour la moindre question, j'ai skype, ainsi qu'une adresse mail)
Je vous laisse le code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
| const int IP=12;
const int led=8;
const int BR = 11;
int etatIP;
int saveIP = 0;
int etatBR;
void setup()
{
pinMode(IP, INPUT); // IP est une entrée
pinMode(led,OUTPUT); // led est une sortie
pinMode(BR, INPUT); // BR est une entrée
Serial.begin(9600); // initialisation du port de communication entre la carte arduino et le pc
}
void loop()
{
etatIP = digitalRead(IP);
if(etatIP == 0)
{
++saveIP;
Serial.println(saveIP);
delay(5);
}
if(saveIP > 1)
{
digitalWrite(led, HIGH);
}
etatBR = digitalRead(BR); // "etatBR" prend la valeur "digitalRead(BR)
if(etatBR == 1) // Si on appuis sur le bouton
{
saveIP = 0;
delay(500);
digitalWrite(led, LOW); // On éteint la led
}
} |