// Incluye las librerías necesarias
#include <LiquidCrystal.h> // Descomenta si estás usando una pantalla LCD
// Definiciones de pines
const int potPin = A0; // Pin del potenciómetro (simulación de consumo)
const int buzzerPin = 5; // Pin del buzzer
const int ledGreenPin = 3; // Pin del LED verde (bajo consumo)
const int ledRedPin = 4; // Pin del LED rojo (alto consumo)
// Umbral de consumo (ajustar según necesidad)
const float consumptionThreshold = 512.0; // Umbral de alerta (escala del potenciómetro)
void setup() {
Serial.begin(9600);
// Configura pines
pinMode(buzzerPin, OUTPUT);
pinMode(ledGreenPin, OUTPUT);
pinMode(ledRedPin, OUTPUT);
// Configura la pantalla LCD
//lcd.begin(16, 2); // Descomenta si estás usando una pantalla LCD
}
void loop() {
// Lee el valor del potenciómetro
int potValue = analogRead(potPin);
// Muestra el valor en el monitor serial
Serial.print("Consumo simulado: ");
Serial.print(potValue);
Serial.println(" (escala 0-1023)");
// Muestra los datos en la pantalla LCD (descomenta si se usa)
//lcd.clear();
//lcd.setCursor(0, 0);
//lcd.print("Consumo: ");
//lcd.print(potValue);
//lcd.print(" (escala 0-1023)");
// Control de alertas
if (potValue > consumptionThreshold) {
digitalWrite(buzzerPin, HIGH); // Enciende el buzzer
digitalWrite(ledRedPin, HIGH); // Enciende el LED rojo
digitalWrite(ledGreenPin, LOW); // Apaga el LED verde
} else {
digitalWrite(buzzerPin, LOW); // Apaga el buzzer
digitalWrite(ledRedPin, LOW); // Apaga el LED rojo
digitalWrite(ledGreenPin, HIGH); // Enciende el LED verde
}
delay(1000); // Espera 1 segundo antes de la siguiente lectura
}