Berikut adalah program counter menggunakan 7-segment display dengan Arduino. Program ini akan menampilkan angka dari 0 hingga 9 secara berurutan dan ditampilkan pada 7-segment display common cathode.
Komponen yang Dibutuhkan
- Arduino Uno (atau jenis lainnya).
- 7-segment display (common cathode).
- Resistor 220 Ohm (7 buah, untuk melindungi LED pada 7-segment).
- Kabel jumper.
- Breadboard.
Sebelum memulai, pahami 7-segment display. Setiap segmen dihubungkan ke pin Arduino untuk menyalakan LED:
Biasanya, pin segmen dihubungkan ke Arduino seperti ini:
- a → Pin 2
- b → Pin 3
- c → Pin 4
- d → Pin 5
- e → Pin 6
- f → Pin 7
- g → Pin 8
- Common Cathode (CC) → GND
- Sambungkan segmen a-g ke pin digital Arduino (2-8).
- Hubungkan resistor 220 Ohm ke setiap pin segmen.
- Hubungkan pin common cathode (CC) ke GND Arduino.
Program Arduino
// Definisi pin untuk setiap segmen (a-g) pada 7-segment
int segA = 2;
int segB = 3;
int segC = 4;
int segD = 5;
int segE = 6;
int segF = 7;
int segG = 8;
// Array untuk menyimpan pola angka 0-9 (LOW berarti segmen menyala)
byte angka[10][7] = {
{LOW, LOW, LOW, LOW, LOW, LOW, HIGH}, // 0
{HIGH, LOW, LOW, HIGH, HIGH, HIGH, HIGH}, // 1
{LOW, LOW, HIGH, LOW, LOW, HIGH, LOW}, // 2
{LOW, LOW, LOW, LOW, HIGH, HIGH, LOW}, // 3
{HIGH, LOW, LOW, HIGH, HIGH, LOW, LOW}, // 4
{LOW, HIGH, LOW, LOW, HIGH, LOW, LOW}, // 5
{LOW, HIGH, LOW, LOW, LOW, LOW, LOW}, // 6
{LOW, LOW, LOW, HIGH, HIGH, HIGH, HIGH}, // 7
{LOW, LOW, LOW, LOW, LOW, LOW, LOW}, // 8
{LOW, LOW, LOW, LOW, HIGH, LOW, LOW} // 9
};
// Fungsi untuk menampilkan angka di 7-segment
void tampilkanAngka(int num) {
digitalWrite(segA, angka[num][0]);
digitalWrite(segB, angka[num][1]);
digitalWrite(segC, angka[num][2]);
digitalWrite(segD, angka[num][3]);
digitalWrite(segE, angka[num][4]);
digitalWrite(segF, angka[num][5]);
digitalWrite(segG, angka[num][6]);
}
void setup() {
// Atur pin segmen sebagai output
pinMode(segA, OUTPUT);
pinMode(segB, OUTPUT);
pinMode(segC, OUTPUT);
pinMode(segD, OUTPUT);
pinMode(segE, OUTPUT);
pinMode(segF, OUTPUT);
pinMode(segG, OUTPUT);
}
void loop() {
// Loop angka 0-9
for (int i = 0; i <= 9; i++) {
tampilkanAngka(i); // Tampilkan angka pada 7-segment
delay(1000); // Tunda 1 detik sebelum ke angka berikutnya
}
}
Penjelasan Kode
- Array angka menyimpan pola segmen untuk angka 0–9.
- Setiap angka diwakili oleh 7 nilai (LOW/HIGH) untuk segmen a-g.
- LOW berarti segmen menyala pada 7-segment common cathode.
- Fungsi tampilkanAngka() menyalakan segmen sesuai pola angka.
- Loop for digunakan untuk menghitung dari 0 sampai 9, dengan jeda 1 detik antar angka.
Cara Kerja Alat
- Upload kode program ke Arduino menggunakan Arduino IDE.
- LED pada 7-segment akan menampilkan angka dari 0 hingga 9 secara berurutan.
- Angka akan berubah setiap 1 detik.