You are on page 1of 3

INTERRUPCIONES EN EL MICRO CONTROLADOR Y MDULOS

ARDUINOS
Amancha Guangasi Sonia Elizabeth
seamancha@espe.edu.ec
Ramrez Chango Jssica Mireya
jmramirez6@espe.edu.ec

Ingeniera Electromecnica, Sexto Nivel, Universidad de las Fuerzas Armadas ESPE

- Extensin Latacunga, Mrquez de Maenza S/N Latacunga, Ecuador.


Fecha de presentacin: 09/02/2017

RESUMEN:Se realiza un estudio sobre las 2.2 INTERRUPCIONES DEL


interrupciones en el microcontrolador y los mdulos MICROCONTROLADOR
arduinos, cada uno de ellos tiene su propio
funcionamiento, a continuacin se describirn las 2Dependiendo del modelo de microcontrolador se
interrupciones en cada uno de ellos y la importancia de
las mismas. tienen distintas interrupciones, pues esto depende de
Palabras clave: interrupciones, los recursos con los cuales cuenta el microcontrolador,
microcontroladores, arduino. variando de modelo a modelo. Por ejemplo en el
microcontrolador AT89c51 tambin de la familia 8051,
este posee los siguientes recursos que solicitan
interrupcin
1. INTRODUCCION Interrupcin Externa 0
Para comprender de mejor manera que son las Timer 0
interrupciones en microcontroladores y mdulos Interrupcin Externa 1
arduino es necesario primero definir un concepto claro Timer 1
de interrupcin. Puerto serie Rx y Tx
Una interrupcin es un recurso del cual disponen Adicionalmente el microcontrolador AT89c52
la mayora de los procesadores y microcontroladores posee un recurso adicional al at89c51, posee un:
en el mercado hoy en da. Permiten cambiar la Timer 2
continuidad de ejecucin de un programa, para atender Adems de poseer ms memoria de programa y
una necesidad, ya sea externa o interna. memoria de datos.

2. DESARROLLO
2.3 VECTOR DE INTERRUPCIONES
2.1 INTERRUPCIN
Tabla 1.Vectores de interrupciones
1Una interrupcin es aquella que se realiza al Fuente: (curso de microcontroladores, 2013)
proceso que se est realizando en ese momento en el
procesador de tal manera que el procesador debe dejar Interrupcion Direccion
la labor que estaba ejecutando para atender la
interrupcin solicitante, una vez atendida puede
retornar al proceso donde lo dejo. Reset 0000
Interrupcion Externa 0 0003
Puede ser llamado va una interrupcion por
hardware y detiene al programa principal en cualquier Timer 0 000B
ejecucin permitindole luego retornar a la labor que se Interrupcion Externa 1 0013
estaba ejecutando.
Timer 1 001B
Puerto Serial 0023
Tx y Rx

1 2
(curso de microcontroladores, 2013) (curso de microcontroladores, 2013)
1
Timer 2 002B retornar al programa que estaba corriendo antes de ser
(Solo At89c52 y activada y atendida la interrupcin, esta instruccin es
RETI RETorno de interrupcin.
superiores)
2.5 INTERRUPCIONES CON ARDUINO
2.4 ACTIVACION DE INTERRUPCIONES 5Lasinterrupciones con Arduino permiten
3Al energizar el microcontrolador las reaccionar a eventos externos a la placa de una forma
interrupciones estn desactivadas deben habilitarse rpida. Cuando se detecta una seal, una interrupcin,
manualmente va software, existe un registro global de interrumpe el proceso que se est ejecutando. Esto
interrupciones que habilita la funcin de interrupcin en permite dos cosas. Por un lado, ejecutar rpidamente
general. Este registro se denomina "IE" Interrup Enable. un trozo de cdigo, y por otro lado parar la ejecucin del
cdigo que se estaba ejecutando.

Tabla 2.Pines de Interrupcin de Arduino.


Fuente: (programacion facil, 2015)
Pines
PLACA PINES
INTERRUPCIONES
Uno, Nano, Mini 2, 3

Mega, Mega2560, 2, 3, 18, 19, 20, 21


MegaADK

Micro, Leonardo 0, 1, 2, 3, 7

Zero Todos los pines digitales


excepto el 4
MKR1000 0, 1, 4, 5, 6, 7, 8, 9, A1, A2
Due, 101 Todos los pines digitales

2.6 attachInterrupt(pin, ISR, modo)

