PROYECTO: SISTEMA DE TRÁFICO VEHICULAR UTILIZANDO EL PIC 18F4550

0
 Autor: Alexis                                       Contacto: alexis_100499_aries@hotmail.com 

SISTEMA DE TRÁFICO VEHICULAR

 


Resumen: 

En el presente proyecto se muestra el diseño de un sistema de trafico vehicular formado por dos semáforos convencionales que controlan el flujo vehicular de dos vías perpendiculares, con sus respectivos mensajes en pantallas LCD que indican el estado en el que se encuentra cada respectivo semáforo, adicional muestra la temperatura ambiental y el conteo de un reloj digital, la información mencionada anteriormente es transmitida al puerto serial a través del uso de periférico del EUSART del microcontrolador pic 18f4550.


Abstract: This project shows the design of a vehicular traffic system formed by two conventional traffic lights that control the vehicular flow of two perpendicular lanes, with their respective messages on LCD screens that indicate the status of each respective traffic light, additional Displays the ambient temperature and the count of a digital clock, the information mentioned above is transmitted to the serial port through the use of the EUSART peripheral of the pic 18f4550 microcontroller.

Keyword: Pic18f4550, Comunicación Serial, ADC, Baudios, Pantalla LCD, Interrupciones, registros.

Volver al inicio


        I.            INTRODUCCIÓN

A continuación, se muestra el microcontrolador utilizado en este proyecto, que es el microcontrolador pic 18f4550.

 

Figura 1: Microcontrolador PIC 18F4550.


¿Sabes que son los sistemas embebidos?. Quizás te gustaría revisar: https://educatronicosisc.blogspot.com/2022/03/que-son-los-sistemas-embebidos.html

Volver al inicio


                        II.            Desarrollo del proyecto

1.1    2.1.  Descripción general:

El presente proyecto es un sistema de trafico vehicular que consta de 2 semáforos que controla el flujo de dos carriles perpendiculares que para este   caso son autos y peatones. Como un sistema real, menciona la indicación cara los autos y peatones, si es que pueden avanzar (color verde), espere (color amarrillo) y stop (color rojo) juntamente con el tiempo que queda para cada estado, además muestra la temperatura para cada semáforo, juntamente con el tiempo actual del día. Además, la información acerca de las temperaturas se envía a través de la comunicación serial por el puerto EUSART.

Figura 2: Diagrama general del proyecto.

Volver al inicio


1.1    2.2.  Desarrollo del código:

           2.2a. Manejo de librerías

Para este proyecto se ha utilizado 4 librerías que se muestran a continuación:

Figura 3: Manejo de librerías.

La primera librería ACD me ayuda a utilizar el conversor analógico digital de 10 bits del microcontrolador a través de sus funciones que se muestran a continuación:

Figura 4: Librería ADC.

La primera función nos ayuda a configuras el módulo ADC, mientras que la segunda librería elegimos el canal analógico que deseamos leerá y nos devuelve el valor leído con una longitud de 16 bits (2 bytes). La segunda y tercera librería que se utilizan son la de las pantallas LCD, que nos permiten controlar y enviar mensajes a esta pantalla. La segunda librería tiene como salida al puerto D mientras que la tercera librería tiene al puerto B.

Figura 5: Librería Pantalla LCD 1.

Como podemos observar en las figuras 5 y 6 vemos que los nombres de las funciones de las librerías son bastantes intuitivas acerca de su función además ambas poseen el mismo nombre de las funciones con la diferencia que la pantalla 2 se le agrega el numero 2 al final de todas las funciones.

Figura 6: Librería Pantalla LCD 2.

Esta librería USART nos permite comunicación a través de los pines RX y Tx del microcontrolador gracias al periférico EUSART a través de la comunicación serial. Nos permite enviar y recibir un carácter y cadena de caracteres.

Figura 7: Librería USART.

2.2b. Código desarrollado en MPLAB X IDE

El primer paso que se realizó será incluir todas las librerías que se utilizaran en el código:

Figura 8: Incluimos todas las librerías.

A continuación, definimos todas las macros del sistema:

Figura 9: Incluimos los macros del código.

A continuación, se presenta la máquina de estados del programa, se utilizará este modelo para definir los 4 estados de un juego de semáforos.

