parpadeo de leds en un atmega

Upload: einsten-vargas-ventura

Post on 14-Feb-2018

253 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/23/2019 Parpadeo de Leds en Un Atmega

    1/5

    Parpadeo de Leds en un AtmegaResumen:

    En esta segunda leccion de programacion de microcontroladores de la fabrica Atmel con

    lenguaje C, vamos a realizar un programa que haga que una fila de leds, tengan un parpadeo

    que nos da la sensacion del movimiento de una luz que se desplaza.

    Esquema Electronico:

    Programando en C:

    1.Abrimos el programa Atmel Studio 6.0, nos mostrara la siguiente pantalla

    2.!acemos clic en "e# $ro%ect, nos aparece la pantalla en cual vamos a especificar, el

    nombre del pro%ecto, el tipo de lenguaje de programaci&n que vamos a utilizar 'tenemos dos

    lenguanje C(( % C), as* que escribimos % seleccionamos la ruta donde se guardaran losarchivos que nos genere al compilar el programa, todo lo dejamos tal como nos muestra la

    siguiente imagen

  • 7/23/2019 Parpadeo de Leds en Un Atmega

    2/5

    3.+e damos -, luego nos aparece el cuadro en el cual vamos a seleccionar el

    microcontrolador Atmel que vamos a utilizar, vamos a utilizar el microcontrolador Atmega, tal

    como se muestra a continuaci&n

    4./inalmente le damos -, % nos aparecer la pagina principal, en el cual vamos a escribir

    todo nuestro programa en lenguaje C, la imagen que nos presenta es la siguiente

    5.Empecemos con la programaci&n, as* que les presento el programa elaborado, que

    posteriormente se e1plicara paso a paso, cada una de las funciones % palabras reservadas

    usadas.

  • 7/23/2019 Parpadeo de Leds en Un Atmega

    3/5

    6.Analizando el c&digo del programa

    //Se utiliza ara introducir comentarios.

    !include "a#r/io.$%

    23+lamamos a nuestra hoja la librer*a que contiene las funciones para la configuraci&n %

    manejo de los puertos de entrada % salida del microcontrolador32

    !include "util/dela&.$%

    23+lamamos a nuestra hoja la librer*a que contiene todas las funciones para el control de

    retardos de tiempo, entre las funciones mas usadas son 4dela%4ms'), 4dela%4loop45'),

    dela%4loop4'), entre otras funciones que miden el tiempo de retardo que deseemos dar al

    realizar una acci&n.32

    int main'#oid()

    *

    23/unci&n principal, en el se encuentra todo lo que va ha realizar nuestro microcontrolador32

    ++R+ , -023Con la funci&n 7787, le decimos que vamos a configurar el puerto 7, si fuera 7789,

    configuramos el puerto 9, etc.

    El valor 01//, el un valor !e1adecimal, 01...Significa que vamos a escribir un valor

    !e1adecimal, 01b..,significa que vamos a escribir un valor binario, para este caso // : ;;, es

    decir que todos los pines del puerto 7, van ha ser configurados como salidas '0 : entrada< 5 :

    salida).32

    $ile'1()

    *

    23Es una sentencia de control, es decir, esta funci&n proviene del lenguanje C, lo que dice esque mientras sea 5, hacemos todo lo que esta dentro, para este caso al introducir en su

  • 7/23/2019 Parpadeo de Leds en Un Atmega

    4/5

    parmetro '5), esto siempre sera verdadero % por lo tanto se ha creado un lazo cerrado,

    siempre se va ha repetir todo lo que esta dentro de esta funci&n de control.

    or'int i,10 i",120 i,i2()

    *

    23Esta es otra funci&n de control, el cual hace uso de una variable llamada i de tipo int 'valor de bits), bueno lo que dice esta funci&n es que configuramos a la variable i con int'valor de 0 a

    ;;), todo lo que este dentro se va ha repetir mientras i=:5, % cada vez que se repita i va ha

    tomar el valor de i3, es decir cada vez que el bucle se repita la variable i se va ha multiplicar

    por 'i:i3) % esto se va ha repetir hasta que i sea menor o igual a 5 'i=:5).32

    PR+ , i0

    23A todos los pines del puerto 7, o mejor aun todo el puerto 7 va ha tomar el valor de i, es decir

    cada pin del puerto 7, va ha funcionar como un d*gito de una numero de bits.32

    7dela&7loo72'3----(0

    23Esta funci&n hace que el proceso anterior se repita por el tiempo que engloba su parmetro,para este caso es de >0000, recuerde que 4dela%4loop4'), es una funci&n que genera tiempo

    cortos, es decir en el orden de los micro segundo 'us) as* que cuando decimos

    4dela%4loop4'>0000), le estamos dando >0000us de retardo.32

    or' int i,120 i%,10 i8,i/2()

    *

    23En esta parte del programa vamos a hacer una lectura inversa, si se han dado cuenta en el

    primer for, el puerto 7 toma los valores de 5, , ?, , 56, >, 6?, 5, estos valores en forma

    f*sica son los valores que tiene por separado cada pin del puerto 7, en este for se hace el

    proceso inverso, es decir empezamos del valor mas alto 5, 6?, >..., 5< % as* logramos elefecto del encendido o mejor dicho del recorrido de un led en toda una fila de leds.

    9./inalmente compilamos el programa, si no tenemos errores, nos mostrara la siguiente

    ventana, al compilar

    +o que nos importa es que al final, en la parte de la salida nos muestre la siguiente frase

  • 7/23/2019 Parpadeo de Leds en Un Atmega

    5/5

    uild succeeded.

    ,,,,,,,,,, uild: 1 succeeded or u8to8date; - ailed; - s