Programando Embedded System Microcontroller
con Metologia interactiva.
GILBERTO PASCUAL, 2019
Passive Avr
Programmer
Figura1
Figura2
“Ahora usted puede aprender a
Programar Microcontroladores de forma muy fácil”.
Introducción:
El siguiente proyecto se trata de utilizar
las funciones básicas para poder controlar dos semáforos (principal y
secundario) en una intersección de avenidas. Los tiempos para cada luz será: verde 10 segundos, rojo 8 segundos y
naranja 3 segundos.
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:
Figura3
Nota: El esquema presentado no es necesariamente el que se implementaría
en un ambiente real.
Programa de Control
[Firmware]:
En la Figura4, se puede apreciar el código
escrito en lenguaje Basic para controlar las luces de los dos semáforos
(principal y secundario).
Figura4
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 = 4000000 Declaramos la frecuencia con la cual
trabajara nuestro Microcontrolador, puede usarse un cristal interno o externo.
3.
Config Portb = Output Configuramos todos los pines del puerto B
del Microcontrolador como salida.
4.
Config Portd = Output Configuramos todos los pines del puerto D
del Microcontrolador como salida.
5.
Green_sf1 Alias Portb.0 Renombramos el código que llama al pin B0,
con la palabra “Green_sf1”, que
corresponde al pin donde está conectado el color verde del semáforo principal.
6.
Orange_sf1 Alias Portb.1 Renombramos el código que llama al pin B1,
con la palabra “Orange_sf1”, que
corresponde al pin donde está conectado el color naranja del semáforo
principal.
7.
Red_sf1 Alias Portb.2 Renombramos el código que llama al pin B2,
con la palabra “Red_sf1”, que
corresponde al pin donde está conectado el color rojo del semáforo principal.
8.
Green_sf2 Alias Portd.0 Renombramos el código que llama al pin D0,
con la palabra “Green_sf2”, que
corresponde al pin donde está conectado el color verde del semáforo secundario.
9.
Orange_sf2 Alias Portd.1 Renombramos el código que llama al pin D1,
con la palabra “Orange_sf2”, que
corresponde al pin donde está conectado el color naranja del semáforo
secundario.
10.
Red_sf1 Alias Portd.2 Renombramos el código que llama al pin D2,
con la palabra “Red_sf2”, que corresponde
al pin donde está conectado el color rojo del semáforo secundario.
11.
Portb = 0 Inicializamos todo el puerto B con “0”, para que empiece apagado todos
los pines del puerto B.
12.
Portd = 0 Inicializamos todo el puerto D con “0”,
para que empiece apagado todos los pines del puerto D.
13.
Do Creamos una sentencia secuencial,
mediante “Do”, hacemos repetitivo todo el código que se encuentra dentro de
lazo “Do” y “Loop”.
14.
Red_sf1 = 1 Activamos las luz roja del semáforo
principal y prendemos la luz verde del semáforo secundario, Green_sf2 = 1, las demás
luces lo mantenemos apagados, Orange_sf1 = 0 \ Green_sf1 = 0 \ Red_sf2 = 0 \ Orange_sf2 = 0
15.
Wait 8 Después de haber hecho las
activaciones de las luces lo mantenemos en ese estado por 8 segundos.
16.
Orange_sf1 = 1 Activamos las luz naranja del semáforo principal y prendemos la luz
naranja del semáforo secundario, Orange_sf2 = 1, las demás luces lo mantenemos apagados, Red_sf1
= 0 \ Green_sf1 = 0 \ Red_sf2 = 0 \ Green_sf2 = 0
17.
Wait 3 Después de haber hecho las
activaciones de las luces lo mantenemos en ese estado por 3 segundos.
18.
Green_sf1 = 1 Activamos las luz verde del semáforo
principal y prendemos la luz roja del semáforo secundario, Red_sf2 = 1, las demás
luces lo mantenemos apagados, Red_sf1 = 0 \ Orange_sf1 = 0 \ Orange_sf2 = 0 \ Green_sf2 = 0
19.
Wait 10 Después de haber hecho las
activaciones de las luces lo mantenemos en ese estado por 10 segundos.
20.
Loop Para cerrar la
secuencia condicional “Do”.
21. End Finalizamos el programa y damos fin del
código.
Simulación
del proyecto:
En la Figura5, se puede apreciar el
momento en el cual se encuentra la luz roja activa en el semáforo principal y el
verde para el semáforo secundario:
Figura5
En la Figura6, se puede apreciar la luz naranja
encendido para los dos semáforos tanto en el principal como en el secundario:
Figura6
En la Figura7, se puede apreciar el
momento en el cual se encuentra la luz verde encendido para el semáforo
principal y la luz roja encendido para
semáforo secundario:
Figura7
En la Figura8, se muestra el momento el
cual el semáforo principal cambia de color rojo a naranja y de naranja a verde.
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