#include <Wire.h>
#include <LiquidCrystal_I2C.h>
const int lcdAddress = 0x27;
const int lcdColumns = 16;
const int lcdRows = 2;
LiquidCrystal_I2C lcd(lcdAddress, lcdColumns, lcdRows);
const int PotRojo = A0; // Pin analógico para el potenciometro rojo
const int rojo = 8; // Pin para el LED rojo
const int verde = 9; // Pin para el LED verde
const int botonIncremento = 7; // Pin para el botón de incremento
const int botonDecremento = 6; // Pin para el botón de decremento
int PotVerde = 128; // Intensidad luminosa del LED verde
void setup() {
// primer mensaje de la LCD
lcd.init();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("Pot Rojo y Verde");
// inicio de los pines de los LEDS
pinMode(rojo, OUTPUT);
pinMode(verde, OUTPUT);
// Inicializa los pines de los botones
pinMode(botonIncremento, INPUT_PULLUP);
pinMode(botonDecremento, INPUT_PULLUP);
Serial.begin(9600); // Inicializa la comunicación UART a 9600 baudios
}
void loop() {
float voltajePot1 = analogRead(PotRojo) / 1023.0 * 5.0;
// Ajusta la escala para el potenciómetro rojo en Arduino
int ValorRojoArduino = map(voltajePot1 * 100, 0, 330, 0, 254); // Ajusta la escala
// Leer los botones para el control de verde
if (digitalRead(botonIncremento) == LOW) {
// Incrementar la intensidad del LED verde
if (PotVerde < 255) {
PotVerde++;
}
} else if (digitalRead(botonDecremento) == LOW) {
// Decrementar la intensidad del LED verde
if (PotVerde > 0) {
PotVerde--;
}
}
analogWrite(rojo, ValorRojoArduino); // Control del LED rojo
analogWrite(verde, PotVerde); // Control del LED verde
// Muestra el valor del potenciómetro rojo en la LCD
lcd.setCursor(0, 1);
lcd.print("Rojo: ");
lcd.print(ValorRojoArduino);
// Muestra el valor de la intensidad luminosa en la LCD
lcd.setCursor(0, 2);
lcd.print("Verde: ");
lcd.print(PotVerde);
// Envía los datos por UART a la computadora
Serial.print("Rojo: ");
Serial.println(ValorRojoArduino);
Serial.print("Verde: ");
Serial.println(PotVerde);
delay(100);
}