0% encontró este documento útil (0 votos)
36 vistas6 páginas

Funcionamiento de Temporizadores en Arduino

Este documento describe cómo funcionan los temporizadores en Arduino y cómo configurarlos y usarlos. Explica que los temporizadores permiten ejecutar código de forma asíncrona en un momento futuro especificado. Luego describe los tres temporizadores principales en Arduino (Timer0, Timer1 y Timer2) y cómo configurarlos y usarlos mediante una biblioteca para controlar las luces de un semáforo de tres colores como ejemplo práctico.
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
36 vistas6 páginas

Funcionamiento de Temporizadores en Arduino

Este documento describe cómo funcionan los temporizadores en Arduino y cómo configurarlos y usarlos. Explica que los temporizadores permiten ejecutar código de forma asíncrona en un momento futuro especificado. Luego describe los tres temporizadores principales en Arduino (Timer0, Timer1 y Timer2) y cómo configurarlos y usarlos mediante una biblioteca para controlar las luces de un semáforo de tres colores como ejemplo práctico.
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

SEMFORO DE TRES COLORES

Felipe Garca Granados, 20131007129


Jos Cruz Reyes, 20132007074
Mauricio Rojas, 20132007049
Universidad Distrital Francisco Jos de Caldas
Bogot DC, Colombia
fgarciag@[Link]
jlcruzr@[Link]
mrojasg@[Link]

I.

INTRODUCCIN

En esta prctica proponemos en uso la funcin


timer, la cual nos permite establecer un
temporizador para activar una interrupcin en un
determinado momento en el futuro, cuando llegue
ese momento, puede utilizar la interrupcin como
una alerta, ejecutar cdigo diferente, o cambiar un
pin de salida.
Lo interesante de los temporizadores es que al
igual que las interrupciones externas, se ejecutan
de forma asncrona, o de forma independiente de
su programa principal. En lugar de ejecutar un
bucle o varias veces llamando millis (), puede
dejar que un temporizador haga el trabajo para
usted, mientras que su cdigo hace otras cosas.

II.

III.

OBJETIVOS
Comprender en funcionamiento y
propsito de los temporizadores.
MATERIALES
Arduino uno
Protoboard
LDR(fotoresistencia)
Cable.

IV.

MARCO TERICO

TIMER
Un temporizador no es ms que un
contador que se incrementa cada
intervalo
de
tiempo. Los temporizadores funcionan
como un reloj que se puede utilizar para
medir el tiempo, medir la duracin de
ciertos
eventos,
entre
otras
aplicaciones.
Arduino
est
equipado
con
un
microcontralodor
ATmega168
o
ATmega328 (que slo se diferencian en
la cantidad de memoria interna). Estos
microcontroladores tienen en esencia
tres tipos de contadores y : Timer0,
Timer1 y Timer2 , Timer0 y Timer2 son
contadores de 8 bits, es decir, tener 0255, y Timer1 es un contador de 16
bits, que cuenta desde 0 a 65535.
El Arduino Mega est equipado con
ATmega1280 o Atmega2560 (que slo
difieren
en
la
cantidad
de
memoria). Tienen
6 temporizadores:
Timer0,
Timer1,
Temporizador
2
Temporizador
3,
timer4,
temporizador5 Los temporizadores 0,
1 y 2 son idnticos a los ATmega168 /
328, y temporizadores 3, 4 y 5 son
ambos de 16 bits.
TIMER0

Timer0 es un temporizador de 8 bits, es decir, su


registro contador puede grabar un valor mximo
de 255 (el mismo que un byte de 8 bits sin
signo). Timer0 es utilizado por las funciones
nativas
de
temporizacin
tales
como
Arduino delay()y millis(), por lo que los usuarios
de Arduino no debera meterse con l a menos que
se sienta cmodo con las consecuencias.
TIMER1
Timer1 es un temporizador de 16 bits, con un
valor de contador mximo de 65.535 (un entero de
16 bits). La biblioteca Arduino Servo utiliza este
temporizador, as que ten cuidado si lo usa en sus
proyectos.

utiliza Timer1 la analogWrite () en los pines 9 y


