#include <LiquidCrystal_I2C.h>
#define PIN_LED 6
#define PIN_POT A0
//LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
LiquidCrystal_I2C lcd(0x27, 16, 2);
byte l1[8] = { B00000, B00000, B00000, B00000, B00000, B00000, B00000, B11111,};
byte l2[8] = { B00000, B00000, B00000, B00000, B00000, B00000, B11111, B11111,};
byte l3[8] = { B00000, B00000, B00000, B00000, B00000, B11111, B11111, B11111,};
byte l4[8] = { B00000, B00000, B00000, B00000, B11111, B11111, B11111, B11111,};
byte l5[8] = { B00000, B00000, B00000, B11111, B11111, B11111, B11111, B11111,};
byte l6[8] = { B00000, B00000, B11111, B11111, B11111, B11111, B11111, B11111,};
byte l7[8] = { B00000, B11111, B11111, B11111, B11111, B11111, B11111, B11111,};
byte l8[8] = { B11111, B11111, B11111, B11111, B11111, B11111, B11111, B11111,};
void setup() {
pinMode(PIN_LED, OUTPUT);
pinMode(PIN_POT, INPUT);
Serial.begin(9600);
lcd.begin(16, 2);
lcd.createChar(0, l1);
lcd.createChar(1, l2);
lcd.createChar(2, l3);
lcd.createChar(3, l4);
lcd.createChar(4, l5);
lcd.createChar(5, l6);
lcd.createChar(6, l7);
lcd.createChar(7, l8);
lcd.backlight();
lcd.setCursor(0,0);
for (byte i= 0; i<8;i++) {
delay(100);
lcd.write(byte(i));
}delay(100);
lcd.setCursor(0,1);
lcd.print("test");
delay(1000);
lcd.clear();
}
void loop() {
static int potWaarde = 0;
potWaarde = getPotWaarde();
//Serial.println(potWaarde);
updateDisplay(potWaarde);
updateLed(potWaarde);
}
int getPotWaarde(){
return map(analogRead(PIN_POT),0,1023,0,254);
}
void updateLed(int potWaarde){
analogWrite(PIN_LED,potWaarde);
}
void updateDisplay(int potWaarde){
static byte blok;
//lcd.clear();
lcd.print(potWaarde);
delay(100);
blok = map (potWaarde,0,254,0,16);
lcd.setCursor(0,1);
for (int i= 0; i < blok; i++){
lcd.write(byte(255));
}
for (int i= 0; i < 16; i++){
lcd.write(byte(" "));
}
}