Pada kesempatan kali ini kita akan belajar bersama mengenai 7 segment. Berbeda dengan tutorial sebelumnya yang membahas 1 digit saja LIHAT DISINI, namun sekarang yang akan kita bahas yaitu 2 digit. Perbedaanya apa? perbedaanya dikarenakan terdapat 2 digit angka sehingga terdapat juga 2 buah common untuk masing-masing digitnya. Sedangkan untuk pin-pin lainya tentu diparalelkan saja, misal digit 1 a dengan digit 2 a dan seterusnya. Lebih jelasnya bisa dilihat pada gambar di bawah ini.

Cukup jelas ya dengan gambar di atas, oke langsung kita coba untuk menghubungkan ke Arduino. Bahan-bahan yang di butuhkan berikut ini :

  1. Arduino Uno R3, BELI
  2. 7 Segment 2 digit common Anoda , BELI
  3. Kabel jumper male to male, BELI
  4. Resistor 1k, BELI
  5. Projectboard, BELI

Rangkaian

Keterangan :

  • Pin a = Pin 6 Arduino
  • Pin b = Pin 7 Arduino
  • Pin c = Pin 8 Arduino
  • Pin d = Pin 9 Arduino
    • Pin e = Pin 10 Arduino

    • Pin f = Pin 11 Arduino
    • Pin g = Pin 12 Arduino
    • Pin dig1 = resistor + Pin 2 Arduino
    • Pin dig2 = resistor + Pin 3 Arduino

    Menggunakan jenis 7 segment Anode.

    Sketch Program

    #define A 6
    #define B 7
    #define C 8
    #define D 9
    #define E 10
    #define F_SEG 11
    #define G 12
    #define DP 13
    
    // Pins driving common anodes
    #define CA1 2
    #define CA2 3
    
    // Pins for A B C D E F G, in sequence
    const int segs[8] = { A, B, C, D, E, F_SEG, G, DP};
    
    // Segments that make each number
    const byte numbers[10] = { 0b1000000, 0b1111001, 0b0100100, 0b0110000, 0b0011001, 0b0010010,
                               0b0000010, 0b1111000, 0b0000000, 0b0010000
                             };
    
    void setup() {
      pinMode(A, OUTPUT);
      pinMode(B, OUTPUT);
      pinMode(C, OUTPUT);
      pinMode(D, OUTPUT);
      pinMode(E, OUTPUT);
      pinMode(F_SEG, OUTPUT);
      pinMode(G, OUTPUT);
      pinMode(DP, OUTPUT);
      pinMode(CA1, OUTPUT);
      pinMode(CA2, OUTPUT);
    }
    
    void loop() {
      for (int digit1 = 0; digit1 < 10; digit1++) {
        for (int digit2 = 0; digit2 < 10; digit2++) {
          unsigned long startTime = millis();
          for (unsigned long elapsed = 0; elapsed < 600; elapsed = millis() - startTime) {
            lightDigit1(numbers[digit1]);
            delay(5);
            lightDigit2(numbers[digit2]);
            delay(5);
          }
        }
      }
    }
    
    void lightDigit1(byte number) {
      digitalWrite(CA1, LOW);
      digitalWrite(CA2, HIGH);
      lightSegments(number);
    }
    
    void lightDigit2(byte number) {
      digitalWrite(CA1, HIGH);
      digitalWrite(CA2, LOW);
      lightSegments(number);
    }
    
    void lightSegments(byte number) {
      for (int i = 0; i < 8; i++) {
        int bit = bitRead(number, i);
        digitalWrite(segs[i], bit);
      }
    }

    Upload sketch program di atas pada software Arduino IDE, jangan lupa untuk mengecek board dan Portnya di menu Tools. Jika sudah diupload maka hasilnya seperti dibawah ini, kebetulan saya memakai Arudino Mega.

    Semoga berhasil, terima kasih sudah berkunjung, sampai jumpa lagi di tutorial berikutnya.

    Kategori: Arduino

    Tinggalkan Balasan

    Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

    Scroll Up
    id_IDIndonesian
    en_USEnglish id_IDIndonesian