10 de la Arduino dejar de funcionar.
SetPeriod (perodo)
Modifica el perodo de interrupcin.

AttachInterrupt (funcin, perodo)


Asigna una funcin a ser llamada cada
interrupcin generada por el temporizador. Si no
se especifica un perodo, se va a utilizar el perodo
definido en el arranque o setPeriod .

TIMER2
Timer2 es un temporizador de 8 bits que es muy
similar
a
Timer0. Se
utiliza
por
el
Arduino tone()funcin.

V.

CDIGO

Con siguiente cdigo se controla las tres luces led


de un semforo:

TEMPORIZADOR 3, TIMER4,
TEMPORIZADOR5
El AVR ATmega1280 y Atmega2560 (que se
encuentra en las variantes de Arduino Mega)
tienen otros tres temporizadores adicionales. Estos
son todos los temporizadores de 16 bits, y
funcionan de manera similar a Timer1.

VI.

SIMULACIONES
A continuacin se muestran las
simulaciones del semforo mediante
la funcin dealay.

CONFIGURACIN DE LOS TEMPORIZADORES

Ajustar en
"manual" los temporizadores es
bastante aburrido y laborioso ya que requiere la
manipulacin
de
diversos
registros
de
microcontrolador, pero afortunadamente hay
algunas libreras que le permiten hacer este
proceso de manera muy sencilla.
Las principales funciones de la biblioteca son:
Inicializar (perodo)
Este mtodo debe ser llamado antes que cualquier
otro mtodo, ya que es responsable de la
configuracin
inicial. Puede
informar
opcionalmente el intervalo (en microsegundos) en
el que se debe generar la interrupcin. El tiempo
aceptable ms bajo es de 1 microsegundo, y el
tiempo mximo es de 8, 388,480 microsegundos,
o aproximadamente 8,3 segundos. Cuando ningn
valor no es informado, se le asignar el valor
predeterminado de 1.000.000 microsegundos (1)
segudo. Cuando
se

Figura No 1. Led verde encendido con funcin


delay

Figura No 2. Led amarillo encendido con funcin


delay

Figura No 5. Led verde encendido con funcin


millis

Figura No 3. Led rojo encendido con funcin


delay

Figura No 6. Led rojo encendido con funcin


millis

Figura No 4. Led blanco encendido con funcin


delay

Figura No 7. Led amarillo encendido con funcin


millis

VII.

IMPLEMENTACIN
PRCTICA

DE

LA

El
primer
########################################
########################################
########################################
########################################

Figura No 9. Led amarillo encendido con funcin


millis

Figura No 8. Led rojo encendido con funcin


millis

Figura No 10. Led verde encendido con funcin


millis

Figura No 8. Leds amarilloy verde encendido con


funcin millis

Figura No 11. Led rojo encendido con funcin


delay

Figura No 12. Leds verde y amarillo encendido


con funcin delay

Figura No 15. Led verde encendido con funcin


delay

CONCLUSIONES

En lugar de ejecutar un bucle o


varias
veces
hacer
la
funcin millis y esperar a que
finalice sin que se pueda hacer
algo ms podemos dejar que un
temporizador haga el trabajo,
mientras que el cdigo hace
otras cosas.

Se puede ajustar el temporizador para

Figura No 13. Led rojo encendido con funcin


delay

utilizar

un pre-escalador,

lo

que

le

permite dividir su seal de reloj por


varias potencias de dos, lo que aumenta
el perodo del temporizador para as
seguir ejecutando instrucciones (CTC).

Figura No 14. Led amarillo encendido con


funcin delay

La medida del tiempo es muy precisa.

Cdigo limpio y elegante. No tenemos


que calcular en el loop si estaremos

perdindonos algo o no. Cuando el

dejaran de funcionar, entre estos estn,

tiempo

los pines PWM y analogWrite() y la

programado

interrupcin

salta

se
y

cumple
se

la

ejecuta

librera Servo.

limpiamente.
REFERENCIAS

Si utilizamos los timers, muchas de las


instrucciones que dependen de ellos

[Link]
ebookTraduccion/Variables
[Link]
[Link]

También podría gustarte