7 Segment Display 4 Digit Using Arduino

Kawan-kawan, berikut blog dari saya yang membahas mengenai penggunaan modul Arduino Uno dengan objek 7 segment display Common Anode 4 digit. Langsung saja kita mulai dengan persiapan bahan, yaitu:
1. Arduino uno,
2. 7 Segment Common Anode
3. IC 74LS47 BCD to 7Segment Decoders/Drivers
4. Kabel Jumper dan PCB bolong (Untuk membuat Modul 7 Segment rakitan Anda)

TAHAP 1: PERSIAPAN

1. Arduino

saat ini dunia elektronika perangkat lunak khususnya dunia Mikrokontroler semakin marak dengan hadirnya modul-modul yang berbasis mikrokontroler yang memudahkan kita dalam dunia elektronika khususnya pemrograman Mikrokontroler. Modul yang saya gunakan saat ini adalah Arduino Uno, selain harga lebih murah dari Arduino yang lain, juga saya rasa masih cukup baik untuk penggunaan mikrokontroler basic pemula, dengan menggunakan IC Mikrokontroler ATMEGA328P, saya rasa sangat cukup untuk kita mengexplorasi dunia Mikrokontroler. untuk spesifikasi bisa dilihat pada https://www.arduino.cc/

2. 7Segment Common Anode
7 Segment yang saya gunakan disini adalah Common Anode, karena type 7 Segment ada 2, yaitu: Common Anode (aktif HIGH) dan Common Catode (aktif LOW). Bukan saya pemalas, namun banyak penulis blog sudah banyak membahas perbedaan 7 Segment tersebut, jadi jika anda ingin mencari perbedaannya, silahkan anda mencari di website lainnya, terimakasih.

3. IC74LS47 BCD to 7Segment Decoders/Drivers
Untuk sedikit menghemat port Mikrokontroler oleh karena itu saya gunakan IC TTL 74LS47 yang sudah umum dipasaran dan mudah untuk didapatkan, untuk datasheet silahkan anda browsing di website.

4. Kabel Jumper dan PCB bolong
Siapkan kabel jumper untuk koneksi port dari Arduino Uno ke Modul 7 Segment rakitan anda sendiri

TAHAP 2: INSTALASI

1. Modul Rangkaian 7 Segment 4Digit Display

Alat dan Bahan:
1. PCB Bolong (1pcs),
2. Timah dan Solder (1unit),
3. 7 Segment Common Anoda (4pcs),
4. Resistor untuk kaki 7Segment 330Ohm (7pcs),
5. Transistor PNP, BC559 sebagai Driver kaki Common Anode (4pcs),
6. Resistor 10kOhm sebagai beban pada basis Transistor BC559 (4pcs),
7. Resistor 220Ohm / Rpot 10K, digunakan untuk kaki Emiter sebagai input vcc ke kaki Common Anode7Segment (4pcs)
8. IC TTL 74LS47 BCD to 7Segment Decoders/Drivers (1pcs)

Berikut adalah skematik yang saya buat menggunakan Proteus 8 Profesional:


Gambar 1.1: Skematik Rangkaian 7 Segment dengan Proteus 8 Profesional.

*Ket: 1). pada gambar skematik tersebut nilai resistor saya gunakan sesuai dengan aslinya, saat kita
               aplikasikan pada rangkaian nyata di PCB bolong. Hal ini perlu saya terangkan, karena jika 
               anda mencobanya pada rangkaian virtual seperti Proteus, terkadang nilai asli mengakibatkan
               error pada Proteus atau Tidak Dapat Running.
         2). pada rangkaian tersebut kaki dp pada 7 segment tidak saya fungsikan atau tidak saya 
              sambung.


Gambar 1.2: Port dari 7Segment module ke Arduino Uno module

2. Pemrograman pada Arduino

Untuk pemrograman Arduino, Arduino berbasis Bahasa C/C++ dan yang membuat module ini sangat diminati banyak peng-hobi Mikrokontroler, karena memiliki Compiler dan semua bersifat Open Source, bahkan kita juga dapat bergabung dengan komunitas Arduino dari seluruh Negara di dunia. Untuk versi Compiler Arduino yang saya gunakan adalah Versi Arduino 1.8.5 dapat di download gratis di website https://www.arduino.cc/en/Main/Software

Gambar 2.1: Sketch1 program Arduino, untuk nilai duration silahkan di coba-coba dari nilai 
1000 s/d 5000


Gambar 2.2Sketch2 program Arduino


Gambar 2.3Sketch3 program Arduino


Gambar 2.4Sketch4 program Utama Arduino



Untuk isi dari program seluruhnya adalah sebagai berikut:

/*============ Inisialisasi Display 7 Segment ==============*/
#define A 0
#define B 1
#define C 2
#define D 3
#define Digit1 4
#define Digit2 5
#define Digit3 6
#define Digit4 7
#define duration 5000
#define angka_7segment { \
{0,0,0,0},\
{0,0,0,1},\
{0,0,1,0},\
{0,0,1,1},\
{0,1,0,0},\
{0,1,0,1},\
{0,1,1,0},\
{0,1,1,1},\
{1,0,0,0},\
{1,0,0,1},\
}
byte numbers[10][4] = angka_7segment;
const int segments[4] = {D, C, B, A};
unsigned int counter = 0;

void Display();

void setup()
{
  /*============= Setup port kaki 7 Segment ===============*/
  pinMode(A, OUTPUT);
  pinMode(B, OUTPUT);
  pinMode(C, OUTPUT);
  pinMode(D, OUTPUT);

  pinMode(Digit1, OUTPUT);
  pinMode(Digit2, OUTPUT);
  pinMode(Digit3, OUTPUT);
  pinMode(Digit4, OUTPUT);

  /*========= Inisialisasi port kaki 7Segment =============*/
  digitalWrite(A, LOW);
  digitalWrite(B, LOW);
  digitalWrite(C, LOW);
  digitalWrite(D, LOW);

  digitalWrite(Digit1, LOW);
  digitalWrite(Digit2, LOW);
  digitalWrite(Digit3, LOW);
  digitalWrite(Digit4, LOW);
}

void loop()
{
  for(int time1 = 0; time1 <50; time1++)
  {
    Display();
  }
  counter++;
  if (counter == 1000){counter = 0;}
}

/*========================================================
 * ---------------- Tampilan Display ---------------------
 *========================================================*/      
void Display()
{
  unsigned int number1 = (counter/1000)%10;
  setsegments(number1, Digit1, duration);
  unsigned int number2 = (counter/100)%10;
  setsegments(number2, Digit2, duration);
  unsigned int number3 = (counter/10)%10;
  setsegments(number3, Digit3, duration);
  unsigned int number4 = counter%10;
  setsegments(number4, Digit4, duration);
}
void setsegments(unsigned int number, int digit, int ontime)
{
    for (int seg=0; seg<4; seg++)
    {
      digitalWrite(segments[seg], numbers[number][seg]);
    }
    digitalWrite(digit, HIGH);
    delayMicroseconds(ontime);
    digitalWrite(digit, LOW);
}
/*===================== END DISPLAY ======================*/


Oke kawan sementara hanya itu yang bisa saya sedikit share di blog ini....oke selamat mencoba....Good Luck!!!

Untuk video silahkan kunjungi: https://youtu.be/0oouQY0sMbA
















Komentar

Postingan populer dari blog ini

Count Up/Down using Arduino Seven Segment Display 4 Digit