Timer Informe

March 27, 2019 | Author: MauricioRojasGonzalez | Category: Arduino, Bit, Microcontroller, Digital Technology, Redes sociales y digitales
Share Embed Donate


Short Description

Informe de laboratorio contadores arduino...

Description

TIMERS Felipe García Granados, 20131007129 José Cruz Reyes, 20132007074 Mauricio Rojas, 20132007049 Universidad Universidad Distrital Francisco José de Caldas Bogotá DC, Colombia [email protected]  [email protected]  [email protected] .co [email protected]

I.

INTRODUCCIÓN

En esta práctica proponemos en uso la función timer, la cual nos permite establecer un temporizador para activar una interrupción en un determinado momento en el futuro, cuando llegue ese momento, puede utilizar la interrupción como una alerta, ejecutar código diferente, o cambiar un  pin de salida. salida. Lo interesante de los temporizadores es que al igual que las interrupciones externas, se ejecutan de forma asíncrona, o de forma independiente de su  programa principal. En lugar lugar de ejecutar un bucle o varias veces llamando millis (), puede dejar que un temporizador haga el trabajo para usted, mientras que su código hace otras cosas.

II. 

OBJETIVOS Comprender en funcionamiento y  propósito de los los temporizadores.



III.    

MATERIALES Arduino uno Protoboard LDR(fotoresistencia) Cable.

IV.

MARCO TEÓRICO

TIMER Un temporizador  no es más que un contador contador que se incrementa cada intervalo de tiempo. Los temporizadores funcionan como un reloj que se puede utilizar para medir el tiempo, medir la duración de ciertos eventos, entre otras aplicaciones. Arduino está equipado con un microcontralodor ATmega168 o ATmega328 (que sólo se diferencian en la cantidad de memoria interna). Estos microcontroladores microcontroladores tienen en esencia tres tipos de contadores y : Timer0, Timer1 y Timer2 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 sólo difieren en la cantidad de memoria). Tienen 6 temporizadores: Timer0, Timer1, Temporizador 2 Temporizador 3, timer4, temporizador5 temporizador5 Los temporizadores 0, 1 y 2 son idénticos a los ATmega168 / 328, y temporizadores temporizadores 3, 4 y 5 son ambos ambos de 16 bits.

TIMER0 Timer0 es un temporizador de 8 bits, es decir, su registro contador puede grabar un valor máximo de 255 (el mismo que un byte de 8 bits sin signo). Timer0 es utilizado por las funciones nativas de temporización tales como Arduino delay()y millis(), por lo que los usuarios de Arduino no debería meterse con él a menos que se sienta cómodo con las consecuencias.

TIMER1

AttachInterrupt (función, período)

Timer1 es un temporizador de 16 bits, con un valor de contador máximo 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.

Asigna una función a ser llamada cada interrupción generada por el temporizador . Si no se especifica un período, se va a ut ilizar el período definido en el arranque o  setPeriod  .

TIMER2

V.

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

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.

CONFIGURACIÓN DE

CÓDIGO

Con el siguiente código observamos el funcionamiento del timer 0 AVR como contador. Modificación de registros atmel studio (v7) Se ejecuta el programa atmel studio, en este caso se utilizó la versión 7. La figura muestra como es el entorno gráfico, en que se realizó la práctica.

LOS TEM PORIZADORES 

Ajustar en "manual" los temporizadores es  bastante aburrido y laborioso ya que requiere la manipulación de diversos registros de microcontrolador, pero afortunadamente hay algunas librerías que le permiten hacer este proceso de manera muy sencilla. Las principales funciones de la biblioteca son:

Inicializar (período) Este método debe ser llamado antes que cualquier otro método, ya que es responsable de la configuración inicial. Puede informar opcionalmente el intervalo (en microsegundos) en el que se debe generar la interrupción. El tiempo aceptable más bajo es de 1 microsegundo, y el tiempo máximo es de 8, 388,480 microsegundos, o aproximadamente 8,3 segundos. Cuando ningún valor no es informado, se le asignará el valor  predeterminado de 1.000.000 microsegundos (1) segudo. Cuando se utiliza Timer1 la analogWrite () en los pines 9 y 10 de la Arduino dejar de funcionar.

Figura No 1. Entorno visual Atmel Ya abierto el atmel creamos un proyecto nuevo. Abrirá un recuadro mostrando los tipos de  proyectos que se pueden realizar, en nuestro caso escogimos “GCC Executable Proyect”.

SetPeriod (período) Modifica el período de interrupción.

Figura No 2. Recuadro de opc iones

Ya dándole nombre al proyecto se elige el dispositivo, en este caso se seleccionó el Arduino UNO, el cual tiene un µControlador Tmega328p.

Procedemos a la respectiva co mpilación.

Figura No 5. Ventana de compilación Damos en guardar, y procedemos a subirla al Arduino. Figura No 3. Selección del micro controlador Abre el editor y se procede a realizar el código.

Buscamos donde está guardado el Arduino e identificamos el archivo de dependencia .hex Este archivo es el cual se procede a subirlo al Arduino UNO, por medio del compilador XLoader.

Figura No 6. Ventana Xload Seleccionado el adecuado puerto COM según este conectado el Arduino UNO, y oprimiendo el  botón upload, quedara subido el programa de registros sactisfactoriamente.

Figura No 4. Ventana para escribir el codigo

VI.

SIMULACIONES

Figura No 10. Numero 13 representado en formato binario por medio del led.

Figura No 7. Numero 1 representado en formato  binario por medio del led.

Figura No 11. Numero 31 representado en formato binario por medio del led.

Figura No 8. Numero 5 representado en formato  binario por medio del led.

Figura No 12. Numero 0 representado en formato  binario por medio del led.

Figura No 9. Numero 10 representado en formato  binario por medio del led.

CONCLUSIONES

CAMBIANDO EL PRESCALER A 8





En lugar de ejecutar un bucle o varias veces hacer la función millis y esperar a que finalice sin que se pueda hacer algo más podemos dejar que un temporizador haga el trabajo, mientras que el código hace otras cosas.

Se puede ajustar el temporizador para utilizar un pre-escalador, lo que le permite dividir su señal de reloj por varias

Figura No 13. Numero 27 representado en formato binario por medio del led.

 potencias de dos, lo que aumenta el  período del temporizador para así seguir ejecutando instrucciones (CTC).



La medida del tiempo es muy precisa.



Código limpio y elegante. No tenemos que calcular en el loop si estaremos  perdiéndonos algo o no. Cuando el tiempo

Figura No 14. Numero 31 representado en formato binario por medio del led.

 programado se cumple la interrupción salta y se ejecuta limpiamente.

VII.

IMPLEMENTACIÓN PRÁCTICA

DE

LA



Si utilizamos los timers, muchas de las instrucciones que dependen de ellos dejaran de funcionar, entre estos están, los  pines PWM y analogWrite() y la librería Servo.

REFERENCIAS 

 

Figura No 15. Leds que representan el número 31 en formato binario y el conteo.

http://playground.arduino.cc/ArduinoNot ebookTraduccion/Variables http://www.prometec.net/timers/ https://circuits.io/circuits/2639532

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF