Instituto Polit�cnico Nacional
Instituto Politécnico Nacional
"La Técnica al Servicio de la Patria"

Boletín No. 85
1o. de julio de 2021




PROGRAMACÍON Y SIMULACIÓN DE UN ANEMÓMETRO DIGITAL USANDO UN PIC18F4550 Y LENGUAJE C

 

Rogelio Ernesto García Chávez1
Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.
Salvador Tavera Mosqueda2
Alfredo Roldán Caballero2
Ramón Silva Ortigoza2
Magdalena Marciano Melchor2
David Quezada Rivero3

1Instituto Politécnico Nacional UPIICSA
2Instituto Politécnico Nacional CIDETEC Área de Mecatrónica
3Instituto Politécnico Nacional UPIITA Área de Mecatrónica

 

Resumen

Las innovaciones en materia de energías renovables se han incrementado sustancialmente en las últimas décadas. El uso de la energía eólica en diversas aplicaciones demanda el monitoreo de las variables clave que influyen en el proceso de la generación de energía. Es claro que para este tipo de energía la velocidad del viento es un parámetro sumamente importante para tomar en cuenta, el cual es capaz de medirse mediante el uso de un dispositivo llamado anemómetro. En el mercado se encuentran diferentes modelos de anemómetros. Sin embargo, a causa del gran costo monetario que estos tienen, el desarrollo y construcción de anemómetro de bajo costo, representa una opción atractiva. En este trabajo se presenta la programación en lenguaje C, utilizando el entorno de desarrollo integrado MikroC y la simulación vía Proteus 8 de un anemómetro digital, haciendo uso de un microcontrolador PIC18F4550 y un sensor SEN0170 del fabricante DFRobot.

 

I. Introducción

La situación mundial actual demanda el uso de energías alternas a las convencionales [1]. El uso de energías renovables, a saberse, biomasa, energía solar, energía eólica y energía hidráulica es mayormente visto en los sectores industrial y de transporte [2]. Es claro que para cualquier aplicación de este tipo de energías son necesarios dispositivos que monitoreen las variables primordiales del recurso natural que permita la generación de la energía como tal. Centrándonos en la generación de energía eólica, una variable digna de interés es la velocidad del viento [3], la cual se puede medir con el uso de un dispositivo llamado anemómetro. Existen diversos modelos de anemómetros en el mercado, lamentablemente tienen costos prohibitivos para la gran mayoría de personas, por lo que el desarrollo de uno resulta una alternativa por de más atractiva.

En este escrito se presenta la programación en lenguaje C y puesta en marcha mediante simulación vía Proteus 8 de un anemómetro digital, que utiliza un microcontrolador PIC18F4550 y un sensor SEN0170. Dicho lo anterior, lo que resta del trabajo se estructura de la siguiente manera, en la Sección 2 se describe el funcionamiento de la adquisición de datos y conexiones del sensor SEN0170, la Sección 3 trata de las generalidades técnicas del microcontrolador PIC18F4550, en la Sección 4 se presenta el código fuente en lenguaje C del anemómetro digital, la Sección 5 explica las conexiones y puesta en marcha vía simulación en el software Proteus 8 del dispositivo y finalmente en la Sección 6 se presentan las conclusiones.

2. El sensor SEN0170 en la adquisición de datos

El SEN0170 de la marca DFRobot es un instrumento con un diseño tipo rehilete que permite transformar la energía mecánica que se genera a partir del movimiento de sus copas por el estímulo de las corrientes de aire existentes en el medio, a energía eléctrica. En otras palabras, este dispositivo funciona bajo el principio de un generador de energía eléctrica.

 

Figura 1. Sensor SEN0170.

 

En su salida, el sensor nos brindará un voltaje de corriente directa que rondará entre los 0 y 5 volts, en proporción directa a la cantidad de revoluciones de su rotor.

La ficha técnica del proveedor está dada por [4] y se resume en el cuadro siguiente:

 

Figura 2. Ficha técnica del sensor SEN0170.

 

Las entradas y salidas del dispositivo se encuentran centralizadas en una interfaz de 4 conexiones, cada una con un fin en específico [4]. A continuación, se ilustra esto.

 

Figura 3. . Conexiones del sensor SEN017.

 

Como se observa en la figura anterior, las 4 conexiones poseen un color en particular que las distingue del resto. Los cables rojo y negro cumplen la función de alimentación del dispositivo, el primero recibiendo un voltaje de corriente directa y el segundo siendo conectado a tierra. Por otro lado, los cables azul y amarillo fungen como salidas del sensor, dando una señal de corriente y voltaje respectivamente.

