integrantes: christian blanco raúl bejarano

33
Integrantes: Christian Blanco Raúl Sistemas temporizados implementados con microcontroladores Atmel, construcción de plataforma básica para explicar el uso detallado del temporizador Timer 2. MICROCONTROLADORES AVANZADOS

Upload: jamar

Post on 23-Feb-2016

56 views

Category:

Documents


0 download

DESCRIPTION

MICROCONTROLADORES AVANZADOS. Sistemas temporizados implementados con microcontroladores Atmel, construcción de plataforma básica para explicar el uso detallado del temporizador Timer 2. Integrantes: Christian Blanco Raúl Bejarano . INTRODUCCION. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Integrantes:                       Christian Blanco                       Raúl Bejarano

Integrantes: Christian Blanco Raúl Bejarano

Sistemas temporizados implementados con

microcontroladores Atmel, construcción de plataforma básica para explicar el uso detallado del

temporizador Timer 2.

MICROCONTROLADORES AVANZADOS

Page 2: Integrantes:                       Christian Blanco                       Raúl Bejarano

El Objetivo de este proyecto consiste en la implementación de una Plataforma Entrenadora básica del Avr Butterfly con sus respectivos ejemplos que contribuyan a la formación teórico practica de los estudiantes del laboratorio de microcontroladores sobre el Temporizador/Contador Timer2.

INTRODUCCION

Page 3: Integrantes:                       Christian Blanco                       Raúl Bejarano

Descripción El Timer 2 del Avr Butterfly es un temporizador/contador de 8 bits. El contador realiza conteo ascendente o ascendente- descendente Posee 4 modos de operación son modo normal , modo CTC , modo

PWM rápido, Modo PWM fase correcta. Genera 2 tipos de interrupción: por sobreflujo o por comparación Entre sus principales funciones tenemos: Generación de PWM Contador de eventos Generador de frecuencia Temporización

TIMER2 DEL AVR BUTTERFLY

Page 4: Integrantes:                       Christian Blanco                       Raúl Bejarano

Este proyecto se lo puede dividir en 2 secciones: Software y Hardware.

El hardware se compone básicamente de la tarjeta Avr Butterfly la cual es manejada por el microcontrolador Atmega169 que es el encargado de controlar los dispositivos complementarios que posee el Butterfly tales como joystick, LCD , sensores, etc.

REQUERIMIENTOS DEL PROYECTO

Page 5: Integrantes:                       Christian Blanco                       Raúl Bejarano

El software se compone básicamente del programa AVR Studio 4 el cual contiene los compiladores AVR GCC y AVR Assembler que nos permiten realizar códigos en lenguaje C y Assembler respectivamente y el programa Proteus el cual nos permite cargar el código en el microcontrolador e interconectar los demás elementos electrónicos y así realizar la simulación para verificar el correcto funcionamiento.

REQUERIMIENTOS DEL PROYECTO

Page 6: Integrantes:                       Christian Blanco                       Raúl Bejarano

Para la implementación de la Plataforma se necesitaron de lossiguientes elementos: Protoboard o placa de pruebas: nos permite construir los

prototipos de los circuitos electrónicos de los ejemplos elaborados. Cuatro pilas doble A: se utilizan como fuente de poder del Avr

Butterfly para poder programarlo.

Socket para Pilas: se utiliza para mantenerlas fijas y adicionalmente

darnos la facilidad de cambiarlas en caso de que estén descargadas.

MATERIALES DE LA PLATAFORMA PARA EL AVR BUTTERFLY

Page 7: Integrantes:                       Christian Blanco                       Raúl Bejarano

Tarjeta Butterfly: la cual será programada para la implementación

física de los ejemplos.

Bus de datos: los cuales van conectados a los puertos B , D ,F de la

tarjeta Butterfly según el requerimiento del ejemplo a desarrollar.

Cable USB a DB9: se lo utiliza para poder cargar el código de cada ejemplo en el microcontrolador atmega169 del Avr Butterfly

