Interrupciones

01.07.2016 15:00

TRABAJO 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/Reference/AttachInterrupt

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

Buscar en el sitio

© 2011 Todos los derechos reservados.