#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
void writeLcdColor(int R, int G, int B) {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("displaying");
lcd.setCursor(0, 1);
String text = String(R) + String(";") + String(G) + String(";") + String(G);
lcd.print(text.c_str());
}
const int led[3] = {12, 14, 27}; // R G B
void initLed() {
pinMode(led[0], OUTPUT);
pinMode(led[1], OUTPUT);
pinMode(led[2], OUTPUT);
digitalWrite(led[0], LOW);
digitalWrite(led[1], LOW);
digitalWrite(led[2], LOW);
}
void setLightRGBA(int R, int G, int B, float A) {
// led light intensity will be based on alpha arg
int R_alpha = R * A;
int G_alpha = G * A;
int B_alpha = B * A;
Serial.print(R_alpha);
Serial.print(";");
Serial.print(G_alpha);
Serial.print(";");
Serial.print(B_alpha);
Serial.println();
analogWrite(led[0], R_alpha);
analogWrite(led[1], G_alpha);
analogWrite(led[2], B_alpha);
// this is heavy to emulate
// writeLcdColor(R_alpha, G_alpha, B_alpha);
}
void setup() {
// Serial.begin(115200);
// init led
initLed();
// init lcd
lcd.init();
lcd.clear();
lcd.backlight();
// test
lcd.setCursor(0, 0);
lcd.print("displaying");
lcd.setCursor(0, 1);
lcd.print("123");
}
void loop() {
lcd.setCursor(1, 0);
lcd.print(".");
delay(250);
lcd.setCursor(0, 0);
lcd.print("o");
delay(250);
lcd.setCursor(0, 0);
lcd.print("O");
delay(250);
lcd.setCursor(0, 0);
lcd.print("o");
delay(250);
}