Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Lucas Trento
- //CONMUTADOR
- //Invertir el estado de la salida salida, por cada flanco ascendente en la entrada.
- #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)
- //Salida
- #define PIN_SALIDA 12
- #define CONFIGURAR_SALIDA pinMode(PIN_SALIDA, OUTPUT)
- #define ACTIVAR_SALIDA digitalWrite(PIN_SALIDA, HIGH)
- #define DESACTIVAR_SALIDA digitalWrite(PIN_SALIDA, LOW)
- //Entrada
- #define PIN_ENTRADA 7
- #define CONFIGURAR_ENTRADA pinMode(PIN_ENTRADA, INPUT)
- #define ENTRADA_ACTIVADA digitalRead(PIN_ENTRADA)
- #define MS_ESTADO 500
- void setup()
- {
- CONFIGURAR_LED;
- CONFIGURAR_SALIDA;
- CONFIGURAR_ENTRADA;
- }
- void loop()
- {
- Led();
- EstadoSalida();
- delay(1);
- }
- void EstadoSalida(void)
- {
- static unsigned long millis_ant=0;
- static bool estado_salida = 0;
- static bool entrada_act_ant = 0;
- int ms_espera = 10;
- if(millis()-millis_ant < ms_espera) return;
- millis_ant=millis();
- if(ENTRADA_ACTIVADA && !entrada_act_ant) estado_salida = !estado_salida;;
- if(estado_salida) ACTIVAR_SALIDA;
- else DESACTIVAR_SALIDA;
- }
- void Led(void)
- {
- static bool estado=0;
- static unsigned long millis_ant=0;
- if(millis()-millis_ant < MS_ESTADO) return;
- millis_ant=millis();
- estado = !estado;
- if(estado) ENCENDER_LED;
- else APAGAR_LED;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement