Vous êtes sur la page 1sur 2

Los microcontroladores Atmel incorporan un mecanismo que en muchas ocasiones es

desconocido por todos nosotros. Las interrupciones con Arduino nos permitirán reaccionar a
eventos externos a la placa de una forma rápida. Cuando se detecta una señal, una interrupción,
interrumpe el proceso que se está ejecutando. Esto nos va a permitir dos cosas. Por un lado,
ejecutar rápidamente un trozo de código, y por otro lado parar la ejecución del código que se
estaba ejecutando.

Por ejemplo, imagínate que quieres cocinar una pizza en el horno. Lo típico es que calientes el
horno a una determinada temperatura, metas la pizza y programes el reloj durante 25 minutos.
Mientras, te vas a ver la televisión. Cuando el reloj termina la cuenta atrás, suena un timbre e
interrumpes de ver la televisión para atender al horno. Sacas la pizza del horno, te la llevas al salón
y sigues viendo la televisión. Esto sería un ejemplo de la vida real de cómo funcionan las
interrupciones.

Las interrupciones no son simplemente para cambiar y hacer algo diferente. Por ejemplo, estamos
montando en bicicleta llegamos a casa y guardamos la bici en el garaje o un botón es pulsado por
el usuario y permite parar el DFRobot. En estos dos casos no interrumpimos una acción, pasamos a
hacer algo diferente. Terminamos de hacer una cosa y hacemos otra. En el caso del botón, lo
máximo que podemos hacer es recordar el estado de botón pulsado. Debemos utilizar las
interrupciones para lo que son, interrumpir lo que se está ejecutando y realizar otra tarea, para
luego volver al mismo sitio donde lo habíamos dejado.

Dentro de la gama de interrupciones con Arduino están las interrupciones programadas y las
interrupciones externas. La filosofía es la misma, poder ejecutar un código cuando sucede un
evento concreto. En el caso de las interrupciones programadas, el evento se disparará cada cierto
intervalo de tiempo que debemos de configurar. Este tipo de interrupciones no es el objeto de
este artículo. Si quieres saber más puedes ver la referencia de la librería TimerOne que se encarga
de configurar y gestionar este tipo de interrupciones.

El otro tipo de interrupciones, las externas, nos permite reaccionar a eventos externos. Un evento
puede ser que se pulsa un botón, o que un sensor capta cierta información.

Por qué utilizar interrupciones con Arduino

Utilizar interrupciones nos permitirá olvidarnos de controlar ciertos pines. Esto muy importante ya
que, dentro de una aplicación o programa, no vamos a hacer una única cosa. Por ejemplo,
queremos que un LED se encienda o se apague cuando pulsamos un botón. Esto es realativamente
sencillo, pero cuando además queremos que otro LED parpadee, la cosa se complica.

La probabilidad de capturar el evento cuando se pulsa el botón disminuye con el aumento de


tiempo de parpadeo. En estos casos, y en muchos otros, nos interesa liberar el procesador de
Arduino para que solo cuando se pulse el botón, haga una acción determinada. Así no tendremos
que estar constantemente comprobando el pin X si ha pulsado el botón.
Precisamente este es el sentido de las interrupciones, poder hacer otras cosas mientras no suceda
el evento, pero cuando ese evento externo esté presente, que ejecute rápidamente el código
asociado.

Internamente, Arduino (mejor dicho, el microcontrolador AtMega) tiene ciertas interrupciones


configuradas que lanza según la situación. Para la transmisión de datos a través del puerto serie,
para resetear la placa antes de cargar un programa, comunicación I2C, etc…

En este caso, nosotros mismos crearemos nuestras propias interrupciones asociadas a ciertos
pines según el tipo de placa.

Vous aimerez peut-être aussi