Modul tampilan 8 (delapan) digit 7-Segment LED (octal digit seven segment display) ini praktis untuk digunakan dari Arduino / proyek berbasis mikrokontroler karena sudah dilengkapi dengan IC 74HC595 Serial-Shift Registerganda secara terpadu sehigga dapat dihubungkan / dikendalikan dari MCU dengan mudah secara serial (menggunakan teknik serial shifting / antrian serial, lihat lengkapnya di penjelasan produk 74HC595) lewat koneksi 5 pin.

Kami menjual modul 7-segment 8-digit ini lengkap dengan kabel koneksi female-to-female 5p sepanjang 20cm. Apabila akan dihubungkan dengan Arduino Uno/ Mega 2560/ Leonardoyang pin digital I/O-nya diakses melalui female pin-header, Anda membutuhkan kabel Dupontfemale-to-maleyang dijual secara terpisah di toko komponen elektronika online ini. Untuk pengguna Arduino Uno Enhancement Versionyang memiliki header koneksi ganda (male+female), Anda dapat langsung mencolokkan kabel yang disertakan bersama paket ini secara langsung.

Anda dapat menggunakan catu daya 3,3 Volt maupun 5 Volt secara langsung dengan modul ini.


Contoh sketsa / kode program Arduino sketch:

/*
  YL-3 8-Digits Numeric 7-Segment Display Module
  http://p.vcc2gnd.com/8d7s
*/

#define RCLK 12
#define SCLK 11
#define DIO 10
#define SHOW_DOT 127
#define ALL_DIGIT 255
#define SPACE 255

/*
  bit pattern array (bit is inverted for common anode)
     +-a-+
     f   b
     +-g-+
     e   c
     +-d-+ (h)
*/
bytemaps[ 16 ] = {
  //hgfedcba
  0b11000000,  // 0
  0b11111001,  // 1
  0b10100100,  // 2
  0b10110000,  // 3
  0b10011001,  // 4
  0b10010010,  // 5
  0b10000010,  // 6
  0b11111000,  // 7
  0b10000000,  // 8
  0b10010000,  // 9
  0b10001000,  // A
  0b10000011,  // b
  0b11000110,  // C
  0b10100001,  // d
  0b10000110,  // E
  0b10001110   // F
};


// Send Data to dual 74HC595 shift register
voidupdate2x595(bytedigit, bytevalue) {
  digitalWrite(RCLK, LOW);
  // First register output to select digit (as mask),
  // connected with corresponding anode pin
  shiftOut(DIO, SCLK, MSBFIRST, digit); // select digit(s)
  // Second register output as segment pattern
  // connected with cathode pins
  shiftOut(DIO, SCLK, MSBFIRST, value); // update data
  digitalWrite(RCLK, HIGH);
}

//function to display 8-digit hex value (right justified)
voidd8_hex(unsignedlongvalue) {
   booleannonBlank = true;
   bytedMask = 128;
   while(dMask > 0) {
     update2x595( dMask, nonBlank ? maps[ ((byte)value) & 15 ] : SPACE);
     if(nonBlank) {
       value >>= 4;
       nonBlank = value > 0;
     }
     dMask >>= 1;
   }
}

constbyteincDelay = 32;
byteincCtr = incDelay;
unsignedlongvInc = 0;
 
voidsetup() {
  pinMode(RCLK, OUTPUT);
  pinMode(SCLK, OUTPUT);
  pinMode(DIO, OUTPUT);
  update2x595( ALL_DIGIT, SPACE );
}

voidloop() {
  d8_hex( vInc );
  delay(8);
  if(--incCtr == 0) {
    vInc++;
    incCtr = incDelay;
  }
}