Anda di halaman 1dari 13

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:

Percobaan untuk pembuktian tabel kebenaran, bahan yang perlu dipersiapkan


antara lain :

 Komputer + proteus
 7-segment tipe anoda (Library Proteus)
 Logic Toggle (Library 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

Baca juga : Cara Mengakses Sensor Thermocouple type K menggunakan


ESP32

Skema rangkaian antara arduino dengan 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)

Skema rangkaian
Library yang diperlukan >> Filenya ini

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();

Anda mungkin juga menyukai