Professional Documents
Culture Documents
1. Introduccin.
Un timer es uno de muchos registros en un microprocesador moderno que simplemente
cuenta eventos, es decir, pulsos elctricos.
Cada vez que un pulso es aplicado a un contador, el valor en el contador incrementa en uno.
Si los pulsos son aplicados en una tasa constante conocida, entonces el contador se convierte en
un timer. Conociendo la tasa del pulso y un conteo, se puede fcilmente computar un valor de
tiempo. Por ejemplo, si la tasa del pulso es 100 pulsos por segundo (donde cada pulso es 1/100
segundos) y nuestro contador ha contado 20 pulsos, entonces 0.20 segundos han pasado. 20
pulsos/(100 pulsos/segundo) = 0.20 segundos.
Para comprender los contadores y timers se debe saber sus lmites, hay dos lmites: las
propiedades del pulso (mnima amplitud del pulso y duracin), y el mximo valor al que puede
ser contado. Cuando se utiliza el reloj interno (previsto por el microcontrolador), entonces no hay
que preocuparse por las propiedades mnimas del pulso. (Sin embargo, deben ser considerados si
se trabaja manejando el contador con una seal externa).
En arduino existen contadores de 8 bits y 16 bits, esto significa que los de 8 bits pueden
contar hasta 2^8-1 o 255, mientras que los de 16 bits pueden contar hasta 2^16-1 o sea hasta
65,535. Cuando el contador alcanza el conteo a 255 o 65,535 respectivamente, este vuelve a
empezar desde cero, entonces se dice que hay un desbordamiento en el conteo cuando esto pasa.
Si no se para el contador o el timer antes de que alcance el valor mximo, se desborda, o
empieza a contar desde cero. A menos que se quiera mantener pista de cada vez que se desborda,
no se puede saber el tiempo real. Efectivamente, se extiende el ancho del registro del contador
usando software.
Es importante definir ciertos trminos. Por ejemplo BOTTOM es el valor 0. Este es el
mnimo valor que el contador puede tener. Mientras que TOP es el valor que el contador alcanza
cuando vuelve a empezar. MAX es el valor mximo que tiene el contador ya sea que es de 8 bits
por lo tanto seria 255 o de un contador de 16 bits 65,535. En ciertos casos el MAX puede ser el
TOP y en otros casos el valor del TOP puede ser alcanzado antes de que alcance el valor MAX.
[1]
2. Registro PORT del Arduino.
El contador/timer puede ser registrado por una fuente interna o externa de reloj. El la fuente
de reloj es seleccionada por la lgica de seleccin de reloj la cual es controlada por los bits del
Clock Select (CS120) localizados en el registro b de control del timer/contador (TCCR1B).
TCCR1A Timer/Counter1 Control Register A
3. Procedimiento.
El examen consisti en hacer un teclado musical con ocho notas y seis armnicos que
dependiendo de la tecla presionada diera una nota, mientras que los armnicos fueron cambiados
con un dip switch ingresando el valor del armnico que se quera.
La clave fue el modificar el OCR1A para obtener diferentes frecuencias y por ende diferentes
sonidos de las notas, dependiendo del valor dado entregaba una frecuencia diferente, al usar el
TIMER1 y ser de 16 bits, el valor que poda tomar OCR1A fu entre 0 y 1023, por lo tanto se
aument en 1 el valor del registro por cada 0.01 segundos para notar el cambio de la velocidad
del motor.
La conexin fsica del circuito fue sencilla, constaba de ocho push buttons conectados a las
entradas del arduino y conectados a tierra ya que el arduino tena activado los pull-up internos,
todo esto aplico de igual manera al dip switch. Mientras que la bocina fue conectada a un
transistor npn para poder energizar y que funcionara correctamente, la base del transistor fue
conectado a la salida del OCR1A para que funcionara como un switch y energizar la bocina.
Material
8 Push button
1 Dip Switch de 8 pines
1 Resistencia de 4.7k
1 transistor npn 2n2222
1 Bocina de 75W
Arduino Uno R3
Fuente de poder
4. Conclusiones.
Martin Eduardo Castro Vega. Se comprendi el funcionamiento que tienen los timers en
arduino, haciendo uso del TIMER1 que es el que tiene ms resolucin al ser un contador de 16
bits, tambin se entendi el uso que se le puede dar al OCR1A que puede ser modificado para
cambiar la frecuencia de la salida del registro. Por ltimo fue de gran ayuda el usar el registro
OCR1A ya que permiti el descartar la utilizacin de una interrupcin por software haciendo el
programa ms funcional.
5. Bibliografa.
[1] http://www.wrightflyer.co.uk/Using%20AVR%20Counter.pdf, 10 de marzo del 2014.
[2] http://www.atmel.com/Images/doc8161.pdf, 11 de marzo del 2014.