#include <LiquidCrystal.h>
const int POT_R_PIN = A0;
const int POT_G_PIN = A1;
const int POT_B_PIN = A2;
const int POT_BRIGHTNESS_PIN = A3;
const int LED_R_PIN = 3;
const int LED_G_PIN = 5;
const int LED_B_PIN = 6;
LiquidCrystal lcd(13, 12, 11, 10, 9, 8);
void setup() {
Serial.begin(115200);
lcd.begin(16, 2);
pinMode(LED_R_PIN, OUTPUT);
pinMode(LED_G_PIN, OUTPUT);
pinMode(LED_B_PIN, OUTPUT);
}
void loop() {
byte r = map(analogRead(POT_R_PIN), 0, 1023, 0, 255);
byte g = map(analogRead(POT_G_PIN), 0, 1023, 0, 255);
byte b = map(analogRead(POT_B_PIN), 0, 1023, 0, 255);
byte brightness = map(analogRead(POT_BRIGHTNESS_PIN), 0, 1023, 0, 255);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("RGB= ");
lcd.print(r);
lcd.print(",");
lcd.print(g);
lcd.print(",");
lcd.print(b);
lcd.setCursor(0,1);
lcd.print("Brightness: ");
lcd.print(brightness);
Serial.print("Brightness: ");
Serial.print(brightness);
Serial.print(" [R,G,B]={");
Serial.print(r);
Serial.print(", ");
Serial.print(g);
Serial.print(", ");
Serial.print(b);
Serial.print("} hex {0x");
Serial.print(r, HEX);
Serial.print(", 0x");
Serial.print(g, HEX);
Serial.print(", 0x");
Serial.print(b, HEX);
Serial.println("}");
r = (byte)(((uint16_t)r*brightness) / 255);
g = (byte)(((uint16_t)g*brightness) / 255);
b = (byte)(((uint16_t)b*brightness) / 255);
analogWrite(LED_R_PIN, r);
analogWrite(LED_G_PIN, g);
analogWrite(LED_B_PIN, b);
delay(200);
}