#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2); // Inicializar pantalla LCD con dirección I2C 0x27 y dimensiones de 2x16
const int dispositivoAC = 9;
const int dispositivoDC = 10;
void setup() {
Serial.begin(115200);
analogReference(INTERNAL);
pinMode(A0, INPUT);
pinMode(A1, INPUT);
pinMode(A2, INPUT);
pinMode(A3, INPUT);
pinMode(dispositivoAC, OUTPUT);
pinMode(dispositivoDC, OUTPUT);
lcd.begin(16, 2); // Iniciar la pantalla LCD
}
void loop() {
digitalWrite(dispositivoAC, HIGH); // Enciende el dispositivo AC
delay(1000); // Espera 1 segundo
digitalWrite(dispositivoAC, LOW); // Apaga el dispositivo AC
delay(1000); // Espera 1 segundo
digitalWrite(dispositivoDC, HIGH); // Enciende el dispositivo DC
delay(1000); // Espera 1 segundo
digitalWrite(dispositivoDC, LOW); // Apaga el dispositivo DC
delay(1000); // Espera 1 segundo
int sensorValueDC = analogRead(A0); // Lectura analógica del sensor de corriente DC
float voltajeSensorDC = sensorValueDC * (5.0 / 1023.0); // Voltaje del sensor DC (0-5V)
float corrienteDC = voltajeSensorDC * (5.0 / 1.0); // Corriente DC en Amperios
float voltajeDC = analogRead(A1) * (5.0 / 1023.0); // Voltaje DC en Volts
float potenciaDC = voltajeDC * corrienteDC; // Potencia DC en Watts
lcd.setCursor(0, 0); // Establecer posición del cursor en la primera línea
lcd.print("Corriente DC: ");
lcd.print(corrienteDC, 3);
lcd.print("A");
lcd.setCursor(0, 1); // Establecer posición del cursor en la segunda línea
lcd.print("Voltaje DC: ");
lcd.print(voltajeDC, 3);
lcd.print("V");
delay(1000);
int sensorValueAC = analogRead(A2); // Lectura analógica del sensor de corriente AC
float voltajeSensorAC = sensorValueAC * (5.0 / 1023.0); // Voltaje del sensor AC (0-5V)
float corrienteAC = voltajeSensorAC * (5.0 / 1.0); // Corriente AC en Amperios
float voltajeAC = analogRead(A3) * (5.0 / 1023.0); // Voltaje AC en Volts
float potenciaAC = voltajeAC * corrienteAC; // Potencia AC en Watts
lcd.setCursor(0, 0); // Establecer posición del cursor en la primera línea
lcd.print("Corriente AC: ");
lcd.print(corrienteAC, 3);
lcd.print("A");
lcd.setCursor(0, 1); // Establecer posición del cursor en la segunda línea
lcd.print("Voltaje AC: ");
lcd.print(voltajeAC, 3);
lcd.print("V");
delay(1000);
lcd.clear(); // Limpiar la pantalla LCD
lcd.setCursor(0, 0); // Establecer posición del cursor en la primera línea
lcd.print("Potencia DC: ");
lcd.print(potenciaDC, 3);
lcd.print("W");
lcd.setCursor(0, 1); // Establecer posición del cursor en la segunda línea
lcd.print("Potencia AC: ");
lcd.print(potenciaAC, 3);
lcd.print("W");
delay(1000);
}