// 22.11.4562 - Muhammad Guido Augusta
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
byte customChar1[] = {
B00000,
B00000,
B00000,
B00000,
B00000,
B00000,
B00011,
B00100
};
byte customChar2[] = {
B00001,
B00010,
B00100,
B00100,
B01110,
B01010,
B11111,
B01110
};
byte customChar3[] = {
B10000,
B01001,
B00110,
B00000,
B00000,
B00000,
B11000,
B00100
};
byte customChar4[] = {
B01000,
B10000,
B10010,
B10101,
B10010,
B10000,
B01000,
B00111
};
byte customChar5[] = {
B00000,
B00000,
B00000,
B00000,
B00000,
B01110,
B10001,
B00000
};
byte customChar6[] = {
B00010,
B00001,
B10101,
B00001,
B10101,
B00001,
B00010,
B11100
};
int sevenPins[] = {22,23,24,25,26,27,28,29};
const byte numbers[] = {
B10011001, // 4
B10010010, // 5
B10000010, // 6
B10100100, // 2
};
int i = 10;
int j = 0;
bool active = false;
void setup() {
// put your setup code here, to run once:
lcd.init();
lcd.backlight();
lcd.begin(16, 2);
lcd.createChar(0, customChar1);
lcd.createChar(1, customChar2);
lcd.createChar(2, customChar3);
lcd.createChar(3, customChar4);
lcd.createChar(4, customChar5);
lcd.createChar(5, customChar6);
for(int i = 0; i<9; i++){
pinMode(sevenPins[i], OUTPUT);
}
Serial.begin(9600);
Serial.println("Responsi: Muhammad Guido Augusta");
}
void loop() {
// put your main code here, to run repeatedly:
if (Serial.available() > 0) {
if (Serial.readStringUntil("begin")) {
while (true) {
for (int n = 0; n < 6; n++) {
if (n < 3) {
lcd.setCursor(n, 0);
lcd.write(n);
} else {
lcd.setCursor(n - 3, 1);
lcd.write(n);
}
}
if (i > -1) {
lcd.setCursor(4, 0);
lcd.print(" ");
lcd.setCursor(4, 0);
lcd.print(i);
} else {
i = 10;
lcd.setCursor(4, 0);
lcd.print(" ");
lcd.setCursor(4, 0);
lcd.print(i);
}
if(j < 4){
displayNumber(j);
}else{
j = 0;
displayNumber(j);
}
if (i > -1) {
Serial.print("Angka: ");
Serial.println(i);
} else {
i = 10;
Serial.print("Angka: ");
Serial.println(i);
}
lcd.setCursor(4, 1);
lcd.print("22.11.4562");
i -= 1;
j++;
delay(1000);
}
}
}
}
void displayNumber(int num) {
for (int i = 0; i < 8; i++) {
byte bit = bitRead(numbers[num], i);
digitalWrite(sevenPins[i], bit);
}
}