7-segment adalah komponen elektronika yang terdiri dari rangkaian LED yang disusun sedemikian rupa untuk dapat menampilkan angka 0-9. Sering sekali kita jumpai pada tempat-tempat umum maupun alat elektronik. Biasanya digunakan untuk menampilkan waktu, suhu, jumlah orang, nilai uang, dsb. Paling sering ditemukan pada jam digital. Mengapa disebut 7-segment? Karena setelah disusun sedemikian rupa, ternyata dibutuhkan 7 buah LED untuk dapat menampilkan angka 0-9. Namun sebenarnya pada komponen ini ada 8 LED. Satu LED lagi digunakan untuk menampilkan tanda koma. Biasanya digunakan pada angka pecahan.

Image

Gambar 1. Tampilan fisik 7-segment (Sumber: Wikipedia.com).

Untuk dapat memahami bagaimana cara menampilkan angka 0-9 dengan menggunakan 7-segment, anda harus memahami struktur dari 7-segment itu sendiri. Khususnya pada pin mana jika dialirkan listrik, LED sebelah mana yang akan menyala. Gambar di bawah ini adalah konfigurasi dari LED dan pin pada 7-segment.

Image

Gambar 2. Konfigurasi LED dan pin pada 7-segment (Sumber: elektroda.net).

Pin COM adalah pin di mana kaki LED semua bersatu (common). berdasarkan polaritas yang diberikan pada pin COM, 7-segment dibedakan menjadi 2, yaitu common anode dan common cathode. 7-segment common anode pada pin COM-nya diberikan polaritas positif, sedangkan 7-segment common cathode pada pin COM-nya diberikan polaritas negatif. Selain itu 7-segment juga memiliki ukuran yang berbeda-beda. Besarnya tegangan listrik yang diberikanpun bisa berbeda-beda pula. Saya pernah memiliki 7-segment ukuran 6 inchi dan tegangan yang dibutuhkan untuk menyalakannya adalah 12 volt. Tegangan yang beroperasi pada mikrokontrol hanya ada 2, yaitu 5 volt dan 3.3 volt.

Pada project kali ini, saya ingin menampilkan angka 0-9. Dimulai dari 0, tiap 1 detik naik ditambahkan 1 angka. Ketika sudah sampai angka 9, dikembalikan lagi ke angka 0, begitulah seterusnya. Adapun bahan yang digunakan pada project kali ini adalah :

  1. Arduino UNO R3
  2. Breadboard
  3. 7-segment common cathode 0.86 inchi
  4. Resistor 330 Ohm
  5. Kabel jumper secukupnya.

Rangkaian yang digunakan pada project ditampilkan pada gambar 3.

Image

Gambar 3. Skema rangkaian.

Image

Gambar 4. Project yang telah dijalankan.

 Ketika merangkai, cocokkan pin 7-segment dengan data di bawah ini :

  1. Pin A pada pin 7
  2. Pin B pada pin 8
  3. Pin C pada pin 9
  4. Pin D pada pin 10
  5. Pin E pada pin 11
  6. Pin F pada pin 12
  7. Pin G pada pin 13

Program yang di-upload ke mikrokontroller dapat dilihat kodenya di bawah ini.

int dA = 7;
int dB = 8;
int dC = 9;
int dD = 10;
int dE = 11;
int dF = 12;
int dG = 13;

void setup() {
pinMode(dA, OUTPUT);
pinMode(dB, OUTPUT);
pinMode(dC, OUTPUT);
pinMode(dD, OUTPUT);
pinMode(dE, OUTPUT);
pinMode(dF, OUTPUT);
pinMode(dG, OUTPUT);
}

void loop() {
for (int i = 0; i < 10; i++) {
showNumber(i);
delay(1000);
turnOff();
}
}

void turnOff()
{
digitalWrite(dA, LOW);
digitalWrite(dB, LOW);
digitalWrite(dC, LOW);
digitalWrite(dD, LOW);
digitalWrite(dE, LOW);
digitalWrite(dF, LOW);
digitalWrite(dG, LOW);
}

void showNumber(int n)
{
// LED A 7-segment
if (n != 1 && n != 4) {
digitalWrite(dA, HIGH);
}
// LED B 7-segment
if (n != 5 && n != 6) {
digitalWrite(dB, HIGH);
}
// LED C 7-segment
if (n != 2) {
digitalWrite(dC, HIGH);
}
// LED D 7-segment
if (n != 1 && n != 4 && n != 7) {
digitalWrite(dD, HIGH);
}
// LED E 7-segment
if (n == 0 || n == 2 || n == 6 || n == 8) {
digitalWrite(dE, HIGH);
}
// LED F 7-segment
if (n != 1 && n != 2 && n != 3 && n != 7) {
digitalWrite(dF, HIGH);
}
// LED G 7-segment
if (n != 0 && n != 1 && n != 7) {
digitalWrite(dG, HIGH);
}
}

Fungsi showNumber() digunakan untuk menampilkan angka hanya dengan memasukkan parameter angka yang ingin ditampilkan. Supaya otomatis, maka nilai i pada perulangan yang dimasukkan. Di bawah ini adalah tabel hubungan antara nyala LED pada 7-segment untuk membentuk masing-masing angka.

  0 1 2 3 4 5 6 7 8 9
LED A                    
LED B                    
LED C                    
LED D                    
LED E                    
LED F                    
LED G                    

Tabel 1. Kondisi nyala LED pada 7-segment pada masing-masing angka.

Caranya cukup simpel, gunakan perulangan untuk memproduksi angka 0-9. Fungsi turnOff() dibuat untuk memadamkan semua LED. Tapi padamnya LED ketika project dinyalakan tidak kelihatan sama sekali karena saking cepatnya clock mikrokontrol. Tapi di sini bukan untuk memadamkan LED kesannya, melainkan me-reset semua LED.

Sekian cerita tentang project kali ini. Semoga dapat bermanfaat. Terimakasih telah membaca tulisan ini. Tetap ikuti perkembangan terbaru tulisan dari lab mini Introvesia.