//Implemente el montaje según el siguiente código si tiene otra pantalla modifique el código
//realice el montaje con el siguiente código
#include <LiquidCrystal.h> // Constantes para definir los pines de conexión con la pantalla LCD
#define rs 25
#define en
#define d4 5
#define d5 4
#define d6 2
#define d7 23
// Pines para el pulsador pull-up y pull-down
#define pulsadorPullUpPin 15
#define pulsadorPullDownPin 18
// Pines para el control del vümetro (LEDs)
const int ledPins[] = { 32, 33, 26, 27, 14, 13 }; // Ejemplo de pines, puedes modificarlos según tu configuración
const int numLEDs = sizeof(ledPins) / sizeof(ledPins[0]);
// Pin para controlar el motor
const int motorPin = 21;
// Variables globales
float voltaje = 0.0;
int vumetro = 0;
// Objeto de la librería para controlar la pantalla LCD
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
void setup() { // Configuración de la pantalla LCD
lcd.begin(16, 2); // Especifica el tamaño de tu pantalla LCD (16x2)
lcd.print("Voltaje: ");
// Configuración de los pines de los pulsadores
pinMode(pulsadorPullUpPin, INPUT_PULLUP);
pinMode(pulsadorPullDownPin, INPUT_PULLUP); // Configuración de los pines de los LEDs
for (int i = 0; i < numLEDs; i++)
{ pinMode(ledPins[i], OUTPUT); }
// Configuración del pin del motor
pinMode(motorPin, OUTPUT);
}
void loop() { // Lectura del voltaje
int lectura = analogRead(34); // Pin A3 como ejemplo, debes cambiarlo según tu configuración
voltaje = (lectura * 3.3) / 4095; // Convertir lectura a voltaje (0-5V)
// Actualizar la pantalla LCD con el voltaje
lcd.setCursor(9, 0); // Posición del cursor en la pantalla
lcd.print(voltaje, 2); // Imprimir el voltaje con dos decimales
// Actualizar el vümetro (LEDs)
vumetro = map(lectura, 0, 4095, 0, numLEDs);
for (int i = 0; i < numLEDs; i++) {
if (i < vumetro)
{
digitalWrite(ledPins[i], HIGH); // Encender LED correspondiente
}
else
{
digitalWrite(ledPins[i], LOW);
// Apagar LED correspondiente
}
}
// Controlar el motor y mostrar el estado en la pantalla LCD
if (digitalRead(pulsadorPullUpPin) == LOW)
{ // Pulsador pull-up presionado
digitalWrite(motorPin, HIGH); // Encender el motor
lcd.setCursor(0, 1); // Posición del cursor en la segunda línea de la pantalla
lcd.print("Motor encendido ");
}
else if (digitalRead(pulsadorPullDownPin) == HIGH)
{
// Pulsador pull-down presionado
digitalWrite(motorPin, LOW); // Apagar el motor
lcd.setCursor(0, 1); // Posición del cursor en la segunda línea de la pantalla
lcd.print("Motor apagado ");
}
else
{
lcd.setCursor(0, 1); // Posición del cursor en la segunda línea de la pantalla
lcd.print(" "); // Borrar el texto anterior
}
}