MATERIALES DE LA PLATAFORMA PARA EL AVR BUTTERFLY

Page 8: Integrantes:                       Christian Blanco                       Raúl Bejarano

PLATAFORMA PARA EL AVR BUTTERFLY

Puerto B Puerto D

ADC 4 Reset

Motor DC 12v

ConectorDB9

Hembra

VccGnd

Butterfly

Vcc 3v

Page 9: Integrantes:                       Christian Blanco                       Raúl Bejarano

Contador up/down El ejemplo consiste en un contador

ascendente/descendente de dos dígitos, con una frecuencia de conteo de 1Hz, en el cual se cambia el sentido del conteo mediante el uso joystick es decir, si se presiona hacia arriba el conteo es ascendente o si se presiona hacia abajo el conteo es descendente

EJEMPLOS LENGUAJE ENSAMBLADOR

Page 10: Integrantes:                       Christian Blanco                       Raúl Bejarano

EJEMPLOS LENGUAJE ENSAMBLADOR

Contador up/down ( Diagrama de Bloques)

ATMEGA 169PVJOYSTICK LCD

Page 11: Integrantes:                       Christian Blanco                       Raúl Bejarano

Contador up/down

(Diagrama de Flujo)

EJEMPLOS LENGUAJE ENSAMBLADOR

VARIABLESREGISTROS

( R8,R16,R17,R18,R19 )

SET PUNTERO DE PILA

CONFIGURARPB6,PB7 ENTRADAS

ACTIVARPB6,PB7 RES PULL-UP

DEFINIR VECTORES DE INTERRUPCION

ENCERAR ZEROUP_DOWN ← 1

LLAMAR A RUTINALCD_CONFIG

LLAMAR A RUTINALCD_CLR

LLAMAR A RUTINATIMER2_CONFIG

PINB7 = 0

UP_DOWN ← 0

PINB6 = 0

UP_DOWN ← 1

NOP

INT - GLOBAL SEI

NO

NO

SI

VERIF_PINB7

SI

SALIR

MAIN

VERIF_PINB6

INICIO

ENCERA VARIABLEUNIDAD , DECENA

Page 12: Integrantes:                       Christian Blanco                       Raúl Bejarano

EJEMPLOS LENGUAJE ENSAMBLADOR

Contador up/down (Simulación Proteus)

Page 13: Integrantes:                       Christian Blanco                       Raúl Bejarano

EJEMPLOS LENGUAJE ENSAMBLADOR

Motor de 3 Velocidades El ejemplo consiste en un motor DC de 12v con 3

velocidades donde su velocidad se cambia mediante el uso del joystick es decir, si se presiona hacia arriba se incrementa la velocidad o si se presiona en medio se disminuye la velocidad entre las 3 velocidades que se tiene. Adicionalmente se prende el respectivo led que indica en que velocidad se encuentra.

Page 14: Integrantes:                       Christian Blanco                       Raúl Bejarano

Motor de 3 velocidades ( Diagrama de Bloques)

EJEMPLOS LENGUAJE ENSAMBLADOR

ATMEGA 169PV

MOTOR

LCD

OSCILOSCOPIO

LEDSJOYSTICK

Page 15: Integrantes:                       Christian Blanco                       Raúl Bejarano

Motor de 3 velocidades

(Diagrama de Flujo)

EJEMPLOS LENGUAJE ENSAMBLADOR

SETEO DE VARIABLESREGISTROS

(R17,R18,R19)

SET PUNTERO DE PILA

CONFIGURARPB4,PE6 ENTRADA

ACTIVARPB4,PB6 RES PULL-UP

CONFIGURARPB7(OC2A) SALIDAPB0,PB1,PB2 SALIDA

CARGAR VARIABLEPESO y VEL CON SU VALOR RESPECTIVO

ENCERAR EL REGISTRO COMPARADOR DEL

TIMER2 OCR2A

LLAMAR RUTINA QUE CONFIGURA EL LCD

LCD_CONFIG

LLAMAR RUTINA QUE CONFIGURA EL TIMER2

