// Definisi pin
#define UP_BUTTON_PIN 2
#define DOWN_BUTTON_PIN 3
// Pin untuk 7-segment display
const int segmentPins[7] = {4, 5, 6, 7, 8, 9, 10};
int counter = 0;
void setup() {
// Inisialisasi pin button sebagai input
pinMode(UP_BUTTON_PIN, INPUT_PULLUP);
pinMode(DOWN_BUTTON_PIN, INPUT_PULLUP);
// Inisialisasi pin segment sebagai output
for (int i = 0; i < 7; i++) {
pinMode(segmentPins[i], OUTPUT);
}
// Menampilkan nilai awal pada display
displayNumber(counter);
}
void loop() {
// Membaca status tombol UP
if (digitalRead(UP_BUTTON_PIN) == LOW) {
counter++;
if (counter > 9) counter = 0; // Reset jika lebih dari 9
displayNumber(counter);
delay(200); // Debounce delay
}
// Membaca status tombol DOWN
if (digitalRead(DOWN_BUTTON_PIN) == LOW) {
counter--;
if (counter < 0) counter = 9; // Reset jika kurang dari 0
displayNumber(counter);
delay(200); // Debounce delay
}
}
// Fungsi untuk menampilkan angka pada 7-segment display
void displayNumber(int num) {
byte digits[10][7] = {
{1,1,1,1,1,1,0}, // 0
{0,1,1,0,0,0,0}, // 1
{1,1,0,1,1,0,1}, // 2
{1,1,1,1,0,0,1}, // 3
{0,1,1,0,0,1,1}, // 4
{1,0,1,1,0,1,1}, // 5
{1,0,1,1,1,1,1}, // 6
{1,1,1,0,0,0,0}, // 7
{1,1,1,1,1,1,1}, // 8
{1,1,1,0,0,1,1} // 9
};
for (int i = 0; i < 7; i++) {
digitalWrite(segmentPins[i], digits[num][i]);
}
}