Ilustracin 1. Activacin de interruptores Funcin que permite definir o configurar uno de los
Fuente: (curso de microcontroladores, 2013) pines como un puerto de interrupcin. Los tres
parmetros que admite son:
pin: Indica que pin se va a utilizar como
interrupcin. No debemos pasar el nmero de
pin, debemos pasar el ordinal es decir, si
trabajamos con Arduino UNO tenemos dos
pines para interrupciones el 2 y el 3. Si
queremos utilizar el 2 debemos poner un 0 y si
queremos utilizar el 3 debemos poner un 1.
ISR: es una abreviatura de Interrupt Service
Routine y no es ms que la funcin o mtodo
que se llama cuando se produce la
Ilustracin 2.El registro "IE" Interrup Enable interrupcin. Es de un tipo particular ya que no
Fuente: (curso de microcontroladores, 2013) admite parmetros y tampoco devuelve
ningn valor.
modo: define cuando debe ser disparada la
interrupcin. Puede tomar cuatro valores
constantes dependiendo de lo que queramos
hacer:
- LOW: se lanzar la interrupcin cuando el pin
est en estado bajo.
- CHANGE: se lanzar la interrupcin cuando el
pin cambie de valor de alto a bajo, o de bajo a
Ilustracin 3.prioridades con el registro "IP" Interrup alto.
Priority - RISING: se lanzar la interrupcin cuando el
Fuente: (curso de microcontroladores, 2013) pin cambie de estado de bajo a alto.
- FALLING: se lanzar la interrupcin cuando el
Retorno de interrupcin RETI pin cambie de estado de alto a bajo.
- HIGH: se lanzar la interrupcin cuando el pin
4Como habamos mencionado la interrupcin est en estado alto.
viene a ser un subprograma que resuelve la solicitud de
la interrupcin y al ser un programa de subrutina debe

3 5
(curso de microcontroladores, 2013) (programacion facil, 2015)
4
(curso de microcontroladores, 2013)
2
2.7 detachInterrupt(pin) digitalWrite(ledPin, state);
}
El mtodo detachInterrupt() anula la configuracin
de un pin como interrupcin esa configuracin. Como void blink() {
parmetro le pasamos el pin y lo podemos hacer con la state = !state;
funcin digitalPinToInterrupt(nmero de pin) que nos }
devolver el ordinal del pin del que queremos anular la
configuracin.

2.8 TIPOS DE INTERRUPCIONES 3 CONCLUSIONES

INTERRUPCIONES POR SOFTWARE


Las interrupciones son muy tiles para hacer
6Sedisearon por la necesidad de reaccionar a que las cosas ocurran automticamente en los
suficiente velocidad en tiempos inimaginablemente programas del microcontrolador y pueden
cortos a los que la electrnica trabaja habitualmente y resolver problemas de temporizacin.
a los que ni siquiera el software era capaz de una interrupcin detiene al programa en
reaccionar. cualquier ejecucin permitindole luego
Para definir una interrupcin necesitamos tres retornar a la labor que se estaba ejecutando.
cosas: Para definir una interrupcin necesitamos tres
cosas: un pin de Arduino que recibir la seal
Un pin de Arduino que recibir la seal de de disparo, una condicin de disparo, una
disparo funcin que se ejecutar, cuando se dispara la
Una condicin de disparo interrupcin (Llamada call back function).
Una funcin que se ejecutar, cuando se Al energizar el microcontrolador las
dispare la interrupcin (Llamada call back interrupciones estn desactivadas y deben
function). habilitarse manualmente va software.

INTERRUPCIONES HW O EXTERNAS 4 REFERENCIAS


7Estas son asncronas a la ejecucin del

procesador, es decir, se pueden producir en cualquier


momento independientemente de lo que est haciendo curso de microcontroladores. (3 de Mayo de 2013).
el CPU en ese momento. Las causas que las producen Obtenido de
son externas al procesador y a menudo suelen estar https://sites.google.com/site/cursodemicrocon
ligadas con los distintos dispositivos de entrada o troladores8051/inicio/teoria/11-
salida. interrupciones
programacion facil. (2015). Obtenido de
UN EVENTO PROGRAMADO O TIMER.
https://programarfacil.com/blog/arduino-
Son las interrupciones asociadas a los timers y blog/interrupciones-con-arduino-ejemplo-
gracias a ellas funciona millis(). practico/
prometec. (Octubre de 2016). Obtenido de
http://www.prometec.net/interrupciones/

2.9 APLICACIONES

EJEMPLO DE PROGRAMACIN,
APLICACIONES DE INTERRUPCIONES EN
ARDUINO

const byte ledPin = 13;


const byte interruptPin = 2;
volatile byte state = LOW;

void setup() {
pinMode(ledPin, OUTPUT);
pinMode(interruptPin, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(interruptPin
), blink, CHANGE);
}

void loop() {

6 7
(prometec, 2016) (aprendiendo arduino, 2016)
3

You might also like