/* * Pulsador de Domótica */ #define PIN_LED 13 #define CONFIGURAR_LED pinMode(PIN_LED, OUTPUT) #define ENCENDER_LED digitalWrite(PIN_LED, HIGH) #define APAGAR_LED digitalWrite(PIN_LED, LOW) #define PIN_LUZ 11 #define CONFIGURAR_LUZ pinMode(PIN_LUZ, OUTPUT) #define ENCENDER_LUZ digitalWrite(PIN_LUZ, HIGH) #define APAGAR_LUZ digitalWrite(PIN_LUZ, LOW) #define PIN_BOT1 7 #define CONFIGURAR_BOT1 pinMode(PIN_BOT1, INPUT_PULLUP) #define BOT1_PRESIONADO (digitalRead(PIN_BOT1)==LOW) #define PIN_BOT2 5 #define CONFIGURAR_BOT2 pinMode(PIN_BOT2, INPUT_PULLUP) #define BOT2_PRESIONADO (digitalRead(PIN_BOT2)==LOW) #define PIN_BOT3 3 #define CONFIGURAR_BOT3 pinMode(PIN_BOT3, INPUT_PULLUP) #define BOT3_PRESIONADO (digitalRead(PIN_BOT3)==LOW) void setup() { //Salidas CONFIGURAR_LED; CONFIGURAR_BOT1; CONFIGURAR_BOT2; CONFIGURAR_BOT3; //Entrada CONFIGURAR_LUZ; } bool luz=0; void loop() { SupervisaBotones(); ActualizaLuz(); LedTest(); } void SupervisaBotones(void) { static bool bot1_presionado_ant=0; static bool bot2_presionado_ant=0; static bool bot3_presionado_ant=0; if(BOT1_PRESIONADO && !bot1_presionado_ant) luz=!luz; if(BOT2_PRESIONADO && !bot2_presionado_ant) luz=!luz; if(BOT3_PRESIONADO && !bot3_presionado_ant) luz=!luz; bot1_presionado_ant=BOT1_PRESIONADO; bot2_presionado_ant=BOT2_PRESIONADO; bot3_presionado_ant=BOT3_PRESIONADO; } void ActualizaLuz(void) { if(luz) ENCENDER_LUZ; else APAGAR_LUZ; } void LedTest(void) { static bool encender_led=0; static unsigned long millis_ant=0; if(millis()-millis_ant < 1000) return; millis_ant=millis(); //Invertir el estado del led encender_led = !encender_led; if(encender_led) ENCENDER_LED; else APAGAR_LED; }