/*
* 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_BOT 7
#define CONFIGURAR_BOT pinMode(PIN_BOT, INPUT)
#define BOT_PRESIONADO (digitalRead(PIN_BOT)==HIGH)
void setup()
{
//Salidas
CONFIGURAR_LED;
CONFIGURAR_BOT;
//Entrada
CONFIGURAR_LUZ;
}
bool luz=0;
void loop()
{
SupervisaBoton();
ActualizaLuz();
LedTest();
}
void SupervisaBoton(void)
{
static bool bot_presionado_ant=0;
if(BOT_PRESIONADO && !bot_presionado_ant)
luz=!luz;
bot_presionado_ant=BOT_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;
}