Академический Документы
Профессиональный Документы
Культура Документы
ARDUINOS
Pérez Daniel
e-mail: daperez1@espe.edu.ec
Ubilluz Jonathan
e-mail: jiubilluz@espe.edu.ec
2. INTERRUPCIONES
1
2.2 TIPOS DE INTERRUPCIONES FALLING, Dispara en el flanco de bajada
(Cuando pasa de HIGH a LOW).
Interrupciones HW o externas: Estas son Y una solo para el DUE: HIGH se dispara
asíncronas a la ejecución del procesador, es cuando el pin esta HIGH. [2]
decir, se pueden producir en cualquier
momento independientemente de lo que Pines en arduino para el uso de
esté haciendo el CPU en ese momento. Las interrupciones.
causas que las producen son externas al
procesador y a menudo suelen estar ligadas
Sólo hay unos pocos pines en los que se pueden
con los distintos dispositivos de entrada o
realizar interrupciones y dependen del modelo de tu
salida.
placa. [2]
Interrupciones SW: Las interrupciones por
software son aquellas generadas por un
programa en ejecución. Para generarlas, Tabla 1. Pin para cada tipo de interrupcion
existen distintas instrucciones en el código Fuente: educachip, 2015, [2]
máquina que permiten al programador
producir una interrupción (Arduino no
soporta las interrupciones por software).
Un evento programado o Timer. Son las
interrupciones asociadas a los timers y
gracias a ellas funciona millis().
Excepciones: Son aquellas que se producen
de forma síncrona a la ejecución del
procesador típicamente causada por una
condición de error en un programa.
Normalmente son causadas al realizarse
operaciones no permitidas tales como la Para que puedas asociar un módulo a una
división entre 0, el desbordamiento, el interrupción correctamente, éste debe cumplir unas
acceso a una posición de memoria no características concretas:
permitida, etc. [1].
No puede tener parámetros de entrada, es decir, no
puede ser una función del tipo void f_interrupt (int
3. INTERRUPCIONES EN ARDUINO entrada).
Un pin de Arduino que recibirá la señal de Estas interrupciones hardware, se diseñaron por la
disparo necesidad de reaccionar a suficiente velocidad en
Una condición de disparo tiempos inimaginablemente cortos a los que la
electrónica trabaja habitualmente y a los que ni
Una función que se ejecutará, cuando se
dispara la interrupción (Llamada call back siquiera el software era capaz de reaccionar. [3]
function).
Tabla 2. Tabla de pines que soportan interrupción
En cuanto a la condición de disparo puede ser: HW en Arduino
2
Fuente: Arduino cc, 2015, [3] pin, luego la función ISR y finalmente el
modo.
detachInterrupt() Deshabilita la interrupción.
El parámetro que se le pasa es el número de
la interrupción.
digitalPinToInterrupt(pin) traduce el pin al
número de interrupción específica.
usingInterrupt() Deshabilita la interrupción
externa pasada como parámetro en la
llamada a SPI.beginTransaction() y se
habilita de nuevo en endTransaction() para
prevenir conflictos en las transacciones del
bus SPI [3]
4. INTERRUPCIONES EN MICRO
Aspectos importantes a tener en cuenta con el uso de
CONTROLADORES.
interrupciones:
En el caso de microcontroladores, una interrupción
es un evento que hace que el dispositivo deje de
Dentro de la función llamada desde la ejecutar la tarea que está realizando para atender
interrupción, la función delay() no funciona y dicho acontecimiento y luego regrese y continúe la
el valor devuelto por millis() no aumenta. La tarea que estaba realizando antes de que se
razón es que estas funciones hacen uso de presentara la interrupción. El pic 16F628 (y el
interrupciones que no se disparan mientras 16F628A) tiene 10 fuentes de interrupción, si las
está disparada una interrupción externa. interrupciones están habilitadas cada vez que una de
Los datos recibidos por el puerto serie se estos acontecimientos se presente el pic dejará de
pueden perder mientras se está en la función ejecutar el programa para ir a atender la interrupción
llamada por la interrupción. y al término de la misma continuará ejecutando el
Se deben declarar como “volatile” cualquier programa donde lo había dejado. Las fuentes de
variable que sea modificada dentro de la interrupción son:
función llamada por una interrupción [3]
Interrupción externa RB0/INT
Interrupción por cambio lógico en el puerto B
Funciones de Interrupciones. (pines RB7 a RB4)
Interrupción por desborde del timer 0
interrupts() Habilita las interrupciones (antes (TMR0)
han debido ser inhabilitadas con Interrupción por desborde del timer 1
noInterrupts) (TMR1)
noInterrupts() Deshabilita las interrupciones. Interrupción por comparación exitosa exitosa
Las interrupciones pueden ser habilitadas de en TMR2
nuevo con interrupts(). Interrupción del comparador
attachInterrupt() Me permite configurar una Interrupción del transmisor del USART
interrupción externa, pero no otro tipo de Interrupción del receptor del USART
interrupciones. El primer parámetro es el Interrupción del módulo CCP
número de interrupción que va asociado a un Interrupción del EEPROM
3
//Se escribe el valor actual del LED.
5. APLICACIONES. digitalWrite(LED, estado_actual);
}
Arduino:
Se desea encender un LED mediante el uso de 6. APLICACIÓN DE INTERRUPCIÓN
interrupciones de tal manera que cada vez que se
presione un pulsador, éste se encienda. [3].
Interrupción externa:
void setup()
{
//Se declara el pin digital correspondiente al LED co
mo salida.
pinMode(LED, OUTPUT);
void loop()
{
4
7. CONCUCIONES Y
RECOMEDACIONES.
Referencias
[1] Mocha, F. (26 de 11 de 2016). wordpress.
Obtenido de
https://aprendiendoarduino.wordpress.co
m/2016/11/13/interrupciones/
[2] Navarrete, R. (10 de 03 de 2015). Arduino cc.
Obtenido de
https://forum.arduino.cc/index.php?topic=
53141.0
[3] Romero, E. (14 de 10 de 2015). educachip.
Obtenido de
http://www.educachip.com/como-y-por-
que-usar-las-interrupciones-en-arduino/