#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
#define DP 4
#define A 2
#define B 3
#define C 5
#define D 52
#define E 50
#define F 22
#define G 23
byte zero[8] = {
0b00000,
0b00000,
0b00000,
0b00000,
0b00000,
0b00000,
0b00000,
0b00011
};
byte one[8] = {
0b00000,
0b01100,
0b10010,
0b10010,
0b10001,
0b01000,
0b11100,
0b00000
};
byte two[8] = {
0b00000,
0b00000,
0b00000,
0b00000,
0b00000,
0b10000,
0b01000,
0b00110
};
byte three[8] = {
0b00100,
0b00011,
0b00100,
0b00011,
0b00100,
0b00011,
0b00010,
0b00001
};
byte four[8] = {
0b00000,
0b11000,
0b00000,
0b11000,
0b00000,
0b11000,
0b00001,
0b11110
};
byte five[8] = {
0b00010,
0b00010,
0b00010,
0b00010,
0b00010,
0b01110,
0b10000,
0b00000
};
void setup() {
// put your setup code here, to run once:
// setup
Serial.begin(9600);
Serial.println("Mikrokontroller : 22.11.4849");
lcd.init();
lcd.backlight();
//end setup
// Seveg
pinMode(A, OUTPUT);
pinMode(B, OUTPUT);
pinMode(C, OUTPUT);
pinMode(D, OUTPUT);
pinMode(E, OUTPUT);
pinMode(F, OUTPUT);
pinMode(G, OUTPUT);
pinMode(DP, OUTPUT);
// end sevseg
// lcd
lcd.createChar(0, zero);
lcd.createChar(1, one);
lcd.createChar(2, two);
lcd.createChar(3, three);
lcd.createChar(4, four);
lcd.createChar(5, five);
//end lcd
}
void nim() {
// 4
pinMode(A, LOW);
pinMode(B, HIGH);
pinMode(C, HIGH);
pinMode(D, LOW);
pinMode(E, LOW);
pinMode(F, HIGH);
pinMode(G, HIGH);
pinMode(DP, LOW);
delay(500);
// 8
pinMode(A, HIGH);
pinMode(B, HIGH);
pinMode(C, HIGH);
pinMode(D, HIGH);
pinMode(E, HIGH);
pinMode(F, HIGH);
pinMode(G, HIGH);
pinMode(DP, LOW);
delay(500);
// 4
pinMode(A, LOW);
pinMode(B, HIGH);
pinMode(C, HIGH);
pinMode(D, LOW);
pinMode(E, LOW);
pinMode(F, HIGH);
pinMode(G, HIGH);
pinMode(DP, LOW);
delay(500);
// 9
pinMode(A, HIGH);
pinMode(B, HIGH);
pinMode(C, HIGH);
pinMode(D, HIGH);
pinMode(E, LOW);
pinMode(F, HIGH);
pinMode(G, HIGH);
pinMode(DP, LOW);
delay(500);
}
void lcdI2C(int x) {
//lcd
lcd.setCursor(0, 0);
lcd.write((byte)0);
lcd.setCursor(1, 0);
lcd.write((byte)1);
lcd.setCursor(2, 0);
lcd.write((byte)2);
lcd.setCursor(0, 1);
lcd.write((byte)3);
lcd.setCursor(1, 1);
lcd.write((byte)4);
lcd.setCursor(2, 1);
lcd.write((byte)5);
lcd.setCursor(4, 0);
lcd.print("LINGGAR");
lcd.setCursor(4, 1);
lcd.print(x);
delay(500);
}
void loop() {
// put your main code here, to run repeatedly:
if(Serial.available()) {
String serialStart = Serial.readStringUntil('\n');
Serial.print("command : ");
Serial.println(serialStart);
if(serialStart == "start") {
for(int x = 0; x <= 10; x++) {
// sevseg
nim();
// lcd & serial
Serial.println(x);
lcdI2C(x);
}
}
}
}