Bonjour,
Je n'ai pas d'erreur à la vérification, mais à l'essai pratique ça bloque. Ce que j'ai fait me semble logique, mais surement pas celle d'Arduino.
Je vous met une copie de mon code.
Bon dimanche.
Bernard
const byte BP_B = 2; // BP_B sur D2
const byte ILS_B = 3; // ILS_B sur D3
const byte A3D = 4; // Aig3 directe
const byte A3C = 5; // Aig3 deviee
const byte Hp00_P3 = 6; // P3 à Hp00
const byte Hp0_B = 7; // Signal B lampe rouge
const byte Hp1_B = 8; // Signal B lampe verte
const byte Hp2_B = 9; // Signal B lampe orange
const byte Vr0_VrP = 10; // VrP lampes oranges
const byte Vr1_VrP = 11; // VrP lampes vertes
void setup(){
pinMode (BP_B,INPUT_PULLUP);
pinMode (ILS_B,INPUT_PULLUP);
pinMode (A3D,INPUT_PULLUP);
pinMode (A3C,INPUT_PULLUP);
pinMode (Hp00_P3,INPUT_PULLUP);
pinMode (Hp0_B,OUTPUT);
pinMode (Hp1_B,OUTPUT);
pinMode (Hp2_B,OUTPUT);
pinMode (Vr0_VrP,OUTPUT);
pinMode (Vr1_VrP,OUTPUT);
// Output = HIGH alors lampe allumee
// Output = LOW alors lampe eteinte
digitalWrite (Hp0_B,HIGH); // B rouge allume
delay (3000);
}
void loop(){
while (digitalRead (BP_B)== HIGH){
if ( A3D == HIGH && Hp00_P3 == HIGH){
digitalWrite (Hp0_B,LOW); // Extinction lampe rouge
delay (200);
digitalWrite (Hp1_B,HIGH); // Lampe verte allumee
digitalWrite (Vr0_VrP,HIGH); // VrP lampes oranges allumees
}
}
if ( A3D == HIGH && Hp00_P3 == LOW){
digitalWrite (Hp0_B,LOW);
delay (200);
digitalWrite (Hp1_B,HIGH);
digitalWrite (Vr1_VrP,HIGH); // Vrp lampes vertes allumees
}
if ( A3C == HIGH){
digitalWrite (Hp0_B,LOW); // Extinction lampe rouge
delay (200);
digitalWrite (Hp1_B,HIGH); // Lampe verte allumee
digitalWrite (Hp2_B,HIGH); // Lampe orange allumee
digitalWrite (Vr0_VrP,HIGH); // VrP lampes oranges allumees
}
while (digitalRead(ILS_B) == HIGH){
// ILS_B active
}
digitalWrite (Hp1_B,LOW);
digitalWrite (Hp2_B,LOW);
digitalWrite (Vr0_VrP,LOW);
digitalWrite (Vr1_VrP,LOW);
delay (200);
digitalWrite (Hp0_B,HIGH);
}