3. El microcontrolador PIC18F4550

El PIC18F4550 es un chip desarrollado por la empresa Microchip y que pertenece a la familia de los microcontroladores PIC18 que se distinguen por su alto poder de cómputo, rendimiento a un precio económico y memoria de programa Flash de alta resistencia [5]. Dentro de sus principales características técnicas encontramos que cuenta con 40 pines seccionados en 5 puertos de entrada/salida, set de 83 instrucciones, convertidor analógico-digital de 10 bits, niveles de prioridad de interrupciones, 2 comparadores y 4 timers, entre otras. La lista completa de características técnicas la podemos consultar en la hoja de datos del proveedor [5].

Para fines de este trabajo, lo más importante a destacar es que en su pin 2 (RA0/AN0) cuenta con un convertidor analógico-digital que permitirá que el voltaje generado en la salida del SEN0170 se pueda interpretar y así considerarlo como una variable de la rutina principal del programa en lenguaje C.

 

Figura 4. . Microcontrolador PIC18F4550.

 

4. Implementación del anemómetro digital en lenguaje C

Haciendo uso del software MikroC, se realizó el programa que se muestra a continuación.

 

Figura 5. Código fuente en lenguaje C del anemómetro digital.

 

En esta primera parte del código se definen las conexiones del display LCD en donde se visualizan los resultados de la medición, las variables de la rutina “anemometro”, además de la función principal en donde se define la configuración de entrada-salida de los puertos y los registros involucrados en el uso del convertidor analógico-digital. Por último, se hace el llamado a la rutina “anemometro”.

 

Figura 6. Rutina “anemometro” en lenguaje C.

 

En la figura anterior se observa la rutina que contiene el funcionamiento del anemómetro digital. En esta se realiza la lectura e interpretación del voltaje de salida del SEN0170 mediante un factor de conversión. Así mismo, se muestra cada 2 segundos en el display LCD, la velocidad del viento en unidades del S.I., haciendo uso de la proporción entre niveles de voltaje y velocidad dada por el proveedor en [4]. Dicha formula se describe a continuación.

 

 

Velocidad=voltaje medido*6
     

5. Simulación en Proteus 8

Como resultado de la compilación del programa fuente en MikroC se generó un archivo en extensión “.hex”, el cual sirve para grabar el programa en el PIC18F4550.

En la figura siguiente se muestra la simulación del circuito con el archivo hexadecimal cargado en el microcontrolador, haciendo uso del software Proteus 8.

Figura 8. . Simulación del anemómetro digital en Proteus 8.

 

Para efectos prácticos de esta simulación el SEN0170 se sustituyó por una fuente de voltaje que es capaz de emular la señal de voltaje emitida por este sensor debido al estímulo de las corrientes de aire en sus copas.

6. Conclusión

La creación de un anemómetro digital haciendo uso del microcontrolador PIC18F4550 representa una opción atractiva por el costo-beneficio que representa su construcción comparada con la media de costos de los dispositivos similares presentes en el mercado. Por otro lado, el desarrollo y construcción de un anemómetro digital tiene una gran utilidad actualmente, debido a la cantidad significativa de proyectos e innovaciones en donde se hace uso de la energía eólica.

Referencias

  1. I. Dincer (2000). Renewable energy and sustainable development: A crucial review.Renewable Sustain. Energy Reviews web. vol. 4, no. 2, pp. 157–175, Jun. 2000, doi: 10.1016/S1364-0321(99)00011-8. [Online].
    Available: http://www.sciencedirect.com/ science/article/pii/S1364032199000118

  2. J. Twidell and T. Weir (2015). Renewable energy resources3rd ed. London, UK: Taylor & Francis, 2015.

  3. American Wind Energy Association. (2001). Título del artículo. Wind energy applications guideAccessed: Apr. 4, 2021.
    [Online]. Available: https://www.osti.gov/servlets/purl/836856

  4. DFRobot (2021). Wind Speed Sensor Voltage Type 0-5V SKU SEN0170-DFRobot. Accessed: May. 6, 2021. [Online].
    Available: https://wiki.dfrobot.com/Wind_Speed_Sensor_Voltage_Type_0-5V__SKU_SEN0170.

  5. Microchip (2006). “28/40/44-pin, high-performance, enhanced flash, USB microcontrollers with nanowatt technologyPIC18F2455/2550/4455/4550 datasheet2006. [Revised: May. 4, 2021].