Advertisement
hidromotic

PulsadorDomotica

Apr 14th, 2020
287
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.33 KB | None | 0 0
  1. /*
  2.  * Pulsador de Domótica
  3.  */
  4. #define PIN_LED             13
  5. #define CONFIGURAR_LED      pinMode(PIN_LED, OUTPUT)
  6. #define ENCENDER_LED        digitalWrite(PIN_LED, HIGH)
  7. #define APAGAR_LED          digitalWrite(PIN_LED, LOW)
  8.  
  9. #define PIN_LUZ             11
  10. #define CONFIGURAR_LUZ      pinMode(PIN_LUZ, OUTPUT)
  11. #define ENCENDER_LUZ        digitalWrite(PIN_LUZ, HIGH)
  12. #define APAGAR_LUZ          digitalWrite(PIN_LUZ, LOW)
  13.  
  14. #define PIN_BOT             7
  15. #define CONFIGURAR_BOT      pinMode(PIN_BOT, INPUT)
  16. #define BOT_PRESIONADO      (digitalRead(PIN_BOT)==HIGH)
  17.  
  18. void setup()
  19.   {
  20.    //Salidas
  21.   CONFIGURAR_LED;
  22.   CONFIGURAR_BOT;
  23.   //Entrada
  24.   CONFIGURAR_LUZ;
  25.   }
  26.  
  27. bool luz=0;
  28.  
  29. void loop()
  30.   {
  31.   SupervisaBoton();
  32.   ActualizaLuz();
  33.   LedTest();
  34.   }
  35.  
  36. void SupervisaBoton(void)
  37.   {
  38.   static bool bot_presionado_ant=0;
  39.  
  40.   if(BOT_PRESIONADO && !bot_presionado_ant)
  41.     luz=!luz;
  42.    
  43.   bot_presionado_ant=BOT_PRESIONADO;
  44.   }
  45.  
  46. void ActualizaLuz(void)
  47.   {
  48.   if(luz) ENCENDER_LUZ;
  49.   else    APAGAR_LUZ;
  50.   }
  51.  
  52. void LedTest(void)
  53.   {
  54.   static bool encender_led=0;
  55.   static unsigned long millis_ant=0;
  56.  
  57.   if(millis()-millis_ant < 1000) return;
  58.   millis_ant=millis();
  59.  
  60.   //Invertir el estado del led
  61.   encender_led = !encender_led;
  62.  
  63.   if(encender_led)  ENCENDER_LED;
  64.   else              APAGAR_LED;
  65.   }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement