/*================= COMMMANDE DE 8 SORTIES ON/OFF PAR 8 INTERS POUSSOIR ======================== Ce sketch pilote un Arduino Nano Les 8 relais sont connectés aux prises n°1,2,3,4,5,6,7,8 La voie du récepteur est connectée à la prise n°0 Un appui furtif sur un bouton actionne le relais correspondant qui reste collé. Un deuxième appui furtif sur le même bouton décolle le relais correspondant. ================================================================================================*/ int signal = 10; // Signal récepteur commande aériens int val1; // valeur du signal récepteur commande aériens int varX; // Variable à zéro à la mise sous tension pour le test point milieu ce qui met toutes les sorties a 1 int s1 = 2; int s2 = 3; int s3 = 4; int s4 = 5; int s5 = 6; int s6 = 7; int s7 = 8; int s8 = 9; // Déclarion 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; // déclaration état des sorties int mini = 1000; // Mettre ici la valeur mini du signal int maxi = 2000; // Mettre ici la valeur maxi du signal 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, 1000, 2000); val1 = constrain(val1, 1000, 2000); delay (50); if (val1 > 2000 || val1 < 1000 ) { val1 = 1486; // mettre ici la valeur du neutre de votre clavier huit boutons } if (val1 > 1486 && val1 < 1513 && varX == 0) { action1_1(); action2_1(); action3_1(); action4_1(); action5_1(); action6_1(); action7_1(); action8_1(); e1 = 1; e2 = 1; e3 = 1; e4 = 1; e5 = 1; e6 = 1; e7 = 1; e8 = 1; varX = 1; val1 = 0; delay(300); } if (val1 > 1000 && val1 < 1200 && e1 == 0) { action1_1(); e1 = 1; val1 = 0; delay(300); } if (val1 > 1000 && val1 < 1200 && e1 == 1) { action1_0(); e1 = 0; val1 = 0; delay(300); } if (val1 > 1200 && val1 < 1270 && e2 == 0) { action2_1(); e2 = 1; val1 = 0; delay(300); } if (val1 > 1200 && val1 < 1270 && e2 == 1) { action2_0(); e2 = 0; val1 = 0; delay(300); } if (val1 > 1270 && val1 < 1325 && e3 == 0) { action3_1(); e3 = 1; val1 = 0; delay(300); } if (val1 > 1270 && val1 < 1325 && e3 == 1) { action3_0(); e3 = 0; val1 = 0; delay(300); } if (val1 > 1325 && val1 < 1400 && e4 == 0) { action4_1(); e4 = 1; val1 = 0; delay(300); } if (val1 > 1325 && val1 < 1400 && e4 == 1) { action4_0(); e4 = 0; val1 = 0; delay(300); } if (val1 > 1500 && val1 < 1585 && e5 == 0) { action5_1(); e5 = 1; val1 = 0; delay(300); } if (val1 > 1500 && val1 < 1585 && e5 == 1) { action5_0(); e5 = 0; val1 = 0; delay(300); } if (val1 > 1585 && val1 < 1640 && e6 == 0) { action6_1(); e6 = 1; val1 = 0; delay(300); } if (val1 > 1585 && val1 < 1640 && e6 == 1) { action6_0(); e6 = 0; val1 = 0; delay(300); } if (val1 > 1640 && val1 < 1700 && e7 == 0) { action7_1(); e7 = 1; val1 = 0; delay(300); } if (val1 > 1640 && val1 < 1700 && e7 == 1) { action7_0(); e7 = 0; val1 = 0; delay(300); } if (val1 > 1700 && val1 < 2000 && e8 == 0) { action8_1(); e8 = 1; val1 = 0; delay(300); } if (val1 > 1700 && val1 < 2000 && e8 == 1) { action8_0(); e8 = 0; val1 = 0; delay(300); } } //============================ FIN DU PROGRAMME ================================================= |