Cara mengakses 7segment menggunakan Arduino Uno

Cara mengakses 7segment menggunakan Arduino Uno

Penjelasan Singkat

7segment adalah salah satu komponen elektronika yang bentuk seperti balok yang berfungsi sebagai penampil karakter angka dan karakter huruf tertentu.

Secara umum aplikasi penggunaaan 7Segment misalnya digunakan pada kalkulator, jam digital, multimeter digital counter digital, serta penunjuk display lainnya.

Prinsip kerja dari komponen yaitu memanfaatkan nyala matinya LED pada setiap bagian untuk membentuk suatu karakter tertentu dan angka. Selain itu pada komponen itu terdapat dot / titik dibagian samping kanan bawah.

Contoh nyata aplikasi komponen ini dalam kehidupan sehari – hari yaitu penggunaan pada Lift memakai 7-Segment untuk menunjukan lantai berapa yang akan dituju.

Jenis dari 7segment

Terdapat 2 tipe, tertampil pada seperti gambar dibawah ini :

a. 7-Segment tipe Katoda (Common Cathode)
Pada tipe ini, kaki katoda dari LED-nya terkoneksi menjadi satu kesatuan, dan kaki anoda-nya akan difungsikan menjadi input-an data untuk penyalaan setiap segmennya.

Kaki katoda LED merupakan terminal negatif / Gnd dan Control Signal / signal kendali merupakan kaki pin anoda a-g.

b. 7-Segment tipe Anoda (Common Anode)
Pada tipe ini, kaki anoda dari LED-nya terkoneksi menjadi satu kesatuan,dan kaki cathoda-nya akan difungsikan menjadi input-an data untuk penyalaan setiap segmennya.

Kaki katoda LED merupakan terminal negatif / Gnd dan Control Signal / signal kendali merupakan kaki pin anoda a-g.


Tutorial cara mengakses 7Segment (via simulasi Proteus)

Tutorial pertama yang sederhana untuk menampilkan angka dari 0 – 9. seperti gambar dibawah ini:

Tabel kebenaran 7segment

Percobaan untuk pembuktian tabel kebenaran, bahan yang perlu dipersiapkan antara lain :

  • Komputer + proteus
  • 7-segment tipe anoda (Library Proteus)
  • Logic Toggle (Library Proteus)

Simulasi 7segment via proteus

Dari gambar dapat dilihat perbedaan antara 7-segment cathoda dan 7-segment anoda melihat dari tabel kebenaran.


Tutorial Cara mengakses 7Segment menggunakan Arduino Uno

Bahan yang perlu dipersiapkan antara lain :

  • Arduino Uno
  • Komputer + Software IDE Arduino
  • 7-segment tipe katoda
  • Kabel Jumper

[irp]

Skema rangkaian antara arduino dengan 7segment

arduino mengakses 7segment

untuk koding pemrogramannya

/* --- www.nyebarilmu.com --- */

const byte numeral[11]={
B11111100, //untuk angka 0
B01100000, //untuk angka 1
B11011010, //untuk angka 2
B11110010, //untuk angka 3
B01100110, //untuk angka 4
B10110110, //untuk angka 5
B00111110, //untuk angka 6
B11100000, //untuk angka 7
B11111110, //untuk angka 8
B11100110, //untuk angka 9
B00000000, //tanpa menampilkan apapun
};

//inisialisasi pin yang digunakan
const int segmentPins[8]= { 2,11,10,5,4,3,8,9 }; //dp,g,f,e,d,c,b,a

void setup(){
for (int i=0; i < 8; i++){
pinMode(segmentPins[i], OUTPUT);
}}

void loop(){
for (int i=0; i <=10; i++){
tunjukanAngka(i);
delay(1000);
}
delay(2000); }

void tunjukanAngka (int number){
boolean isBitSet;
for (int segment=1; segment < 8; segment++){
isBitSet= bitRead(numeral[number], segment);
digitalWrite(segmentPins[segment], isBitSet); }
}

Pada program diatas akan menunjukan angka 0 – 9 secara bergantian dengan jeda 2 detik.


Tutorial Lanjutan cara mengakses module 7Segment

Bahan yang perlu dipersiapkan

  • Arduino Uno
  • Komputer + Software IDE Arduino
  • Modul 7-segment
  • Kabel Jumper

