0% encontró este documento útil (0 votos)
5 vistas3 páginas

Arduino y LCD: Medición de Temperatura

Exam electronica 3

Cargado por

aksunamun13
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
5 vistas3 páginas

Arduino y LCD: Medición de Temperatura

Exam electronica 3

Cargado por

aksunamun13
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

EXAMEN

En cuanto a la alimentación del LCD, el pin VSS están


I. CONFIGURACIÓN ARDUINO conectados a tierra para estabilizar el circuito, mientras que
El circuito muestra un Arduino Uno conectado a un display el pin VDD recibe una fuente de 5V para asegurar el
LCD de 16x2 mediante un arreglo de pines digitales e incluye funcionamiento adecuado del display y VEE al
un potenciómetro (RV6) para controlar el contraste del LCD. potenciómetro. Esta configuración refleja un diseño
La conexión sigue un esquema típico para interfaces de LCD optimo optimizando la interacción entre el Arduino y el
esquema mostrado en Fig. 1. LCD LM016L.

• Componentes Principales: II. CÓDIGO ARDUINO


✓ Arduino Uno: Microcontrolador que actúa como el
cerebro del circuito, enviando señales al LCD. Una vez completadas las conexiones en el Arduino,
✓ LCD: Pantalla de cristal líquido de 16 caracteres por 2 comenzamos a crear el código diseñado para suministrar las
líneas, controlada por el Arduino. indicaciones al Arduino, facilitando la conversión de los valores
✓ Potenciómetro RV6: Utilizado para ajustar el de voltaje registrados en mediciones de temperatura es medir el
contraste del LCD voltaje de un sensor conectado a un pin analógico del Arduino
✓ Resistencias y voltaje: Una fuente de 5V para y convertirlo en una estimación de temperatura utilizando una
alimentar el circuito. tabla de calibración almacenada en memoria. Los datos se
muestran en tiempo real en una pantalla LCD, ofreciendo una
solución práctica para monitoreo ambiental o industrial

En cuanto a las librerías utilizadas, se emplea LiquidCrystal.h,


que proporciona funciones para controlar la pantalla LCD
mostradas en la Fig. 1, permitiendo su inicialización y la
escritura de texto, y avr/pgmspace.h, que facilita el
almacenamiento de datos en la memoria PROGMEM,
liberando RAM para otras operaciones. Para la configuración
de hardware, se definen los pines de conexión entre el Arduino
y la LCD: rs= 2 como pin de registro de selección, en Pin 3
como pin de habilitación, y d4=5, d5=6, d6=7, d7= 8 como
pines de datos. La instancia LiquidCrystal lcd(rs, en, d4, d5, d6,
d7) inicializa la interfaz de la pantalla.

Fig. 1 Conexiones Arduino

El diagrama detalla la conexión entre un Arduino Uno y


un LCD LM016L, estableciendo una interfaz completa
para el control y visualización de datos. Los pines digitales
del Arduino, específicamente en los pines 2,3,5,6,7 y 8, se
conectan directamente a los pines de datos del LCD,
correspondientes a RS, E, D4, D5, D6, D7
respectivamente, permitiendo la transferencia eficiente de
información entre el microcontrolador y la pantalla. Para el
control operativo del LCD, el pin 3 del Arduino se enlaza
al pin E del LCD y se vincula al pin para seleccionar entre
modo de comando o datos, encargado de habilitar los
pulsos de escritura; el pin 2 se conecta al pin RS para
gestionar la lectura o escritura; y el pin RW está conectado
a tierra. Fig. 2 Librerias del codigo
Además, el pin AREF del Arduino se integra a una
fuente de 5v. Realizando una conexión de un En la sección de tablas de calibración en el código se muestra
potenciómetro RV6 de 1k conectada a tierra, cuya salida se en la Figura 2. se utilizan dos arreglos almacenados en
dirige al pin VSS del LCD para ajustar el nivel de contraste PROGMEM para mapear voltajes a temperaturas:
de la pantalla de forma precisa. Se conecta a RV6, voltageTable, que contiene 353 valores de voltaje (en voltios)
completando el circuito de regulación del potenciómetro. correspondientes a temperaturas específicas, y tempTable, que

