El proyecto implica la creación de un voltímetro con Arduino y un display LCD I2C 16x2. Utilizando un divisor de voltaje, el sistema es capaz de medir voltajes de hasta 25V y mostrar la lectura con precisión en el display LCD. Esta solución ofrece una forma segura y efectiva de monitorear voltajes en un rango amplio utilizando componentes comunes y accesibles.
/*
Creado: Luis Alvarez (edualv1723@gmail.com)
https://alvelectronics.com
*/
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// Dirección del display LCD I2C
#define I2C_ADDR 0x27
// Definición del número de columnas y filas del LCD
#define LCD_COLS 16
#define LCD_ROWS 2
// Inicialización del objeto LCD
LiquidCrystal_I2C lcd(I2C_ADDR, LCD_COLS, LCD_ROWS);
// Define la entrada analógica
const int analogPin = A0;
void setup() {
// Inicializa el display LCD
lcd.init();
// Muestra un mensaje inicial en el display
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("Voltaje:");
}
void loop() {
// Lee el valor analógico (0-1023)
int analogValue = analogRead(analogPin);
// Convierte el valor analógico a voltaje (0-25V)
float voltage = analogValue * (25.0 / 1023.0);
// Muestra el voltaje en el display con la unidad "V"
lcd.setCursor(0, 1);
lcd.print(" "); // Borra el voltaje anterior
lcd.setCursor(0, 1);
lcd.print(voltage, 2); // Muestra el voltaje con 2 decimales
lcd.print(" V"); // Unidad de voltaje
delay(500);
}