Mengontrol 3 Digit LED 7 Segment Menggunakan Arduino


Mengontrol 3 Digit LED Seven Segment dengan Arduino - SobatKreatif

Salam hangat sobat-sobat kreatif Indonesia! Terima Kasih telah berkunjung ke blog Kami. Untuk bahasan kali ini, Kita akan mencoba membuat sketch (kode program) untuk mengontrol LED Seven-Segment menggunakan Arduino.

OK, langsung saja ya! Berikut kodenya:

/*-------------------------------------------------------------------------------
Sketch      : Kontrol LED 3 Digit 7 Segment
Creator     : Muhammad Ikhsan
Site        : https://sobatkreatif.wordpress.com
Description : Mengontrol LED seven-segment menggunakan pin digital Arduino.
              Dalam hal ini saya menggunakan Arduino Mega 2560.
              Tentu saja Anda juga dapat mencobanya pada board Arduino yang lain
-------------------------------------------------------------------------------*/

// Bar LED 7 segment dengan 3 digit yang saya gunakan memiliki 11 kaki,
// dengan 3 kaki Common Anode, 7 kaki untuk A-G, dan 1 kaki untuk DP (titik).

 
// Di bawah ini su sunan dasar segmen-segmen dari LED seven-segment yang nantinya akan Kita olah
// untuk menampilkan angka-angka sesuai keinginan Kita.
//     |---------|
//     |    A    |
//   F |         | B
//     |         |
//     |----G----|
//     |         |
//   E |         | C
//     |    D    |
//     |---------|
//
// Segmen-segmen pembentuk angka-angka yang akan Kita buat adalah sebagai berikut:
// 0 => ABCDEF-
// 1 => -BC----
// 2 => AB-DE-G
// 3 => ABCD--G
// 4 => -BCD-FG
// 5 => A-CD-FG
// 6 => A-CDEFG
// 7 => ABC----
// 8 => ABCDEFG
// 9 => ABCD-FG

// Mendefinisikan pin digital untuk pin A-G
#define A 0
#define B 1
#define C 2
#define D 3
#define E 4
#define F 5
#define G 6

// Mendefinisikan pin digital untuk common anode
#define COMA 7
#define COMB 8
#define COMC 9

// Membuat array yang menyimpan nama-nama pin yang akan digunakan dalam pengulangan
// pemanggilan pin-pin seven-segment
const int segs [7] = { A, B, C, D, E, F, G };
const byte numbers [10] = { 0b1000000, 0b1111001, 0b0100100, 0b0110000, 0b0011001, 0b0010010, 0b0000010, 0b1111000, 0b0000000, 0b0010000 };

void lightDigit1 ( byte number ) {
  digitalWrite ( COMA, LOW );
  digitalWrite ( COMB, HIGH );
  digitalWrite ( COMC, LOW );
  lightSegments ( number );
}

void lightDigit2 ( byte number ) {
  digitalWrite ( COMA, HIGH );
  digitalWrite ( COMB, LOW );
  digitalWrite ( COMC, LOW );
  lightSegments ( number );
}

void lightDigit3 ( byte number ) {
  digitalWrite ( COMA, LOW );
  digitalWrite ( COMB, LOW );
  digitalWrite ( COMC, HIGH );
  lightSegments ( number );
}

void lightSegments ( byte number ) {
  for ( int i = 0; i < 7; i++ ) {
    int bit = bitRead ( number, i );
    digitalWrite ( segs[i], bit );
  }
}

void setup () {
  // Mendefinisikan pin digital 0 s.d. 9 sebagai pin keluaran (output)
  for ( int i = 0; i <= 9; i++ ) {
    pinMode ( i, OUTPUT );
  }
}

void loop () {
  for ( int digit1 = 0; digit1 < 10; digit1++ ) {
    for ( int digit2 = 0; digit2 < 10; digit2++ ) {
      for ( int digit3 = 0; digit3 < 10; digit3++ ) {
        unsigned long startTime = millis ();
        for ( unsigned long elapsed = 0; elapsed < 600; elapsed = millis() - startTime ) {
          lightDigit1 ( numbers[digit1] );
          delay ( 5 );
          lightDigit2 ( numbers[digit2] );
          delay ( 5 );
          lightDigit3 ( numbers[digit3] );
          delay ( 5 );
        }
      }
    }
  }
}

Demikian sketch-nya, sedangkan untuk skematiknya InsyaAlloh akan disampaikan pada lain kesempatan. Terima Kasih, Semoga Bermanfaat. Wassalam & Salam Kreatif!

One thought on “Mengontrol 3 Digit LED 7 Segment Menggunakan Arduino

  1. anistardianistardi 27 November 2013 / 22:55

    Saya bikin display 7 segment sebanyak 8pcs dengan sift register 78HC595. Prototype sudah terpasang 6 pcs dan sudah dicoba berhasil. Digabung dengan remote control, jadi bisa ngisi angka dari remote control. 7 segment di refresh dengan timer1.
    Rencananya 8 pcs 7 segment tiap PCB dan bisa diseri jadi 16 pcs, dst. 7 segment tiap PCB tidak mesti dipasang full 8 pcs, bisa kurang. Saya sudah bikin library nya.

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s