//Library ----------------------------------------------
#include <LiquidCrystal_I2C.h>
#include <Wire.h>
//------------------------------------------------------

//Define Pin -------------------------------------------
#define pinAdc A0
#define pinSw1 12
#define pinSw2 11
#define pinSw3 10
#define pinSw4 9
#define pinClock 6
#define pinData 5
#define pinLatch 4
#define pinClockLed 3
#define pinDataLed 2
#define pinLatchLed 13
//------------------------------------------------------

//Fungsi Macro -----------------------------------------
#define led1(x) digitalWrite(pinLed1, x)
#define led2(x) digitalWrite(pinLed2, x)
#define led3(x) digitalWrite(pinLed3, x)
#define led4(x) digitalWrite(pinLed4, x)

#define clockSeg(x) digitalWrite(pinClock, x)
#define dataSeg(x) digitalWrite(pinData, x)
#define latchSeg(x) digitalWrite(pinLatch, x)

#define clockLed(x) digitalWrite(pinClockLed, x)
#define dataLed(x) digitalWrite(pinDataLed, x)
#define latchLed(x) digitalWrite(pinLatchLed, x)

#define sw1 digitalRead(pinSw1)
#define sw2 digitalRead(pinSw2)
#define sw3 digitalRead(pinSw3)
#define sw4 digitalRead(pinSw4)
//------------------------------------------------------

//Set alamat I2C dan ukuran LCD ------------------------
LiquidCrystal_I2C lcd(0x27,16,2);
//------------------------------------------------------

//Variabel ---------------------------------------------
uint16_t dataADC = 0;

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

void setup(){
  pinMode(pinAdc, INPUT);
  pinMode(pinSw1, INPUT);
  pinMode(pinSw2, INPUT);
  pinMode(pinSw3, INPUT);
  pinMode(pinSw4, INPUT);
  pinMode(pinClock, OUTPUT);
  pinMode(pinData, OUTPUT);
  pinMode(pinLatch, OUTPUT);
  pinMode(pinClockLed, OUTPUT);
  pinMode(pinDataLed, OUTPUT);
  pinMode(pinLatchLed, OUTPUT);
  Serial.begin(9600);
  lcd.init();
  lcd.backlight();
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print("LKS 2025");
  lcd.setCursor(0,1);
  lcd.print("ELECTRONICS");
  delay(2000);
  lcd.clear();
}

void loop(){
  dataADC = analogRead(pinAdc);
  lcd.setCursor(0,0);
  lcd.print("Putar Potensio  ");
  lcd.setCursor(0,1);
  lcd.print("Nilai ADC :");
  lcd.print(dataADC);
  lcd.print(" ");
}


74HC595
74HC595
SW1
SW2
SW3
SW4
LED1
LED2
LED3
LED4
LED5
LED6
LED7
LED8