Advertisement
hidromotic

Untitled

May 19th, 2020
1,072
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.53 KB | None | 0 0
  1. //Lucas Trento
  2. //CONMUTADOR
  3. //Invertir el estado de la salida salida, por cada flanco ascendente en la entrada.
  4.  
  5. #define PIN_LED 13
  6. #define CONFIGURAR_LED      pinMode(PIN_LED, OUTPUT)
  7. #define ENCENDER_LED        digitalWrite(PIN_LED, HIGH)
  8. #define APAGAR_LED          digitalWrite(PIN_LED, LOW)
  9.  
  10. //Salida
  11. #define PIN_SALIDA 12
  12. #define CONFIGURAR_SALIDA   pinMode(PIN_SALIDA, OUTPUT)
  13. #define ACTIVAR_SALIDA      digitalWrite(PIN_SALIDA, HIGH)
  14. #define DESACTIVAR_SALIDA   digitalWrite(PIN_SALIDA, LOW)
  15.  
  16. //Entrada
  17. #define PIN_ENTRADA 7
  18. #define CONFIGURAR_ENTRADA  pinMode(PIN_ENTRADA, INPUT)
  19. #define ENTRADA_ACTIVADA    digitalRead(PIN_ENTRADA)
  20.  
  21. #define MS_ESTADO           500
  22.  
  23. void setup()
  24.   {
  25.    CONFIGURAR_LED;
  26.    CONFIGURAR_SALIDA;
  27.    CONFIGURAR_ENTRADA;
  28.   }
  29.  
  30. void loop()
  31.   {
  32.    Led();
  33.    EstadoSalida();
  34.    delay(1);
  35.   }
  36.  
  37. void EstadoSalida(void)
  38.   {
  39.     static unsigned long millis_ant=0;
  40.     static bool estado_salida = 0;
  41.     static bool entrada_act_ant = 0;
  42.     int ms_espera = 10;
  43.  
  44.     if(millis()-millis_ant < ms_espera) return;
  45.     millis_ant=millis();
  46.    
  47.     if(ENTRADA_ACTIVADA && !entrada_act_ant) estado_salida = !estado_salida;;
  48.  
  49.     if(estado_salida)   ACTIVAR_SALIDA;
  50.     else                DESACTIVAR_SALIDA;  
  51.   }
  52.  
  53.  
  54. void Led(void)
  55.   {
  56.     static bool estado=0;
  57.     static unsigned long millis_ant=0;
  58.  
  59.     if(millis()-millis_ant < MS_ESTADO) return;
  60.     millis_ant=millis();
  61.  
  62.     estado = !estado;
  63.  
  64.     if(estado)       ENCENDER_LED;
  65.     else             APAGAR_LED;
  66.   }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement