/* * Radiocomando a 4 canali 26/05/2016 * con 4 attuatori a rel่ elettromeccanico * * Nota: se l'impulso ่ troppo breve, NON viene rilevato */ #define SOGLIA 500 // Tempo in millisec: se > Accende, se < spegne long Iniz=0; void setup() { // Pin di comando dei rel่ pinMode(4, OUTPUT); pinMode(5, OUTPUT); pinMode(6, OUTPUT); pinMode(7, OUTPUT); digitalWrite(4,HIGH); digitalWrite(5,HIGH); digitalWrite(6,HIGH); digitalWrite(7,HIGH); // Pin di input dal ricevitore pinMode(8, INPUT); pinMode(9, INPUT); pinMode(10, INPUT); pinMode(11, INPUT); pinMode(13, INPUT); // Pin di Validazione del segnale } void loop() { if (digitalRead(8)==1) { if (ImpLungo()==true) digitalWrite(7, LOW); else digitalWrite(7, HIGH); } if (digitalRead(9)==1) { if (ImpLungo()==true) digitalWrite(6, LOW); else digitalWrite(6, HIGH); } if (digitalRead(10)==1) { if (ImpLungo()==true) digitalWrite(5, LOW); else digitalWrite(5, HIGH); } if (digitalRead(11)==1) { if (ImpLungo()==true) digitalWrite(4, LOW); else digitalWrite(4, HIGH); } } // ========== Funzioni ============================= boolean ImpLungo(){ Iniz = millis(); while(digitalRead(13)==1) { } if ((millis() - Iniz) > SOGLIA) return true; else return false; }