byte flag=0; int ledState = 0; int interval = 1000; int previousMillis = 0; int rele = 10; int rele_gnd = 11; int led = 14; int pulsador = 15; int gnd = 16; int mode = 17; int clock_pin = 8; int clock_gnd = 9; byte val =0x00; void setup() { Serial.begin(19200); pinMode(rele, OUTPUT); pinMode(rele_gnd, OUTPUT); pinMode(pulsador, INPUT); pinMode(led, OUTPUT); pinMode(mode, INPUT); pinMode(gnd, OUTPUT); pinMode(clock_pin, OUTPUT); pinMode(clock_gnd, OUTPUT); digitalWrite(rele, LOW); digitalWrite(rele_gnd, LOW); digitalWrite(pulsador, HIGH); digitalWrite(led, HIGH); digitalWrite(mode, HIGH); digitalWrite(gnd, LOW); digitalWrite(clock_gnd, LOW); digitalWrite(clock_pin, HIGH); delay(100); digitalWrite(clock_pin, LOW); } void loop() { if (!digitalRead(pulsador)) { Serial.print(0, BYTE); // activado } else if (digitalRead(pulsador)) { Serial.print(1, BYTE); // desactivado } if (!digitalRead(mode)) { Serial.print(2, BYTE); // modo automatico if (millis() - previousMillis > interval) { previousMillis = millis(); if (ledState == LOW) ledState = HIGH; else ledState = LOW; digitalWrite(led, ledState); } } else if (digitalRead(mode)) { Serial.print(3, BYTE); // modo manual } delay(100); if(Serial.available() > 0) { val = Serial.read(); if (val==0x10) digitalWrite(rele,HIGH); else if (val==0x20) digitalWrite(rele, LOW); else if (val==0x30) { digitalWrite(clock_pin, HIGH); delay(100); digitalWrite(clock_pin, LOW); } } }