Programando Embedded System Microcontroller con Metologia interactiva.
GILBERTO PASCUAL, 2020
Passive Avr
Programmer
Figura2
“Ahora usted puede aprender a
Programar Microcontroladores de forma muy fácil”.
Introducción:
El siguiente proyecto nos enseña a generar una onda sinodal de una frecuencia específica tabulada en una tabla de Excel. Los datos son almacenados en el Microcontrolador replicados por el mismo en valor hexadecimal, que mediante un conversor de A/D y un amplificador podemos reconstruir la señal sinodal, todo esto con el Microcontrolador Atmega16.
En la Figura3 se muestra los valores tabulados para una onda seno de frecuencia 3.2Khz, estos valores estandarizados son convertidos en valores Hexadecimales (byte), para ser cargados en el Microcontrolador Atmega16.
Figura3
Esquema electrónico:
El siguiente esquema electrónico muestra
la implementación de este proyecto en un ambiente de test o simulación,
mediante el cual podemos ver el funcionamiento del software e interacción con
el hardware:
Figura4
Nota: El esquema presentado no es necesariamente el que se implemente en
un ambiente real.
Programa de Control [Firmware]:
En la Figura5, se puede apreciar el código escrito en leguaje Basic para generar una onda sinodal mediante un Microcontrolador, los valores en byte de la onda seno para una frecuencia de 3.2Khz está dado en la Figura3.
Figura5
Análisis del código del Programa:
1. $regfile = "m16def.dat" Declaramos el Microcontrolador que usaremos, con esto el compilador conocerá los componentes internos que podemos utilizar.
2. $crystal = 8000000 Declaramos la frecuencia con la cual trabajara nuestro Microcontrolador, puede usarse un cristal interno o externo.
3. $hwstack = 30 Es el tamaño de espacio de hardware físico que se define para usarlo en funciones, llamadas, saltos en memoria. Es una buena práctica hacer este tipo de definiciones.
4. $swstack = 10 Mediante esta declaración se le indica al software que debe usar para compilar un espacio en memoria de 10, esto solo es para el software no es escrito en el Microcontrolador.
5. $framesize = 40 Es una variable que se usa para indicarle al compilador que usaremos un tamaño de frame de 40, esto solo es para el software no es escrito en el Microcontrolador.
6. Dim I As Byte Declaramos una variable de nombre “I” de tipo Byte para usarlo como contador.
7. Dim Seno As Byte Declaramos una variable de nombre “Seno” de tipo Byte para usarlo como almacén temporal a los valores que se van leer de la memoria del Microcontrolador.
8. Config Portb = Output Configuramos todos los pines del puerto B del Microcontrolador como salida.
9. Portb = &H00 Asignamos a todos los pines del puerto B con el valor de “0”, es decir iniciamos con el valor de “0” en todos los pines del puerto B. (En este programa usaremos todo el puerto B como si fuera un Byte).
10. Do Creamos una sentencia secuencial, mediante “Do”, hacemos repetitivo todo el código que se encuentra dentro de lazo “Do” y “Loop”.
11. For I=0 To 40 Mediante esta línea iniciamos la sentencia For, donde indicamos al compilador que realice todo el contenido que se encuentra entre For y Next desde I=0 hasta 40.
12. Seno = Lookup(i,Dta) Mediante el comando Lookup, tomados los datos almacenados en la memoria del Microcontrolador, específicamente en la etiqueta Dta. En resumen seria como una forma de leer una matriz indicándole la ubicación de la lectura.
13. Portb = Seno Después asignamos el valor de la variable Seno al puerto B.
14.
Dta: Dentro de estas
palabras reservadas le indicamos al compilador que los datos escritos mediante
la etiqueta Dta, se van a guardar en la memoria del
Microcontrolador como valores ya definidos.
Simulación del proyecto:
En la Figura6, se puede apreciar la señal de salida, medido antes de entrar al filtro y luego de la salida del filtro.
Figura6
En la Figura7, podemos observar más claramente que el conversor A/D con resistencias, está cumpliendo su trabajo, pues la salida del Microcontrolador es un valor digital, que posteriormente deber ser convertido a una señal análoga.
Figura7
En la Figura8, se muestra la simulación realizada para observar el comportamiento de los registros y memoria del Microcontrolador.
Figura8
En la Figura9, se da a conocer cuando se puso a compilar el código del programa, no se encontró ningún error.
Figura9
“Si te gusto el artículo, compártelo, recuerda que hay otros que desean aprender y tú puedes ayudarlos, comentando y compartiéndolo en tus redes”.
¡Gracias!
Atte. Gilberto
Pascual
No hay comentarios:
Publicar un comentario