CCCPaste

PulsadorDomotica

/*
 * 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; 
  }