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: olwen

Post on 05-Jan-2016

44 views

Category:

Documents


2 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 los

siguientes 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 4Reset

Motor DC 12v

ConectorDB9

Hembra

Vcc

Gnd

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 ZERO

UP_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 169PVPOTENCIOMETR

OMOTOR

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.