parpadeo de leds en un atmega
Post on 14-Feb-2018
253 Views
Preview:
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
top related