Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*Escribir una función que sea llamada desde el bucle principal y se ocupe de encender la luz de un pasillo durante
- un cierto tiempo cada vez que
- se presione un botón.
- Cada vez que el botón sea presionado, se deberá reiniciar el contador de tiempo.
- Incorporar el led de testeo que indica que el programa está corriendo.*/
- #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)
- #define MS_ENCENDIDA 2000
- void setup()
- {
- CONFIGURAR_LED;
- CONFIGURAR_BOT;
- CONFIGURAR_LUZ;
- }
- void loop()
- {
- LuzPasillo();
- LedTest();
- }
- void LuzPasillo(void)
- {
- static unsigned long millis_ini =0;
- static bool bot_presionado_ant=0;
- if(BOT_PRESIONADO && !bot_presionado_ant)
- {
- ENCENDER_LUZ;
- millis_ini=millis();
- }
- bot_presionado_ant=BOT_PRESIONADO;
- if(millis() - millis_ini < MS_ENCENDIDA) return ;
- 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;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement