#include <LiquidCrystal_I2C.h>
#define I2C_ADDR 0x27
#define LCD_COLUMNS 16
#define LCD_LINES 2
int red = 6;
int green = 5;
int blue = 3;
int redFade = 0;
int greenFade = 0;
int blueFade = 0;
String redStr = "";
String greenStr = "";
String blueStr = "";
LiquidCrystal_I2C lcd (I2C_ADDR, LCD_COLUMNS, LCD_LINES);
void setup() {
lcd.init();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("*LED FADER v1.0*");
delay(2000);
lcd.setCursor(0, 0);
lcd.print("RED GRN BLU ");
}
void loop() {
analogWrite(red, redFade);
analogWrite(green, greenFade);
analogWrite(blue, blueFade);
redFade = (analogRead (A0)/4) ;
greenFade = (analogRead (A1)/4);
blueFade = (analogRead (A2)/4);
if (redStr.length() == 1){
redStr = " " + redStr;
}
else if (redStr.length() == 2){
redStr = " " + redStr;
}
if (greenStr.length() == 1){
greenStr = " " + greenStr;
}
else if (greenStr.length() == 2){
greenStr = " " + greenStr;
}
if (blueStr.length() == 1){
blueStr = " " + blueStr;
}
else if (blueStr.length() == 2){
blueStr = " " + blueStr;
}
lcd.setCursor(0, 1);
lcd.print(redFade);
lcd.setCursor(6, 1);
lcd.print(greenFade);
lcd.setCursor(12, 1);
lcd.print(blueFade);
}
//^^^^^^^^^^^^^^^^^^^^^^^FUNCTIONS BELOW^^^^^^^^^^^^^^^^^^^^^^^^
//^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
// FUNCTION HEADER
// NAME : padThree
// INPUTS : integer
// RETUENS : Stirng
// Desc : Reads in int, truns it to String, and pads it into 3
//^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
String padThree ( int val) {
String stringVal = String (val);
if (stringVal.length() == 1) {
stringVal = " " + stringVal;
}
else if (stringVal.length() == 2) {
stringVal = " " + stringVal;
}// end if()
return stringVal;
}// end pad three
//^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^