Interrupciones
01.07.2016 15:00TRABAJO PRÁCTICO N°3: Interrupciones externas y temporización con función millis().
Ejercicio 1: Realizar un programa que enciende/apague un LED conectado a la salida 8 cada vez que se presiona un interruptor conectado a la interrupción externa INT0.
Ejercicio 2: Realizar un programa que aumente una variable cada vez que se presiona un pulsador conectado a INT0 y se decremente al pulsar el que está conectado a INT1. Mostrar el valor actualizado por terminal.
Ejercicio 3: Repetir el ejercicio anterior, pero definiendo el contador descendente como interrupción LOW_LEVEL. Y luego como ANY_CHANGE
Ejercicio 4: ,Realizar un programa que aumente un 10% el valor de PWM cada vez que se presiona un pulsador en INT0, y que conmute entre el máximo brillo y apagado al presionar el botón conectado en INT1.
Ejercicio 5: Utilizando una entrada de interrupción externa, realizar un contador de eventos por segundo. Mostrar esta información en la terminal.
Ejercicio 6: Investigar como funciona un encoder óptico/mecánico incremental. Implementar una solución para almacenar dichos cambios en una variable que tiene un rango numérico de 0 300. Mostrar su valor en la terminal cada 500ms usando la función millis().
Las interrupciones se utilizan con la función attachinterrupt (pines según la placa) y su sintáxis correspondiente:
*Sintáxis:*
attachInterrupt(digitalPinToInterrupt(pin), ISR, mode);
*Placa y pines usados*
Uno, Nano, Mini, other 328-based: 2, 3
Mega, Mega2560, MegaADK: 2, 3, 18, 19, 20, 21
La información esta acá: https://www.arduino.cc/en/
Otros links sobre el tema:
https://www.utm.mx/~fsantiag/Micros/2_Organizacion_AVRs.pdf
fuenteabierta.teubi.co/2012/12/manejo-de-interrupciones-con-arduino.html
———
Volver