Bonjour a Tous,
je m arrache ce qui me reste de cheveux sur le code ci apres .
Pour info, il s agit d une quadruple commande, Ouvrir et fermé pour 2 portails différents, Via Bluetooth ET Via RF avec telecommande 4 boutons.
Via Bluetooth et telephone, ca fonctionne tres correctement, sans soucis donc .
Oui mais voila VIA RF et telecommande, je n ai que 3 boutons sur 4 qui fonctionnent.
le Bouton A ne fonctionne pas quelquesoit l endroit sur lequel je le branche (généralement la 6).
J ai ecarté tout soucis materiel, avec 2 telecommande, 2 arduino, 2 modules RF, les fils etc .... !
Donc, est il possible que l arduino "bloque" ou ai je fait une erreur dans le codage ??? je vois pas !
Merci de vos lumières...
int L298N_IN3=8;
int L298N_IN4=9;
int portailOuvre = 10;
int portailFerme=11;
char data[2];
int state = 0;
void setup()
{
pinMode(2,INPUT); //VT
pinMode(3,INPUT); //D0
pinMode(4,INPUT); //D1
pinMode(5,INPUT); //D2
pinMode(6,INPUT); //D3
pinMode(L298N_IN3,OUTPUT);
pinMode(L298N_IN4,OUTPUT);
pinMode(portailOuvre, OUTPUT);
pinMode(portailFerme, OUTPUT);
data[0]=0;
data[1]=0;
Serial.begin(9600);
Serial.println("Systeme Pret");
}
void loop()
{
if(Serial.available() > 0){
state = Serial.read();
}
if (state == '1') {
digitalWrite(portailOuvre, HIGH);
delay (1500);
digitalWrite(portailOuvre, LOW);
state = 0;
}
else if (state == '2') {
digitalWrite(portailFerme, HIGH);
delay (1500);
digitalWrite(portailFerme, LOW);
state = 0;
}
else if (state == '3') {
digitalWrite(L298N_IN3,HIGH);
digitalWrite(L298N_IN4,LOW);
delay (16000);
digitalWrite(L298N_IN3,LOW);
digitalWrite(L298N_IN4,LOW);
state = 0;
}
else if (state == '4') {
digitalWrite(L298N_IN3,LOW);
digitalWrite(L298N_IN4,HIGH);
delay (16000);
digitalWrite(L298N_IN3,LOW);
digitalWrite(L298N_IN4,LOW);
state = 0;
}
data[0]=(data[0]<<1)+digitalRead(2);
data[0]=data[0]&0x03;
if(data[0]==0x01)
{
data[1]=read_signal();
switch(data[1])
{
case 1:
{
Serial.println("Bouton D : Ouvre le Portail");
digitalWrite(portailOuvre, HIGH);
delay (1500);
digitalWrite(portailOuvre, LOW);
break;
}
case 2:
{
Serial.println("Bouton C : Ferme le Portail");
digitalWrite(portailFerme, HIGH);
delay (1500);
digitalWrite(portailFerme, LOW);
break;
}
case 3:
{
Serial.println("Bouton A : Ouvre le Garage");
digitalWrite(L298N_IN3,HIGH);
digitalWrite(L298N_IN4,LOW);
delay (1000);
digitalWrite(L298N_IN3,LOW);
digitalWrite(L298N_IN4,LOW);
break;
}
case 4:
{
Serial.println("Bouton B : Ferme le Garage");
digitalWrite(L298N_IN3,LOW);
digitalWrite(L298N_IN4,HIGH);
delay (1000);
digitalWrite(L298N_IN3,LOW);
digitalWrite(L298N_IN4,LOW);
break;
}
}
}
delay(100);
}
char read_signal()
{
char i=0;
if(digitalRead(3)==HIGH) i=i+1;
if(digitalRead(4)==HIGH) i=i+2;
if(digitalRead(5)==HIGH) i=i+4;
if(digitalRead(6)==HIGH) i=i+8;
return i;
}