// #include <LiquidCrystal_I2C.h>

//----------------define pin ESP8266-------------------------//
// #define LATCH_DIO D4
// #define CLK_DIO D7
// #define DATA_DIO D8
// #define LED D1
// #define BUZZER D3
// #define SW1 D5
// #define SW2 D6
// #define SW3 D0
// #define POT A0
//-----------------------------------------------------------//

//----------------define pin ESP32---------------------------//
#define LED 19
#define BUZZER 23
#define SW1 16
#define SW2 17
#define SW3 18
#define POT 0
#define DATA 25
#define LATCH 26
#define CLK 27
//-----------------------------------------------------------//

//-------------------define parameter LCD--------------------//
// #define I2C_ADDR 0x27
// #define LCD_COLUMNS 16
// #define LCD_LINES 2
//----------------------------------------------------------//

//-----------------variabel---------------------------------//
int s1 = 0;
int s2 = 0;
int s3 = 0;
int k1 = 0;
int k2 = 0;
int k3 = 0;
int menu = 0;
int data_adc = 0;

uint8_t arrayNoSegment[4] = {
  0b00011111,
  0b00101111,
  0b01001111,
  0b10001111
};
uint8_t arrayDataSegment[10] = {
	0b00000011,//0
	0b10011111,//1
	0b00100101,//2
	0b00001101,//3
	0b10011001,//4
	0b01001001,//5
	0b01000001,//6
	0b00011111,//7
	0b00000001,//8
	0b00001001//9
};

//----------------------------------------------------------//

void segment(int noSegment, int dataSegment){
  for(int i = 0; i < 8; i++){
    digitalWrite(DATA, (arrayDataSegment[dataSegment] >> i) &1 );

    digitalWrite(CLK, 0);
    digitalWrite(CLK, 1);
  }

  for(int i = 0; i < 8; i++){
    digitalWrite(DATA, (arrayNoSegment[noSegment - 1] >> i) &1 );

    digitalWrite(CLK, 0);
    digitalWrite(CLK, 1);
  }
  digitalWrite(LATCH, 1);
  digitalWrite(LATCH, 0);
}

void setup() {
  pinMode(DATA, OUTPUT);
  pinMode(CLK, OUTPUT);
  pinMode(LATCH, OUTPUT);
}

void loop() {
  segment(1, 4);
  segment(2, 3);
  segment(3, 2);
  // segment(4, 1);
}
esp:0
esp:2
esp:4
esp:5
esp:12
esp:13
esp:14
esp:15
esp:16
esp:17
esp:18
esp:19
esp:21
esp:22
esp:23
esp:25
esp:26
esp:27
esp:32
esp:33
esp:34
esp:35
esp:3V3
esp:EN
esp:VP
esp:VN
esp:GND.1
esp:D2
esp:D3
esp:CMD
esp:5V
esp:GND.2
esp:TX
esp:RX
esp:GND.3
esp:D1
esp:D0
esp:CLK
led1:A
led1:C
btn1:1.l
btn1:2.l
btn1:1.r
btn1:2.r
btn2:1.l
btn2:2.l
btn2:1.r
btn2:2.r
btn3:1.l
btn3:2.l
btn3:1.r
btn3:2.r
sevseg1:A
sevseg1:B
sevseg1:C
sevseg1:D
sevseg1:E
sevseg1:F
sevseg1:G
sevseg1:DP
sevseg1:DIG1
sevseg1:DIG2
sevseg1:DIG3
sevseg1:DIG4
sevseg1:COM
sevseg1:CLN
bz1:1
bz1:2
pot1:GND
pot1:SIG
pot1:VCC
r1:1
r1:2
r2:1
r2:2
r3:1
r3:2
r4:1
r4:2
lcd1:GND
lcd1:VCC
lcd1:SDA
lcd1:SCL
74HC595
sr1:Q1
sr1:Q2
sr1:Q3
sr1:Q4
sr1:Q5
sr1:Q6
sr1:Q7
sr1:GND
sr1:Q7S
sr1:MR
sr1:SHCP
sr1:STCP
sr1:OE
sr1:DS
sr1:Q0
sr1:VCC
74HC595
sr2:Q1
sr2:Q2
sr2:Q3
sr2:Q4
sr2:Q5
sr2:Q6
sr2:Q7
sr2:GND
sr2:Q7S
sr2:MR
sr2:SHCP
sr2:STCP
sr2:OE
sr2:DS
sr2:Q0
sr2:VCC