Figura 10: Definimos la máquina de estados.

A continuación, se presenta los prototipos de las funciones que se utilizan juntamente con las variables.

Figura 11: Definimos los prototipos de las funciones.

A continuación, se presenta las variables que se utilizaran en el programa.

Figura 12: Definimos las variables del programa.

A continuación, se presenta la configuración inicial del programa donde se configura las entradas y salidas, juntamente con la inicialización de variables.

Figura 13: Configuración inicial del programa.

A continuación, se presenta el código dentro del bucle, donde obtenemos primero el valor de la temperatura a través de la función “Canal_ADC” que tiene como parámetro de entrada el canal analógico que se desea leer. Después convertimos las variables en Caracteres para poder visualizarlos a través de las pantallas LCD´s. Al final se muestra el uso de la máquina de estados con el uso del switch en la cual en los “case” están los estados.

Figura 14: Configuración inicial del programa.

A continuación, se muestra la interrupción controlada por el Timer0 que se desbordara cada 1 segundo y se activara la bandera, el cual es limpiado por software, se carga nuevamente el registro del timer, se aumenta la variable “contador” que lleva la cuenta de los tiempos de los semáforos, se envía se envía la información de las temperaturas por el puerto serial además que se aumenta la variable “segundos” que controla el tiempo y se evalúa las condiciones para los segundos, minutos y horas.

Figura 15: Interrupción.

A continuación, se presenta la función por donde se envía la información de las temperaturas por el periférico EUSART.

Figura 16: Función para enviar mensaje por el EUSART.

A continuación, se presenta la función para el primer estado, donde los peatones avanzan mientras los autos están en rojo. Primero se evalúa la variable “TiempoPeatones” y “TiempoAutos” con el tiempo de verde y tojo definidos en los macros. A continuación, muestra el mensaje juntamente con el tiempo actual del estado por las pantallas LCD´s, se pone una condicional para no mostrar en la pantalla el tiempo 0 segundos. Ademas se escriben las salidas para las luces del semáforo, se añade la información de la temperatura por las pantallas y el tiempo. Finalmente se evalúa la condición para pasar al siguiente estado.

Figura 17: Función para el primer estado.

La misma estructura para los 3 estados siguientes.

Figura 18: Estados del programa.

A continuación, se muestra la función que imprime el tiempo en las pantallas LCD´s.

Figura 19: Imprimir el tiempo en las pantallas LCD´s.

A continuación, se muestra la configuración global de las interrupciones, la configuración de TIMER 0 y además con figuración del mismo TIMER a través de las interrupciones.

Figura 20: Configuración de las interrupciones y del timer 0.

Finalmente se presenta la función que realiza la impresión de la información de las temperaturas en las pantallas LCD´s.

Figura 21: Configuración de las interrupciones y del timer 0.

Volver al inicio


             III. SIMULACIÓN:

Figura 22: Simulación del proyecto en el software de Proteus.


Código de la programación y de la simulación en Proteus: https://github.com/MauroMA-99/ArchivosPIC/tree/main/PROYECTO%20SEMAFORO


Visita nuestro canal de YouTube para mas contenido: https://www.youtube.com/channel/UC93Nt6sA-7r_S7EtGO44GeA

Volver al inicio


Entradas que pueden interesarte

Sin comentarios

Artículos populares

Procesamiento digital de señales (ejemplos usando matlab)

Procesamiento digital de señales (ejemplos usando matlab)

Autor: Mauro Montoya Arenas   PROCESAMIENTO DIGITAL DE SEÑA…

¿Como configurar un microcontrolador PIC? - Primer Hola Mundo

¿Como configurar un microcontrolador PIC? - Primer Hola Mundo

Configuración de un PIC - Hola Mundo En esta oportunidad ap…

PROYECTO: SISTEMA DE TRÁFICO VEHICULAR UTILIZANDO EL PIC 18F4550

PROYECTO: SISTEMA DE TRÁFICO VEHICULAR UTILIZANDO EL PIC 18F4550

Autor: Alexis                                       Contac…

¿Qué son los Sistemas embebidos?

¿Qué son los Sistemas embebidos?

Sistemas embebidos  🔴 En este articulo encontrarás: - Func…