TIMER2_CONFIG

LLAMAR RUTINA VERIF_BOTON_PRESS

INICIO

LOOP

MAIN

LLAMAR RUTINAMENSAJE_LCD

Page 16: Integrantes:                       Christian Blanco                       Raúl Bejarano

Motor de 3 velocidades (Simulación Proteus)

EJEMPLOS LENGUAJE ENSAMBLADOR

Page 17: Integrantes:                       Christian Blanco                       Raúl Bejarano

EJEMPLOS LENGUAJE C

Encender/Apagar Led mediante interrupción El ejemplo consiste en el encendido o apagado de un Led cada 1

segundo. Para generar el estado de encendido del Led, se lo hace mediante

la respectiva rutina cuando ocurre la interrupción por Comparación entonces se procede a encender el Led y a mostrar en el LCD del Butterfly el mensaje “ON”.

Para generar el estado de apagado del Led, se lo hace mediante la respectiva rutina cuando ocurre la interrupción por Desborde entonces se procede a apagar el Led y a mostrar en el LCD del Butterfly el mensaje “OFF”.

Page 18: Integrantes:                       Christian Blanco                       Raúl Bejarano

EJEMPLOS LENGUAJE C

Encender/Apagar Led ( Diagrama de Bloques)

ATMEGA 169PV

LCD

LEDS

Page 19: Integrantes:                       Christian Blanco                       Raúl Bejarano

EJEMPLOS LENGUAJE C

Encender/Apagar Led

(Diagrama de Flujo)

DECLARACION DE FUNCIONES

CONFIGURARPB1 COMO SALIDA

VALOR REGISTROCOMPARACION

OCR2A ←127

IR A LA FUNCIONtimer2_config( )

IR A LA FUNCIONLCD_Init( )

While (1)

INICIO

Page 20: Integrantes:                       Christian Blanco                       Raúl Bejarano

EJEMPLOS LENGUAJE C

Encender/Apagar Led (Simulación Proteus)

Page 21: Integrantes:                       Christian Blanco                       Raúl Bejarano

EJEMPLOS LENGUAJE C

Onda Cuadrada de Frecuencia Variable El ejemplo Consiste en la generación de una onda

cuadrada mediante la configuración del Timer2 en modo CTC y cuya frecuencia se la hace variar en función del voltaje inyectado en el pin ADC4 el cual es controlado por un potenciómetro. Adicionalmente se muestra en el LCD el valor del Registro OCR2A.

Page 22: Integrantes:                       Christian Blanco                       Raúl Bejarano

EJEMPLOS LENGUAJE C

ATMEGA 169PV

LCD

OSCILOSCOPIO

LEDSPOTENCIÓMETRO

Onda Cuadrada de Frecuencia Variable

( Diagrama de Bloques)

Page 23: Integrantes:                       Christian Blanco                       Raúl Bejarano

EJEMPLOS LENGUAJE C

Onda cuadrada Frecuencia

Variable(Diagrama de

Flujo)

INCLUIR LIBRERIAS

DEFINIR FUNCIONES

VARIABLE INT TABLA[10][4]

CODIGOS SEGM - LCD

VARIABLES GOLBALESTIPO INT

unidad,decena,centena

PB7(OC2A) COMO SALIDA

IR A FUNCION ADC_config( )

IR A FUNCIONtimer2_config( )

IR A FUNCION LCD_INIT( )

WHILE(1)

IR A FUNCION ADC_Conv( 4 )

OCR2A ← ADCH

FUNCION DE LIBRERIA_delay_ms(100)

SI

IR A FUNCION verif_rango(ADCH)

IR A FUNCION Escribir_Num_Lcd( )

INICIO

Page 24: Integrantes:                       Christian Blanco                       Raúl Bejarano

EJEMPLOS LENGUAJE C

Onda cuadrada de Frecuencia variable (Simulación Proteus)

Page 25: Integrantes:                       Christian Blanco                       Raúl Bejarano

EJEMPLOS LENGUAJE C

