#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// Pin definitions for RGB LED
const int pinR = 3;
const int pinG = 5;
const int pinB = 6;
// Potentiometer pins
const int potR = A0;
const int potG = A1;
const int potB = A2;
// Initialize the LCD, set the address to 0x27 for a 16x2 LCD
LiquidCrystal_I2C lcd(0x27, 20, 4);
void setup() {
// Initialize serial communication
Serial.begin(9600);
// Set pin modes for RGB LED
pinMode(pinR, OUTPUT);
pinMode(pinG, OUTPUT);
pinMode(pinB, OUTPUT);
// Set pin modes for potentiometers
pinMode(potR, INPUT);
pinMode(potG, INPUT);
pinMode(potB, INPUT);
// Initialize the LCD
lcd.begin(20, 4); // Specify columns and rows
lcd.backlight();
}
int readPot(int pin) {
return map(analogRead(pin), 0, 1023, 0, 255);
}
void loop() {
// Read potentiometer values
int valueR = readPot(potR);
int valueG = readPot(potG);
int valueB = readPot(potB);
// Write RGB values to the LED
analogWrite(pinR, valueR);
analogWrite(pinG, valueG);
analogWrite(pinB, valueB);
// Print RGB values to the LCD
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("R: ");
lcd.print(valueR);
lcd.print(" G: ");
lcd.print(valueG);
lcd.setCursor(0, 1);
lcd.print("B: ");
lcd.print(valueB);
// Print RGB values to serial monitor
Serial.print("R: ");
Serial.print(valueR);
Serial.print(" G: ");
Serial.print(valueG);
Serial.print(" B: ");
Serial.println(valueB);
// Delay for a short period to avoid rapid updates
delay(500);
}
uno:A5.2
uno:A4.2
uno:AREF
uno:GND.1
uno:13
uno:12
uno:11
uno:10
uno:9
uno:8
uno:7
uno:6
uno:5
uno:4
uno:3
uno:2
uno:1
uno:0
uno:IOREF
uno:RESET
uno:3.3V
uno:5V
uno:GND.2
uno:GND.3
uno:VIN
uno:A0
uno:A1
uno:A2
uno:A3
uno:A4
uno:A5
led1:A
led1:C
led2:A
led2:C
led3:A
led3:C
rgb1:R
rgb1:COM
rgb1:G
rgb1:B
pot1:VCC
pot1:SIG
pot1:GND
pot2:VCC
pot2:SIG
pot2:GND
pot3:VCC
pot3:SIG
pot3:GND
lcd1:GND
lcd1:VCC
lcd1:SDA
lcd1:SCL