Seven Segment Arduino 4 Digit Display Dengan Metode Scanning

Seven Segment Arduino

Seven Segment Arduino merupakan salah satu topik yang menarik untuk dibahas. Karena banyak sekali project yang dapat dibuat dengan kolaborasi dari kedua komponen tersebut. Beberapa contohnya adalahjam digital dengan seven segment, stopwatch dengan 7 segment atau display jam sholat digital. Untuk membuat alat yang saya sebutkan diatas, kita perlu memahami dulu bagaimana cara untuk memprogram seven segment menggunakan arduino. Karena dasar dari itu semua adalah menyalakan seven segment sesuai keinginan. Banyak sekali metode yang dapat digunakan untuk memprogram 7 segment. Beda metode beda juga rangkaian yang digunakan. Salah satu metode yang sangat sederhana dan tidak membutuhkan banyak rangkaian adalah metode scanning. Apa itu metode scanning ?? Yuk lanjutkan baca sampai selesai yaa !!




Rangkaian Seven Segment Arduino

Apa Itu Metode Scanning ??

Salah satu metode memprogram seven segment yang banyak digunakan adalah metode scanning. Metode ini sangat sederhana, karena dari sisi hardware tidak banyak membutuhkan komponen tambahan. Hanya membutuhkan resistor dan transistor saja agar seven segment arduino dapat menyala sesuai program. Untuk lebih jelasnya, yuk kita lihat dulu rangkaian seven segment arduino dengan metode scanning.



seven segment arduino

Rangkaian diatas merupakan rangkaian pengendali seven segment 4 digit yang belum terhubung ke mikrokontroler atau arduino. Dapat dilihat bahwa pin A, B, C, D, E, F, G dan DP dari keempat 7 segment tersebut dihubungkan secara paralel atau disatukan semuanya. Namun pin Common yaitu pin D0, D1, D2, D3 tidak disatukan dan ditambahkan transistor sebagai rangkaian switching. Rangkaian diatas menggunakan jenis seven segment common cathode (katoda). Jika Anda ingin mengganti jenis 7 segment menjadi common anoda, maka transistor yang digunakan harus Anda ganti menjadi transistor PNP.
Metode scanning merupakan metode untuk mengaktifkan seven segment secara bergantian satu persatu (scanning) secara cepat. Caranya dari keempat seven segment diatas, hanya boleh 1 seven segment yang menyala dalam beberapa saat. Untuk membuat keempat seven segment tersebut kelihatan menyala secara bersamaaan maka nyala dari masing-masing segment harus cepat sekitar 50-60Hz. Jika nyala masing-masing segment terlalu lama, maka akan terlihat kedipan dari masing-masing segment.

Bagaimana Cara Memprogram Seven Segmen Arduino ??

Untuk memprogram seven segment dengan arduino, Anda harus mengubungkan dahulu rangkaian diatas dengan arduino. Hubungan rangkaiannya dapat dilihat pada gambar berikut ini.



arduino seven segment

Hubungan pin dan koneksi ke rangkaian seven segment dapat diihat di sebelah kanan gambar. Di rangkaian tersebut digunakan juga potensiometer yang dihubungkan ke pin A0. Nantinya seven segment arduino akan menampilkan data ADC dari potensiometer. Oh ya untuk menampilkan angka pada 7 segment digunakan kode binari berikut ini :
B11111100 // 0

B01100000 // 1
B11011010 // 2
B11110010 // 3
B01100110 // 4
B10110110 // 5
B00111110 // 6
B11100000 // 7
B11111110 // 8
B11100110 // 9

Kode biner diatas nantinya akan merepresentasikan display angka 0-9 pada seven segment. Kode diatas hanya berlaku untuk 7 segment jenis common catode. Jika Anda menggunakan 7 segment common anode maka Anda hanya perlu membalik angka 0 dengan angka 1 dan angka 1 menjadi angka 0. Jika ingin penjelasan lebih tentang kode biner untuk seven segment ini, Anda bisa baca tutorial berikut ini : http://circuitdigest.com/microcontroller-projects/7-segment-display-interfacing-with-8051



Arduino Dan Seven Segment

Untuk memprogramnya sangat mudah sekali, Anda hanya perlu mengirimkan angka biner diatas ke pin A – G pada rangkaian 7 segment arduino. Kemudian untuk menyalakan segmentnya pin common yang terhubung melalui transistor harus berlogika high. Jika Anda cukup pusing membaca penjelasan saya tentang seven segment arduino, langsung saja lihat source code dibawah ini supaya lebih mengerti.

const int numeral[10] = {

   //ABCDEFG /dp
   B11111100, // 0
   B01100000, // 1
   B11011010, // 2
   B11110010, // 3
   B01100110, // 4
   B10110110, // 5
   B00111110, // 6
   B11100000, // 7
   B11111110, // 8
   B11100110, // 9
};
// pins for decimal point and each segment
// DP,G,F,E,D,C,B,A
const int segmentPins[] = { 13,8,7,6,5,4,3,2 };
const int nbrDigits= 4; // the number of digits in the LED display
//dig 0 1 2 3
const int digitPins[nbrDigits] = { 9,10,11,12 };
void setup()
{
   for(int i=0; i < 8; i++) {
      pinMode(segmentPins[i], OUTPUT); // set segment and DP pins to output
   }
   for(int i=0; i < nbrDigits; i++) { pinMode(digitPins[i], OUTPUT); } } void loop() { int value = analogRead(0); showNumber(value); } void showNumber( int number) { if(number == 0) { showDigit( 0, nbrDigits-1) ; // display 0 in the rightmost digit } else { // display the value corresponding to each digit // leftmost digit is 0, rightmost is one less than the number of places for( int digit = nbrDigits-1; digit >= 0; digit--)  {
         if(number > 0)  {
            showDigit( number % 10, digit) ;
            number = number / 10;
         }
      }
   }
// Displays given number on a 7-segment display at the given digit position
void showDigit( int number, int digit)
{
   digitalWrite( digitPins[digit], HIGH );
   for(int segment = 1; segment < 8; segment++)  {
      boolean isBitSet = bitRead(numeral[number], segment);
      // isBitSet will be true if given bit is 1
      // isBitSet = ! isBitSet; // Code Option*
      // uncomment the above Code Option line for common anode display
      digitalWrite( segmentPins[segment], isBitSet);
   }
   delay(5);
   digitalWrite( digitPins[digit], LOW );
}
Source code diatas fungsinya untuk menampilkan data analog pada pin A0 ke 4 digit seven segment arduino. Silahkan coba sendiri rangkaian dan source code diatas. Kemudian pahami masing-masing fungsi pada program diatas. Jika belum jelas atau tidak berfungsi silahkan angsung tanyakan ke saya tentang seven segment arduino ini !
Previous
Next Post »