Ingeniería Eléctrica Industrial - UNAH


2

almacena las temperaturas asociadas (de -30°C a 30°C), con


tableSize = 353 definiendo el número de entradas en ambas
tablas, asegurando una cobertura completa del rango y
minimizando el uso de RAM para consultas rápidas. La función
setup() inicializa la LCD con [Link](16, 2), configurándola
como una pantalla de 16 columnas y 2 filas, y establece un
mensaje inicial ("V y Temp.") en la primera línea usando
[Link](0, 0) y [Link](). La función loop() ejecuta un
ciclo principal que incluye la lectura del sensor con 10
mediciones del pin analógico A0, calculando su promedio para
reducir el ruido eléctrico y convirtiendo el valor digital (0-1023)
a voltaje (0-5V) con la fórmula voltage = sensorValue * (5.0 /
1023.0); luego realiza una búsqueda de temperatura
comparando el voltaje medido con los valores en voltageTable
mediante una búsqueda lineal, seleccionando la temperatura
más cercana de tempTable basada en la diferencia mínima;
finalmente, visualiza el voltaje (con 3 decimales) y la
temperatura (con 1 decimal) en la segunda línea de la LCD
usando [Link](0, 1) y [Link](), introduciendo un
retardo de 500 ms con delay(500) para estabilizar las lecturas.

Fig. 4 Código Arduino

Entre las técnicas implementadas se encuentra el promediado


de lecturas, que reduce el impacto del ruido al promediar
múltiples muestras, y el uso de PROGMEM, que almacena
tablas de datos en memoria flash, preservando RAM para el
procesamiento, además de una búsqueda eficiente que evita
cálculos polinómicos complejos que podrían introducir errores
de redondeo. El código implementado Mostrado en las Figuras
2, Fig. 3, Fig,4 y Fig. 5 ofrece una solución robusta y precisa
para la medición de temperatura basada en voltaje, con un
diseño optimizado para entornos de bajo consumo.

Fig. 3 Datos de Tabla

Fig. 5 Código Arduino


En la Figura 5 mostramos una búsqueda lineal optimizada para
estimar la temperatura a partir de un voltaje medido, utilizando
"abs" para calcular la diferencia entre el voltaje y los valores de
"tableVoltage" almacenados en PROGMEM, mientras
"minDiff" identifica el valor más cercano, accediendo a
"tempTable" con "pgm_read" para obtener la temperatura
correspondiente. La visualización se realiza en la segunda línea

Ingeniería Eléctrica Industrial - UNAH


3

de la LCD con "[Link]" y "print" para mostrar "voltage"


y "temp", incorporando un "delay" de 500 ms para estabilizar
las lecturas. El término "rango fuera de rango" indica una
posible validación, reflejando un diseño eficiente que balancea
precisión y simplicidad en la conversión de datos.
Basado en las Figuras 2, 3, 4 y 5, este código Arduino para leer
temperatura emplea una medición del voltaje en un pin
analógico, procesada mediante promedios de 10 lecturas en la
función readVoltage para minimizar el ruido, y lo convierte en
temperatura usando regresiones polinómicas de grado 6
(evaluateRegTMinus y evaluateRegTPlus), con los resultados
visualizados en una LCD. Los autores defienden su diseño
destacando la validación de rangos que muestra mensajes como
"FUERA DE RANGO" si el voltaje excede los límites, y una
corrección manual de aproximadamente 0.99°C a 100°C para
ajustar la diferencia entre la temperatura real y la leída, basada
en observaciones empíricas. Reconocen limitaciones, como la
necesidad de una tabla de calibración más precisa y posibles
errores en extremos

Ingeniería Eléctrica Industrial - UNAH

También podría gustarte