#include <LiquidCrystal_I2C.h>
#include <ESP32Servo.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
Servo redS, greenS, blueS;
const int redLPin = 17;
const int greenLPin = 16;
const int blueLPin = 4;
const int redSPin = 26;
const int greenSPin = 25;
const int blueSPin = 33;
const int redPPin = 12;
const int greenPPin = 14;
const int bluePPin = 27;
int red, green, blue;
void setup() {
Serial.begin(115200);
//lcd setup
lcd.init();
lcd.backlight();
lcd.setCursor(0, 1);
lcd.print("Davyd Tovstyi");
lcd.setCursor(0, 0);
lcd.print("RGB:0 ,0 ,0 .");
//servo setup
redS.attach(redSPin, 500, 2500);
greenS.attach(greenSPin, 500, 2500);
blueS.attach(blueSPin, 500, 2500);
redS.write(0);
blueS.write(0);
greenS.write(0);
//rgb pin setup
pinMode(redLPin, OUTPUT);
pinMode(blueLPin, OUTPUT);
pinMode(greenLPin, OUTPUT);
//potenciometrs setup
pinMode(redPPin, INPUT);
pinMode(bluePPin, INPUT);
pinMode(greenPPin, INPUT);
}
void loop() {
red = analogRead(redPPin)/16;
blue = analogRead(bluePPin)/16;
green = analogRead(greenPPin)/16;
//lcd output
lcd.setCursor(4, 0);
lcd.print(" ");
lcd.setCursor(4, 0);
lcd.print(red);
lcd.setCursor(8, 0);
lcd.print(" ");
lcd.setCursor(8, 0);
lcd.print(green);
lcd.setCursor(12, 0);
lcd.print(" ");
lcd.setCursor(12, 0);
lcd.print(blue);
//servo output
redS.write(red/1.4);
blueS.write(blue/1.4);
greenS.write(green/1.4);
//rbg output
analogWrite(redLPin, 255 - red);
analogWrite(blueLPin, 255 - blue);
analogWrite(greenLPin, 255 - green);
delay(10);
}