/*================= COMMMANDE DE 8 SORTIES ON/OFF PAR 8 INTERS POUSSOIR ======================== Les 8 relais ou sont connectés aux prise n°1,2,3,4,5,6,7,8 La voie du récepteur est connecté à la prise n°0 Un appui furtif sur un bouton fait actionne le relais correspondant qui reste collé. Un deuxième appui furtif sur le même bouton fait décoller le relais correspondant. ================================================================================================*/ int signal = 0; // Signal recepteur commande aériens int val1; // valeur du signal recepteur commande aériens int s1 = 1; int s2 = 2; int s3 = 3; int s4 = 4; int s5 = 5; int s6 = 6; int s7 = 7; int s8 = 8; // Declarion des sorties int e1 = 0; int e2 = 0; int e3 = 0; int e4 = 0; int e5 = 0; int e6 = 0; int e7 = 0; int e8 = 0; // declaration etat des sorties int mini = 1023; // Mettre ici la valeur du signal lorsque l'on appui sur le bouton n°1 int maxi = 1980; // Mettre ici la valeur du signal lorsque l'on appui sur le bouton n°8 void setup() { pinMode(s1,OUTPUT); pinMode(s2,OUTPUT); pinMode(s3,OUTPUT); pinMode(s4,OUTPUT); pinMode(s5,OUTPUT); pinMode(s6,OUTPUT); pinMode(s7,OUTPUT); pinMode(s8,OUTPUT); } //======================== sous programme action_x ============================================= void action1_1() { digitalWrite(s1,HIGH); } void action1_0() {digitalWrite(s1,LOW); } void action2_1() { digitalWrite(s2,HIGH); } void action2_0() {digitalWrite(s2,LOW); } void action3_1() { digitalWrite(s3,HIGH); } void action3_0() {digitalWrite(s3,LOW); } void action4_1() { digitalWrite(s4,HIGH); } void action4_0() {digitalWrite(s4,LOW); } void action5_1() { digitalWrite(s5,HIGH); } void action5_0() {digitalWrite(s5,LOW); } void action6_1() { digitalWrite(s6,HIGH); } void action6_0() {digitalWrite(s6,LOW); } void action7_1() { digitalWrite(s7,HIGH); } void action7_0() {digitalWrite(s7,LOW); } void action8_1() { digitalWrite(s8,HIGH); } void action8_0() {digitalWrite(s8,LOW); } //============================================================================================== void loop() { val1 = 0; val1 = pulseIn(signal, HIGH),30000; //Lire pulse1 et de le stocker en tant que val1 val1 = map(val1,mini,maxi,1090,1910); // val1=constrain(val1, 900, 2000); delay (50); if (val1 > 2000 || val1 < 1000 ) { val1 = 1500; } if (val1 > 1000 && val1 < 1100 && e1 == 0) { action1_1(); e1 = 1; val1 = 0; delay(300);} if (val1 > 1000 && val1 < 1100 && e1 == 1) { action1_0(); e1 = 0; val1 = 0; delay(300);} if (val1 > 1120 && val1 < 1230 && e2 == 0) { action2_1(); e2 = 1; val1 = 0; delay(300);} if (val1 > 1120 && val1 < 1230 && e2 == 1) { action2_0(); e2 = 0; val1 = 0; delay(300);} if (val1 > 1240 && val1 < 1350 && e3 == 0) { action3_1(); e3 = 1; val1 = 0; delay(300);} if (val1 > 1240 && val1 < 1350 && e3 == 1) { action3_0(); e3 = 0; val1 = 0; delay(300);} if (val1 > 1350 && val1 < 1430 && e4 == 0) { action4_1(); e4 = 1; val1 = 0; delay(300);} if (val1 > 1350 && val1 < 1430 && e4 == 1) { action4_0(); e4 = 0; val1 = 0; delay(300);} if (val1 > 1550 && val1 < 1650 && e5 == 0) { action5_1(); e5 = 1; val1 = 0; delay(300);} if (val1 > 1550 && val1 < 1650 && e5 == 1) { action5_0(); e5 = 0; val1 = 0; delay(300);} if (val1 > 1680 && val1 < 1750 && e6 == 0) { action6_1(); e6 = 1; val1 = 0; delay(300);} if (val1 > 1680 && val1 < 1750 && e6 == 1) { action6_0(); e6 = 0; val1 = 0; delay(300);} if (val1 > 1760 && val1 < 1850 && e7 == 0) { action7_1(); e7 = 1; val1 = 0; delay(300);} if (val1 > 1760 && val1 < 1850 && e7 == 1) { action7_0(); e7 = 0; val1 = 0; delay(300);} if (val1 > 1860 && val1 < 2000 && e8 == 0) { action8_1(); e8 = 1; val1 = 0; delay(300);} if (val1 > 1860 && val1 < 2000 && e8 == 1) { action8_0(); e8 = 0; val1 = 0; delay(300);} } //============================ FIN DU PROGRAMME =================================================