Interrupciones en Arduíno

Una interrupción es básicamente la alteración del flujo natural de un programa, si pensamos en este como secuencia.

Interrupciones por Timer

Los timers tienen algo que se conoce como prescaler, son divisores de la frecuencia de clock, cuando dividimos la frecuencia ganamos en tiempo pero perdemos en precisión, la frecuencia del oscilador se puede dividor por 1,8,64,256…

Interrupción por hardware

Estas interrupciones son muy utilizadas en rebotica, se utilizan para detectar eventos externos. Por ejemplo si queremos que cada vez que alguien apriete un botón suceda alguna acción tenemos dos opciones. La primera alternativa y sin duda la peor de todas es quedarnos esperando que alguien apriete el botón, claramente no podríamos hacer otra cosa que esperar y estaríamos gastando toda la capacidad del microprocesador en no hacer nada, simplemente esperando que alguien apriete el botón. La segunda opción es usar las interrupciones de arduino (o del micro controlador que estemos usando).

Usar las interrupciones nos da como ventaja que podemos hacer cualquier otra cosa mientras esperamos que el evento suceda, simplemente cuando el evento se produce se acciona una bandera de interrupción que detiene y altera el flujo natural del programa para atender esa interrupción, básicamente es un orden de prioridades.

Para usar las interrupciones necesitamos saber:

  • Pin de arduino que reciba la condición de disparo.
  • Una condición de disparo
  • Una función que se ejecute cuando la interrupción sea disparada.

La condición de disparo se refiere a si la interrupción se va a ejecutar cuando detecte el paso del pin de interrupción de un estado alto a un estado bajo FALLING o cuando detecte el paso de un estado bajo a uno alto RISING.

Cuando eso ocurra arduino debe saber que hacer, para eso tenemos que definir una función que sera la encargada de atender la interrupción.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Translate »