Sencillo Ejemplo de manejo de interrupciones en Arduino

Arduino, STM32 (Maple), ESP8266, ESP32, etc
Avatar de Usuario
Naguissa
Administrador del Sitio
Mensajes: 484
Registrado: 04 Jul 2016, 11:17
Agradecido: 102 veces
Agradecimiento recibido: 134 veces

Sencillo Ejemplo de manejo de interrupciones en Arduino

Mensaje sin leer por Naguissa »

Os adjunto aquí un sencillo programa Arduino donde se demuestra como usar interrupciones de pines en el IDE Arduino.

Funciona definiendo un pin como INPUT_PULLUP, de manera que normalmente está en positivo. Uniendo ese pin con tierra (directamente, con un cable o un botón), el pin cambia a negativo. En cada cambio se lanza una interrupción que lee el pin y toma decisiones según el estado anterior y el tiempo transcurrido. En el loop se manejan las acciones para cada variable programada en la interrupción.


Por comodidad he probado el programa en un NodeMCU (ESP8266), pero debería servir para cada casi cualquier microcontrolador, mientras tenga PULLUP. Se podría cambiar la lógica a PULLDOWN y usar VCC para activar el pin.

Puedes cambiar el pin de entrada cambiando la definición BUTTON_PIN; en el programa la he definido como el pin D6 del NodeMCU.

Quiero resaltar que éste no es un buen sistema para usar botones; hay librerías disponibles mucho mejores, pero es un buen ejemplo para aprender a usar interrupciones.
Adjuntos
ESP_INTERUPT_TEST.ino
(2.28 KiB) Descargado 405 veces

Tags:
Avatar de Usuario
Naguissa
Administrador del Sitio
Mensajes: 484
Registrado: 04 Jul 2016, 11:17
Agradecido: 102 veces
Agradecimiento recibido: 134 veces

Re: Sencillo Ejemplo de manejo de interrupciones en Arduino

Mensaje sin leer por Naguissa »

También tenéis disponible este ejemplo en GitHub: https://github.com/Naguissa/ESP_INTERUPT_TEST
  • Similar Topics
    Respuestas
    Vistas
    Último mensaje