Control de velocidad motor DC El ejemplo consiste en el control de la velocidad de

un motor DC de 12v mediante la configuración del Timer2 en modo PWM rápido y haciendo uso de un potenciómetro con el cual se lleva el control de la velocidad del motor en función del voltaje inyectado en el pin ADC4. Adicionalmente se muestra en el LCD del Butterfly el mensaje TIMER2 FAST PWM

Page 26: Integrantes:                       Christian Blanco                       Raúl Bejarano

EJEMPLOS LENGUAJE C

Control de velocidad motor DC(Diagrama de bloques)

ATMEGA 169PVPOTENCIOMETRO MOTOR

LCD

OSCILOSCOPIO

Page 27: Integrantes:                       Christian Blanco                       Raúl Bejarano

EJEMPLOS LENGUAJE C

Control de velocidad motor DC

(Diagrama de Flujo)

INCLUIR LIBRERIAS

DECLARAR FUNCIONES

IR A FUNCION ADC_config( )

IR A FUNCIONtimer2_config( )

IR A FUNCION LCD_Init( )

HABILITARINTERRUPCION GLOBAL

SEI( )

MENSAJE EN LCD FUNCION DE LIRERIA

LCD_puts( )

WHILE (1)

IR A FUNCION ADC_Conv( 4 )

OCR2A ← ADCH

FUNCION DE LIBRERIA_delay_ms(100)

INICIO

PB7(OC2A) SALIDA

SI

Page 28: Integrantes:                       Christian Blanco                       Raúl Bejarano

EJEMPLOS LENGUAJE C

Control de velocidad motor DC(Simulación Proteus)

Page 29: Integrantes:                       Christian Blanco                       Raúl Bejarano

CONCLUSIONES

Al realizar el proyecto se logró implementar una plataforma entrenadora para el Kit AVR Butterfly de la familia ATMEL con lo cual los futuros estudiantes del laboratorio de microcontroladores contarán con esta versátil herramienta para el desarrollo de sus prácticas, además los ejercicios elaborados contribuirán a reforzar la comprensión de la configuración del Timer2 en sus diferentes modos de operación.

Page 30: Integrantes:                       Christian Blanco                       Raúl Bejarano

CONCLUSIONES

El Kit AVR Butterfly es una poderosa herramienta de aprendizaje, es práctico, eficaz y muy amigable; que con el desarrollo del proyecto se va descubriendo progresivamente las características del microcontrolador ATmega169. La realización de los ejercicios de este proyecto nos ayudó a comprender la correcta manera de configurar el Timer2 en sus diferentes modos de operación y sus diferentes tipos de interrupciones y de igual manera la diferencia de programar usando lenguaje de ensamblador o lenguaje C.

Page 31: Integrantes:                       Christian Blanco                       Raúl Bejarano

CONCLUSIONES

La plataforma Avr Butterfly implementada se

convierte en una buena herramienta didáctica para la visualización de los diferentes modos de operación del timer2 además de la flexibilidad que esta ofrece para la implementación de nuevos ejemplos a futuro. 

Page 32: Integrantes:                       Christian Blanco                       Raúl Bejarano

CONCLUSIONES

El Kit AVR Butterfly con el controlador LCD, el

microcontrolador ATmega169, el Joystick, los sensores y los demás dispositivos que posee, permite abaratar costos en la implementación de aplicaciones en las cuales se necesita de estos tipos de elementos. Además como AVR Studio y WinAVR son gratuitos, se evita el uso ilegal de software con licencias adulteradas.

Page 33: Integrantes:                       Christian Blanco                       Raúl Bejarano

RECOMENDACIONES

Al momento de escribir un programa, es recomendable segmentarlo en funciones que luego serán utilizadas por el programa principal, con el fin de llevar un orden progresivo y así evitar confusiones al momento de revisar o corregir el código. Así también es necesario etiquetar cada función implementada con relación al proceso que se ejecuta con el fin de que sea de fácil entendimiento para las personas que necesiten utilizar el código en un nuevo programa.