#include "Display.h"
#include "SPI.h"
#define LCD_BUTTON_LEFT A4
#define LCD_BUTTON_RIGHT A5
const PROGMEM byte qrCode [] = {
0xFF, 0xFF, 0xFF, 0x07, 0x07, 0x07, 0xC7, 0xC7, 0xC7, 0xC7, 0xC7, 0xC7, 0xC7, 0xC7, 0xC7, 0x07,
0x07, 0x07, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x38, 0x38, 0x38, 0xC7, 0xC7, 0xC7, 0x00, 0x00,
0x00, 0x38, 0x38, 0x38, 0x07, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x07, 0x07,
0x07, 0xC7, 0xC7, 0xC7, 0xC7, 0xC7, 0xC7, 0xC7, 0xC7, 0xC7, 0x07, 0x07, 0x07, 0xFF, 0xFF, 0xFF,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x00,
0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x8E, 0x8E, 0x8E, 0x81, 0x81, 0x81, 0xF0, 0xF0,
0xF0, 0x7E, 0x7E, 0x7E, 0xF0, 0xF0, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00,
0x00, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x80, 0x40, 0x20, 0xE8, 0xE0, 0xC0, 0x80, 0x10, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x1F, 0x1F, 0x1F, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C,
0x1C, 0x1C, 0x1F, 0x1F, 0x1F, 0x00, 0x00, 0x00, 0x1F, 0x1F, 0x1F, 0x03, 0x03, 0x03, 0xFF, 0xFF,
0xFF, 0xE0, 0xE0, 0xE0, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x1F, 0x1F, 0x1C, 0x1C,
0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1F, 0x1F, 0x1F,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x10, 0x03, 0x04, 0x08, 0x2F, 0x0F, 0x07, 0x03, 0x10, 0x01,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x07, 0x07, 0x07, 0x3F, 0x3F, 0x3F, 0xFF, 0xFF, 0xFF, 0x07, 0x07, 0x07, 0x3F, 0x3F, 0x3F, 0x38,
0x38, 0x38, 0xC7, 0xC7, 0xC7, 0x07, 0x07, 0x07, 0xFF, 0xFF, 0xFF, 0x07, 0x07, 0x07, 0x38, 0x38,
0x38, 0xC0, 0xC0, 0xC0, 0x3F, 0x3F, 0x3F, 0xC7, 0xC7, 0xC7, 0xC7, 0xC0, 0xC0, 0xC0, 0x07, 0x07,
0x07, 0x38, 0x38, 0x38, 0xC7, 0xC7, 0xC7, 0xC0, 0xC0, 0xC0, 0xC7, 0xC7, 0xC7, 0x38, 0x38, 0x38,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0E, 0x0E, 0x0E, 0x00, 0x00, 0x00, 0x0F, 0x0F, 0x0F, 0x70, 0x70, 0x70, 0x0E, 0x0E, 0x0E, 0x0E,
0x0E, 0x0E, 0x71, 0x71, 0x71, 0x0E, 0x0E, 0x0E, 0x81, 0x81, 0x81, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE,
0xFE, 0x71, 0x71, 0x71, 0x80, 0x80, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0x71, 0x71, 0x71, 0x70, 0x70,
0x70, 0xF0, 0xF0, 0xF0, 0x8F, 0x8F, 0x8F, 0x0F, 0x0F, 0x0F, 0xF1, 0xF1, 0xF1, 0x80, 0x80, 0x80,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xF8, 0xF8, 0xF8, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38,
0x38, 0x38, 0xF8, 0xF8, 0xF8, 0x00, 0x00, 0x00, 0x3F, 0x3F, 0x3F, 0xFF, 0xFF, 0xFF, 0x07, 0x07,
0x07, 0xC0, 0xC0, 0xC0, 0x3F, 0x3F, 0x3F, 0xC7, 0xC7, 0xC7, 0xC7, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xC7, 0xC7, 0xC7, 0xC7, 0xC7, 0xC7, 0xC0, 0xC0, 0xC0, 0x3F, 0x3F, 0x3F, 0x07, 0x07, 0x07,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x18, 0x18, 0xF8, 0xF8, 0x18, 0x18, 0x00, 0xF8, 0xF8, 0x00, 0xF8, 0xF8, 0x18, 0x18, 0xF8,
0xF8, 0x00, 0x78, 0x78, 0xE0, 0xE0, 0x78, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0x00,
0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFE, 0xFE, 0xFE, 0xF1, 0xF1, 0xF1, 0x80, 0x80,
0x80, 0xF1, 0xF1, 0xF1, 0x8E, 0x8E, 0x8E, 0xF1, 0xF1, 0xF1, 0xF1, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E,
0x0E, 0x71, 0x71, 0x71, 0x8F, 0x8F, 0x8F, 0x81, 0x81, 0x81, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E, 0x0E,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x10, 0x1D, 0x05, 0x00, 0x05, 0x19, 0x04, 0x00, 0x11,
0x1D, 0x04, 0x00, 0x04, 0x1D, 0x05, 0x00, 0x1C, 0x1C, 0x15, 0x00, 0x1C, 0x0C, 0x1C, 0x00, 0x10,
0x1C, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xFF, 0xFF, 0xFF, 0xE0, 0xE0, 0xE0, 0xE3, 0xE3, 0xE3, 0xE3, 0xE3, 0xE3, 0xE3, 0xE3, 0xE3, 0xE0,
0xE0, 0xE0, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0xE0, 0xE0, 0xE0, 0x1C, 0x1C,
0x1C, 0xFC, 0xFC, 0xFC, 0x03, 0x03, 0x03, 0x1F, 0x1F, 0x1F, 0xE0, 0xE0, 0xE0, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
Display lcd = Display();
int contrast = 18;
void setup() {
pinMode(LCD_BUTTON_LEFT, INPUT);
digitalWrite(LCD_BUTTON_LEFT, HIGH);
pinMode(LCD_BUTTON_RIGHT, INPUT);
digitalWrite(LCD_BUTTON_RIGHT, HIGH);
lcd.init(contrast);
setContrast();
}
void loop() {
if (!digitalRead(LCD_BUTTON_LEFT) && contrast > 0) {
contrast--;
setContrast();
}
if (!digitalRead(LCD_BUTTON_RIGHT) && contrast < 63) {
contrast++;
setContrast();
}
delay(50);
}
void setContrast() {
char buffer[50];
lcd.writeCommand(0x81);
lcd.writeCommand(contrast);
sprintf(buffer, "%d", contrast);
lcd.clearVideoBuffer();
lcd.drawBitmap(0, 0, 128, 64, qrCode);
lcd.drawString(100, 13, buffer);
lcd.show();
}