Gambar dari modul 7segment (modul TM1637)

Module 7segment TM1637

Skema rangkaian

Library yang diperlukan >> [ddownload id=”1549″]

Peletakan Library pada masing – masing Operation System :

  • PC (Windows) : Program file /Arduino/ libraries
  • Mac : (home directory)/Applications/Arduino (Show Package Content) /Contents/Java/Libraries
  • Linux : (home directory)/sketchbook/libraries

Contoh koding pemrogramanya

/* ... www.nyebarilmu.com ... */

#include <TM1637Display.h>
#include <Arduino.h>

//waktu tunda yang digunakan 3 detik
#define TEST_DELAY 3000

//Pin yang digunakan
#define CLK 2
#define DIO 3

//format inisialisasi pin
TM1637Display display(CLK, DIO);

//fungsi untuk pemanggilan tulisan "sip"
const uint8_t SEG_sip[] = {
	SEG_A | SEG_F | SEG_G | SEG_C | SEG_D,           // s
	SEG_F | SEG_E,                                   // i
	SEG_B | SEG_A | SEG_F | SEG_G | SEG_E            // p
	};

void fungsi_utama(){
  int h;

//data untuk menghidupkan led
uint8_t data[] = { 0xff, 0xff, 0xff, 0xff };
display.setBrightness(0x0f);

  // pemanggilan nilai "data" menghidupkan semua led 7segment
  display.setSegments(data);
  delay(TEST_DELAY);

  // Selectively set different digits
  data[0] = 0b01001001;
  data[1] = display.encodeDigit(1);
  data[2] = display.encodeDigit(2);
  data[3] = display.encodeDigit(3);

  for(h = 3; h >= 0; h--) {
	display.setSegments(data, 1, h);  //format perubahan data led 1
	delay(TEST_DELAY);
	}

  display.setSegments(data+2, 2, 2);
  delay(TEST_DELAY);

  display.setSegments(data+2, 2, 1);
  delay(TEST_DELAY);

  display.setSegments(data+1, 3, 1);
  delay(TEST_DELAY);


  // mendisplay nilai desimal dengan maupun tanpa leading zeros
  bool lz = false;
  for (uint8_t z = 0; z < 2; z++) {
	for(k = 0; k < 10000; k += k*4 + 7) {
		display.showNumberDec(k, lz);
		delay(TEST_DELAY);
	}
	lz = true;
  }

  // Tampilkan angka desimal yang panjangnya lebih kecil dari 4
  for(k = 0; k < 4; k++)
	data[k] = 0;
  display.setSegments(data);

	// Jalankan melalui semua dot
	for(k=0; k <= 4; k++) {
		display.showNumberDecEx(0, (0x80 >> k), true);
		delay(TEST_DELAY);
	}

  display.showNumberDec(153, false, 3, 1);
  delay(TEST_DELAY);

  display.showNumberDec(22, false, 2, 2);
  delay(TEST_DELAY);

  display.showNumberDec(0, true, 1, 3);
  delay(TEST_DELAY);

  display.showNumberDec(0, true, 1, 2);
  delay(TEST_DELAY);

  display.showNumberDec(0, true, 1, 1);
  delay(TEST_DELAY);

  display.showNumberDec(0, true, 1, 0);
  delay(TEST_DELAY);

  // Brightness Test
  for(h = 0; h < 4; h++)
	data[k] = 0xff;
  for(h = 0; h < 7; h++) {
    display.setBrightness(k);
    display.setSegments(data);
    delay(TEST_DELAY);
  }

  // On/Off test
  for(k = 0; k < 4; k++) {
    display.setBrightness(7, false);  // Turn off
    display.setSegments(data);
    delay(TEST_DELAY);
    display.setBrightness(7, true); // Turn on
    display.setSegments(data);
    delay(TEST_DELAY);
  }
//jika sudah selesai akan tertampil tulisan "sip"
  display.setSegments(SEG_sip);

  while(1);
}

void setup()
{
}

void loop()
{
//pemanggilan fungsi
  fungsi_utama();
}

Selamat mencoba!

Terimakasih sudah berkunjung, dan semoga bermanfaat. Salam nyebarilmu.com!

>> CMIIW <<

Comments

No comments yet. Why don’t you start the discussion?

Leave a Reply

Your email address will not be published. Required fields are marked *