Anda di halaman 1dari 56

LAPORAN RESMI

PRAKTIKUM MIKROPROSESOR DAN ANTARMUKA 1

“ KONTROL DISPLAY 7- SEGMENT”

Dosen : Akuwan Saleh

Disusun Oleh :

Athia Suci Faqiha

1210191004

2 D4 TEKNIK TELEKOMUNIKASI A

PROGRAM STUDI SARJANA TERAPAN TEKNIK TELEKOMUNIKASI

DEPARTEMEN TEKNIK ELEKTRO

POLITEKNIK ELEKTRONIKA NEGERI SURABAYA

2020/2021
PERCOBAAN 5
KONTROL DISPLAY 7- SEGMENT
A. TUJUAN
 Mengetahui dan memahami cara mengantarmukakan mikrokontroler dengan rangkaian
penampil seven segment.
 Mengetahui dan memahami bagaimana memprogram mikrokontroler untuk menampilkan
karakter ke penampil seven segment.

B. DASAR TEORI
Seven Segment Display (7 Segment Display) dalam bahasa Indonesia disebut dengan
Layar Tujuh Segmen adalah komponen Elektronika yang dapat menampilkan angka desimal
melalui kombinasi-kombinasi segmennya. Seven Segment Display pada umumnya dipakai pada
Jam Digital, Kalkulator, Penghitung atau Counter Digital, Multimeter Digital dan juga Panel
Display Digital seperti pada Microwave Oven ataupun Pengatur Suhu Digital . Seven Segment
Display pertama diperkenalkan dan dipatenkan pada tahun 1908 oleh Frank. W. Wood dan mulai
dikenal luas pada tahun 1970-an setelah aplikasinya pada LED (Light Emitting Diode).
Seven Segment Display memiliki 7 Segmen dimana setiap segmen dikendalikan secara
ON dan OFF untuk menampilkan angka yang diinginkan. Angka-angka dari 0 (nol) sampai 9
(Sembilan) dapat ditampilkan dengan menggunakan beberapa kombinasi Segmen. Selain 0 – 9,
Seven Segment Display juga dapat menampilkan Huruf Hexadecimal dari A sampai F. Segmen
atau elemen-elemen pada Seven Segment Display diatur menjadi bentuk angka “8” yang agak
miring ke kanan dengan tujuan untuk mempermudah pembacaannya.
Pada beberapa jenis Seven Segment Display, terdapat juga penambahan “titik” yang
menunjukan angka koma decimal. Terdapat beberapa jenis Seven Segment Display, diantaranya
adalah Incandescent bulbs, Fluorescent lamps (FL), Liquid Crystal Display (LCD) dan Light
Emitting Diode (LED). Salah satu jenis Seven Segment Display yang sering digunakan oleh para
penghobi Elektronika adalah 7 Segmen yang menggunakan LED (Light Emitting Diode) sebagai
penerangnya. LED 7 Segmen ini umumnya memiliki 7 Segmen atau elemen garis dan 1 segmen
titik yang menandakan “koma” Desimal. Jadi Jumlah keseluruhan segmen atau elemen LED
sebenarnya adalah 8. Cara kerjanya pun boleh dikatakan mudah, ketika segmen atau elemen
tertentu diberikan arus listrik, maka Display akan menampilkan angka atau digit yang diinginkan
sesuai dengan kombinasi yang diberikan.
Terdapat 2 Jenis LED 7 Segmen, diantaranya adalah “LED 7 Segmen common Cathode” dan
“LED 7 Segmen common Anode”.
1. LED 7 Segmen Tipe Common Cathode (Katoda)
Pada LED 7 Segmen jenis Common Cathode (Katoda), Kaki Katoda pada semua segmen
LED adalah terhubung menjadi 1 Pin, sedangkan Kaki Anoda akan menjadi Input untuk masing-
masing Segmen LED. Kaki Katoda yang terhubung menjadi 1 Pin ini merupakan Terminal
Negatif (-) atau Ground sedangkan Signal Kendali (Control Signal) akan diberikan kepada
masing-masing Kaki Anoda Segmen LED. LED Seven Segment Display Tipe Common Katoda.
Gambar 1. 7-Segment Tipe Common Cathode

2. LED 7 Segmen Tipe Common Anode (Anoda)


Pada LED 7 Segmen jenis Common Anode (Anoda), Kaki Anoda pada semua segmen
LED adalah terhubung menjadi 1 Pin, sedangkan kaki Katoda akan menjadi Input untuk masing-
masing Segmen LED. Kaki Anoda yang terhubung menjadi 1 Pin ini akan diberikan Tegangan
Positif ( dan Signal Kendali (control signal) akan diberikan kepada masing- masing Kaki Katoda
Segmen LED. LED Seven Segment Display Tipe Common Anoda.

Gambar 2. 7-Segment Tipe Common Anode

Prinsip Kerja Dasar Driver System pada LED 7 Segmen Blok Dekoder pada diagram
diatas mengubah sinyal Input yang diberikan menjadi 8 jalur yaitu “a” sampai “g” dan poin
decimal (koma) untuk meng- ON-kan segmen sehingga menghasilkan angka atau digit yang
diinginkan. Contohnya, jika output dekoder adalah a, b, dan c, maka Segmen LED akan menyala
menjadi angka “7”. Jika Sinyal Input adalah berbentuk Analog, maka diperlukan ADC (Analog
to Digital Converter) untuk mengubah sinyal analog menjadi Digital sebelum masuk ke Input
Dekoder. Jika Sinyal Input sudah merupakan Sinyal Digital, maka Dekoder akan menanganinya
sendiri tanpa harus menggunakan ADC.

Gambar 3. Blok Diagram Dasar 7-Segment

Fungsi daripada Blok Driver adalah untuk memberikan arus listrik yang cukup kepada
Segmen/Elemen LED untuk menyala. Pada Tipe Dekoder tertentu, Dekoder sendiri dapat
mengeluarkan Tegangan dan Arus listrik yang cukup untuk menyalakan Segmen LED maka
Blok Driver ini tidak diperlukan. Pada umumnya Driver untuk menyalakan 7 Segmen ini adalah
terdiri dari 8 Transistor Switch pada masing-masing elemen LED. Dekoder BCD ke 7-Segment
ada dua yang sering atau umum digunakan, yaitu : • IC TTL 74LS47 menyalakan 7 segment
mode common anoda. • IC TTL 74LS48 menyalakan 7 segment mode common katoda.
Konfigurasi Pin IC TTL 74LS47 dan 74LS48 Dekoder BCD ke 7 segment mempunyai
masukan berupa bilangan BCD 4-bit (masukan A0, A1, A2 dan A3). Bilangan BCD ini
dikodekan sehingga membentuk kode tujuh segmen yang akan menyalakan ruas-ruas yang sesuai
pada seven segment. Masukan BCD diaktifkan oleh logika „1‟, dan keluaran dari dekoder 7447
adalah aktif low, sedangkan untuk dekoder 7448 adalah aktif high. Tiga masukan ekstra juga
ditunjukkan pada konfigurasi pin IC 7447 atau IC 7448 yaitu lamp test, blanking input/ripple
blanking output, dan ripple blanking input.

Gambar 4. Konfigurasi Pin IC TTL 74LS47

 Lamp Test (LT), berfungsi mengeset display, bila diberi logika „0‟ maka semua keluaran
IC = berlogika 0 dan Seven segment = angka delapan (8).
 BI'/RBO„, berfungsi mematikan keluaran dari IC. Bila diberi logika “0” maka semua
keluaran IC = berlogika “1” dan seven segment akan mati.
 RBI' , berfungsi mematikan keluaran dari IC jika semua input berlogika “0”. Bila diberi
logika “0”, maka semua keluaran IC akan berlogika “1” dan seven segment akan mati.

Gambar 5. Rangkaian Aplikasi Dekoder BCD Ke 7 Segmen Common Anoda (IC 7447)

Gambar 6. Rangkaian Aplikasi Dekoder BCD Ke 7 Segmen Common Anoda (IC 7448)
C. HARDWARE
 Arduino Uno Board
 7-Segment
 Resistor 330 ohm (bila diperlukan)
 Breadboard
 Kabel jumper

D. RANGKAIAN

Gambar 7. Skema Koneksi Arduino ke 7-Segment

Gambar 8. Skema Koneksi Arduino ke 7-Segment Dengan Dekoder IC 74LS47

Gambar 8. Skema Koneksi Arduino ke 7-Segment Dengan Dekoder IC 74LS48


E. LANGKAH PERCOBAAN
1. Tancapkan usb serial ke kemputer.
2. Pastikan driver-nya sudah ter-install dan dikenali dengan benar.
3. Cek driver, lihat port COM dan samakan pada software arduino

4. Jalankan arduino dan buat programnya.

F. PROGRAM
1. Percobaan 1a common anoda
-> Rangkaian

-> Program
int A=13, B=12, C=11, D=10;
int E=9, F=8, G=7, DP=6;
void setup() {
pinMode(A, OUTPUT);
pinMode(B, OUTPUT);
pinMode(C, OUTPUT);
pinMode(D, OUTPUT);
pinMode(E, OUTPUT);
pinMode(F, OUTPUT);
pinMode(G, OUTPUT);
pinMode(DP, OUTPUT);
}
void digit0(){
digitalWrite(A, LOW);
digitalWrite(B, LOW);
digitalWrite(C, LOW);
digitalWrite(D, LOW);
digitalWrite(E, LOW);
digitalWrite(F, LOW);
digitalWrite(G, HIGH);
digitalWrite(DP, HIGH);
};
void digit1(){
digitalWrite(A, HIGH);
digitalWrite(B, LOW);
digitalWrite(C, LOW);
digitalWrite(D, HIGH);
digitalWrite(E, HIGH);
digitalWrite(F, HIGH);
digitalWrite(G, HIGH);
digitalWrite(DP, HIGH);
};
void digit2(){
digitalWrite(A, LOW);
digitalWrite(B, LOW);
digitalWrite(C, HIGH);
digitalWrite(D, LOW);
digitalWrite(E, LOW);
digitalWrite(F, HIGH);
digitalWrite(G, LOW);
digitalWrite(DP, HIGH);
};
void digit3(){
digitalWrite(A, LOW);
digitalWrite(B, LOW);
digitalWrite(C, LOW);
digitalWrite(D, LOW);
digitalWrite(E, HIGH);
digitalWrite(F, HIGH);
digitalWrite(G, LOW);
digitalWrite(DP, HIGH);
};
void digit4(){
digitalWrite(A, HIGH);
digitalWrite(B, LOW);
digitalWrite(C, LOW);
digitalWrite(D, HIGH);
digitalWrite(E, HIGH);
digitalWrite(F, LOW);
digitalWrite(G, LOW);
digitalWrite(DP, HIGH);
};
void digit5(){
digitalWrite(A, LOW);
digitalWrite(B, HIGH);
digitalWrite(C, LOW);
digitalWrite(D, LOW);
digitalWrite(E, HIGH);
digitalWrite(F, LOW);
digitalWrite(G, LOW);
digitalWrite(DP, HIGH);
};
void digit6(){
digitalWrite(A, LOW);
digitalWrite(B, HIGH);
digitalWrite(C, LOW);
digitalWrite(D, LOW);
digitalWrite(E, LOW);
digitalWrite(F, LOW);
digitalWrite(G, LOW);
digitalWrite(DP, HIGH);
};
void digit7(){
digitalWrite(A, LOW);
digitalWrite(B, LOW);
digitalWrite(C, LOW);
digitalWrite(D, HIGH);
digitalWrite(E, HIGH);
digitalWrite(F, HIGH);
digitalWrite(G, HIGH);
digitalWrite(DP, HIGH);
};
void digit8(){
digitalWrite(A, LOW);
digitalWrite(B, LOW);
digitalWrite(C, LOW);
digitalWrite(D, LOW);
digitalWrite(E, LOW);
digitalWrite(F, LOW);
digitalWrite(G, LOW);
digitalWrite(DP, HIGH);
};
void digit9(){
digitalWrite(A, LOW);
digitalWrite(B, LOW);
digitalWrite(C, LOW);
digitalWrite(D, LOW);
digitalWrite(E, HIGH);
digitalWrite(F, LOW);
digitalWrite(G, LOW);
digitalWrite(DP, HIGH);
};
void showdigit(int digit){
switch (digit){
case 0:
digit0();
break;
case 1:
digit1();
break;
case 2:
digit2();
break;
case 3:
digit3();
break;
case 4:
digit4();
break;
case 5:
digit5();
break;
case 6:
digit6();
break;
case 7:
digit7();
break;
case 8:
digit8();
break;
case 9:
digit9();
break;
}; };
void loop() {
for (int i=0;i<10;i++){
showdigit(i);
delay(1000);
if (i%2){
digitalWrite(DP, HIGH);
}
else{
digitalWrite(DP, LOW);
}; }; };
-> Tampilan program
-> Hasil
2. Percobaan 1b common anoda
-> Rangkaian

-> Program
int A=2, B=3, C=4, D=5;
int E=6, F=7, G=8, DP=9;
void setup() {
pinMode(A, OUTPUT);
pinMode(B, OUTPUT);
pinMode(C, OUTPUT);
pinMode(D, OUTPUT);
pinMode(E, OUTPUT);
pinMode(F, OUTPUT);
pinMode(G, OUTPUT);
pinMode(DP, OUTPUT);
}
void digit0() {
digitalWrite(A, LOW);
digitalWrite(B, LOW);
digitalWrite(C, LOW);
digitalWrite(D, LOW);
digitalWrite(E, LOW);
digitalWrite(F, LOW);
digitalWrite(G, HIGH);
digitalWrite(DP, HIGH);
}
void digit1() {
digitalWrite(A, HIGH);
digitalWrite(B, LOW);
digitalWrite(C, LOW);
digitalWrite(D, HIGH);
digitalWrite(E, HIGH);
digitalWrite(F, HIGH);
digitalWrite(G, HIGH);
digitalWrite(DP, HIGH);
}
void digit2() {
digitalWrite(A, LOW);
digitalWrite(B, LOW);
digitalWrite(C, HIGH);
digitalWrite(D, LOW);
digitalWrite(E, LOW);
digitalWrite(F, HIGH);
digitalWrite(G, LOW);
digitalWrite(DP, HIGH);
}
void digit3() {
digitalWrite(A, LOW);
digitalWrite(B, LOW);
digitalWrite(C, LOW);
digitalWrite(D, LOW);
digitalWrite(E, HIGH);
digitalWrite(F, HIGH);
digitalWrite(G, LOW);
digitalWrite(DP, HIGH);
}
void digit4() {
digitalWrite(A, HIGH);
digitalWrite(B, LOW);
digitalWrite(C, LOW);
digitalWrite(D, HIGH);
digitalWrite(E, HIGH);
digitalWrite(F, LOW);
digitalWrite(G, LOW);
digitalWrite(DP, HIGH);
}
void digit5() {
digitalWrite(A, LOW);
digitalWrite(B, HIGH);
digitalWrite(C, LOW);
digitalWrite(D, LOW);
digitalWrite(E, HIGH);
digitalWrite(F, LOW);
digitalWrite(G, LOW);
digitalWrite(DP, HIGH);
}
void digit6() {
digitalWrite(A, LOW);
digitalWrite(B, HIGH);
digitalWrite(C, LOW);
digitalWrite(D, LOW);
digitalWrite(E, LOW);
digitalWrite(F, LOW);
digitalWrite(G, LOW);
digitalWrite(DP, HIGH);
}
void digit7() {
digitalWrite(A, LOW);
digitalWrite(B, LOW);
digitalWrite(C, LOW);
digitalWrite(D, HIGH);
digitalWrite(E, HIGH);
digitalWrite(F, HIGH);
digitalWrite(G, HIGH);
digitalWrite(DP, HIGH);
}
void digit8() {
digitalWrite(A, LOW);
digitalWrite(B, LOW);
digitalWrite(C, LOW);
digitalWrite(D, LOW);
digitalWrite(E, LOW);
digitalWrite(F, LOW);
digitalWrite(G, LOW);
digitalWrite(DP, HIGH);
}
void digit9() {
digitalWrite(A, LOW);
digitalWrite(B, LOW);
digitalWrite(C, LOW);
digitalWrite(D, LOW);
digitalWrite(E, HIGH);
digitalWrite(F, LOW);
digitalWrite(G, LOW);
digitalWrite(DP, HIGH);
}
void showdigit(int digit) {
switch (digit) {
case 0:
digit0();
break;
case 1:
digit1();
break;
case 2:
digit2();
break;
case 3:
digit3();
break;
case 4:
digit4();
break;
case 5:
digit5();
break;
case 6:
digit6();
break;
case 7:
digit7();
break;
case 8:
digit8();
break;
case 9:
digit9();
break;
default:
break;
};
};

void loop() {
for(int i=0; i<10; i++){ //counting from 0 to 9
showdigit(i);
delay (1000); // 100ms= 1s delay
if(i%2){
digitalWrite(DP, HIGH);
} else{
digitalWrite(DP, LOW);
};
};
};
-> Tampilan program
-> Hasil
3. Nyala 7 segmen dari 0 ke 9 dan kembali dari 9 ke 0 (common anoda)

-> Rangkaian
-> Program
byte seven_seg_digits[10][7] = {
{0,0,0,0,0,0,1},
{1,0,0,1,1,1,1},
{0,0,1,0,0,1,0},
{0,0,0,0,1,1,0},
{1,0,0,1,1,0,0},
{0,1,0,0,1,0,0},
{0,1,0,0,0,0,0},
{0,0,0,1,1,1,1},
{0,0,0,0,0,0,0},
{0,0,0,0,1,0,0}
};
void setup() {
pinMode(13, OUTPUT);
pinMode(12, OUTPUT);
pinMode(11, OUTPUT);
pinMode(10, OUTPUT);
pinMode(9, OUTPUT);
pinMode(8, OUTPUT);
pinMode(7, OUTPUT);
pinMode(6, OUTPUT);
writeDot(1); // padamkan tanda "dot" (titik)
}
void writeDot(byte dot) {
digitalWrite(6, dot);
}
void sevenSegWrite(byte digit) {
byte pin = 13;
for (byte segCount = 0; segCount < 7; ++segCount) {
digitalWrite(pin, seven_seg_digits[digit][segCount]);
--pin; } }
void loop() {
for (byte count = 0; count < 10 ; ++count)
{ sevenSegWrite(count );
delay(1000); }
for (byte count = 9; count > 0; --count)
{ sevenSegWrite(count -1);
delay(1000);
}
}
-> Tampilan program
-> Hasil
4. Percobaan 1b common katoda
-> Rangkaian

-> Program
const byte numeral[11]= {
B10111111, //0
B00000110, //1
B01011011, //2
B01001111, //3
B01100110, //4
B01101101, //5
B01111101, //6
B00000111, //7
B01111111, //8
B01101111, //9
B00000000, //off
};
int segmentPins[]={2,3,4,5,6,7,8,9};
void setup() {
// put your setup code here, to run once:
for (int i=0; i < 8; i++)
{
pinMode(segmentPins[i], OUTPUT);
}
}

void loop() {
// put your main code here, to run repeatedly:
for (int i=0; i <=10; i++)
{
showDigit(i);
delay(1000);
}
delay(2000);
}

void showDigit (int number)


{
boolean isBitSet;
for (int segment=0; segment < 8; segment++)
{
isBitSet= bitRead(numeral[number], segment);
digitalWrite(segmentPins[segment], isBitSet);
}
}
-> Tampilan program
-> Hasil
LINK PERCOBAAN : http://bit.ly/Praktikum5mikro
G . LATIHAN
1. Buatlah eksperimen dengan meggunakan 1 driver (IC TTL 74LS47) dan sebuah 7S
Common Anoda.
-> Rangkaian

-> Program
int A=2, B=3, C=4, D=5;
void setup() {
pinMode(A, OUTPUT);
pinMode(B, OUTPUT);
pinMode(C, OUTPUT);
pinMode(D, OUTPUT);
}
void digit0 () {
digitalWrite(A, LOW);
digitalWrite(B, LOW);
digitalWrite(C, LOW);
digitalWrite(D, LOW);
}
void digit1 () {
digitalWrite(A, HIGH);
digitalWrite(B, LOW);
digitalWrite(C, LOW);
digitalWrite(D, LOW);
}
void digit2 () {
digitalWrite(A, LOW);
digitalWrite(B, HIGH);
digitalWrite(C, LOW);
digitalWrite(D, LOW);
}
void digit3 () {
digitalWrite(A, HIGH);
digitalWrite(B, HIGH);
digitalWrite(C, LOW);
digitalWrite(D, LOW);
}
void digit4 () {
digitalWrite(A, LOW);
digitalWrite(B, LOW);
digitalWrite(C, HIGH);
digitalWrite(D, LOW);
}
void digit5 () {
digitalWrite(A, HIGH);
digitalWrite(B, LOW);
digitalWrite(C, HIGH);
digitalWrite(D, LOW);
}
void digit6 () {
digitalWrite(A, LOW);
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, LOW);
}
void digit7 () {
digitalWrite(A, HIGH);
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, LOW);
}
void digit8 () {
digitalWrite(A, LOW);
digitalWrite(B, LOW);
digitalWrite(C, LOW);
digitalWrite(D, HIGH);
}
void digit9 () {
digitalWrite(A, HIGH);
digitalWrite(B, LOW);
digitalWrite(C, LOW);
digitalWrite(D, HIGH);
}
void loop(){
digit0();
delay (500);
digit1();
delay (500);
digit2();
delay (500);
digit3();
delay (500);
digit4();
delay (500);
digit5();
delay (500);
digit6();
delay (500);
digit7();
delay (500);
digit8();
delay (500);
digit9();
delay (500);
}
-> Tampilan program
-> Hasil
2. Buatlah eksperimen dengan meggunakan 1 driver (IC TTL 74LS48 atau CD4511) dan
sebuah 7S Common Katoda.
-> Rangkaian

-> Program
int A=13, B=12, C=11, D=10;
void setup() {
pinMode(A, OUTPUT);
pinMode(B, OUTPUT);
pinMode(C, OUTPUT);
pinMode(D, OUTPUT);
}
void digit0 () {
digitalWrite(A, LOW);
digitalWrite(B, LOW);
digitalWrite(C, LOW);
digitalWrite(D, LOW);
}
void digit1 () {
digitalWrite(A, HIGH);
digitalWrite(B, LOW);
digitalWrite(C, LOW);
digitalWrite(D, LOW);
}
void digit2 () {
digitalWrite(A, LOW);
digitalWrite(B, HIGH);
digitalWrite(C, LOW);
digitalWrite(D, LOW);
}
void digit3 () {
digitalWrite(A, HIGH);
digitalWrite(B, HIGH);
digitalWrite(C, LOW);
digitalWrite(D, LOW);
}
void digit4 () {
digitalWrite(A, LOW);
digitalWrite(B, LOW);
digitalWrite(C, HIGH);
digitalWrite(D, LOW);
}
void digit5 () {
digitalWrite(A, HIGH);
digitalWrite(B, LOW);
digitalWrite(C, HIGH);
digitalWrite(D, LOW);
}
void digit6 () {
digitalWrite(A, LOW);
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, LOW);
}
void digit7 () {
digitalWrite(A, HIGH);
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, LOW);
}
void digit8 () {
digitalWrite(A, LOW);
digitalWrite(B, LOW);
digitalWrite(C, LOW);
digitalWrite(D, HIGH);
}
void digit9 () {
digitalWrite(A, HIGH);
digitalWrite(B, LOW);
digitalWrite(C, LOW);
digitalWrite(D, HIGH);
}
void loop(){
digit9();
delay (500);
digit8();
delay (500);
digit7();
delay (500);
digit6();
delay (500);
digit5();
delay (500);
digit4();
delay (500);
digit3();
delay (500);
digit2();
delay (500);
digit1();
delay (500);
digit0();
delay (500);
}
-> Tampilan program
-> Hasil
3. Buat aplikasi kontrol 7S Common Anoda dan driver 74LS47 dengan menggunakan saklar
sebagai input untuk Set data (Up/down-counter) dan RESET data.
-> Rangkaian
-> Program
int A=13, B=12, C=11, D=10;
const int buttonPin1 = 7;
const int buttonPin2 = 6;
const int buttonPin3 = 5;
int buttonState1 = 0;
int buttonState2 = 0;
int buttonState3 = 0;
void setup() {
pinMode(A, OUTPUT);
pinMode(B, OUTPUT);
pinMode(C, OUTPUT);
pinMode(D, OUTPUT);
pinMode(buttonPin1, INPUT);
pinMode(buttonPin2, INPUT);
pinMode(buttonPin3, INPUT);
}
void digit0 () {
digitalWrite(A, LOW);
digitalWrite(B, LOW);
digitalWrite(C, LOW);
digitalWrite(D, LOW); }
void digit1 () {
digitalWrite(A, HIGH);
digitalWrite(B, LOW);
digitalWrite(C, LOW);
digitalWrite(D, LOW); }
void digit2 () {
digitalWrite(A, LOW);
digitalWrite(B, HIGH);
digitalWrite(C, LOW);
digitalWrite(D, LOW); }
void digit3 () {
digitalWrite(A, HIGH);
digitalWrite(B, HIGH);
digitalWrite(C, LOW);
digitalWrite(D, LOW); }
void digit4 () {
digitalWrite(A, LOW);
digitalWrite(B, LOW);
digitalWrite(C, HIGH);
digitalWrite(D, LOW); }
void digit5 () {
digitalWrite(A, HIGH);
digitalWrite(B, LOW);
digitalWrite(C, HIGH);
digitalWrite(D, LOW); }
void digit6 () {
digitalWrite(A, LOW);
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, LOW); }
void digit7 () {
digitalWrite(A, HIGH);
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, LOW);
}
void digit8 () {
digitalWrite(A, LOW);
digitalWrite(B, LOW);
digitalWrite(C, LOW);
digitalWrite(D, HIGH); }
void digit9 () {
digitalWrite(A, HIGH);
digitalWrite(B, LOW);
digitalWrite(C, LOW);
digitalWrite(D, HIGH); }
void loop(){
buttonState1 = digitalRead(buttonPin1 );
buttonState2 = digitalRead(buttonPin2 );
buttonState3 = digitalRead(buttonPin3 );
if(buttonState1 == LOW){
for (int i=9;i>=0;i--) {
showdigit(i);
delay (500); }; }
if(buttonState2 == LOW){
for (int i=0;i<10;i++) {
showdigit(i);
delay (500); }; }
if(buttonState3 == LOW){
asm volatile (" jmp 0"); } }
void showdigit (int digit) {
switch (digit) {
case 0: digit0 ();
break;
case 1: digit1 ();
break;
case 2: digit2 ();
break;
case 3: digit3 ();
break;
case 4: digit4 ();
break;
case 5: digit5 ();
break;
case 6: digit6 ();
break;
case 7: digit7 ();
break;
case 8: digit8 ();
break;
case 9: digit9 ();
break;
default: break;
}; };
-> Tampilan program
-> Hasil
LINK PERCOBAAN : http://bit.ly/Praktikum5mikro
Analisa
Pada praktikum kelima ini, saya melakukan percobaan tentang kontrol display 7-
segment. Pada praktikum ini menggunakan arduino, display 7- segment, dan simulator proteus.
Seven Segment Display memiliki 7 Segmen dimana setiap segmen dikendalikan secara ON dan
OFF untuk menampilkan angka yang diinginkan. Angka-angka dari 0 (nol) sampai 9 (Sembilan)
dapat ditampilkan dengan menggunakan beberapa kombinasi Segmen. Selain 0 – 9, Seven
Segment Display juga dapat menampilkan Huruf Hexadecimal dari A sampai F. Segmen atau
elemen-elemen pada Seven Segment Display diatur menjadi bentuk angka “8” yang agak miring
ke kanan dengan tujuan untuk mempermudah pembacaannya. Pada beberapa jenis Seven
Segment Display, terdapat juga penambahan “titik” yang menunjukan angka koma decimal.
Pada program 1A kita akan menampilkan angka dari 0 – 9 dengan menggunakan seven
segment common anoda. Terdapat total 9 kaki pada seven segment yang digunakan, 8
diantaranya adalah A, B, C, D, E, F, G, dan Dot Point (DP) dan satu kaki yang sedikit terpisah.
Kedelapan kaki disambungkan pada pin 7-13 pada Arduino secara berurutan, dengan urutan A
disambung dengan pin 13, B disambung dengan pin 12, dst. Sedangkan satu kaki yang sedikit
terpisah tadi disambungkan dengan power (vcc). Kemudian pada programnya kita buat digit
yang akan ditampilkan dari 0 – 9 sesuai dengan ketentuan pada tabel. Setelah dibuat
digitdigitnya, buat fungsi showdigit() yang berisi percabangan switch case untuk menampilkan
digit-digit yang dibuat. Dengan case 0 untuk menampilkan digit 0, case 1 menampilkan digit 1,
begitupun seterusnya. Kemudian pada fungsi loop(), fungsi showdigit() tadi dipanggil satu per
satu case nya, melalui looping for dengan kondisi i=0, i<10 dan diberi delay 1000ms
Pada program 1B menggunakan 7-S Common Anoda untuk menampilkan urutan
bilangan 0,1,2,3,4,5,6,7,8,9 dan sebaliknya. Berbeda dengan program pertama yang
menggunakan deklarasi pin konektor antara arduino dan 7-S dalam variabel, pada program kedua
ini deklarasi tersebut dituliskan dalam array dengan ukuran panjang array 7. Pada Common
Anoda, semua pin kutub anoda dari LED disambungkan ke VCC. Perlu diketahui bahwa 7-S
Common Anoda ini bersifat active-low yang artinya ketika diberi logika “0” (LOW), LED akan
menyala. Pertama dideklarasikan kondisi low/high yang disimpan dalam array untuk tiap
bilangannya. Format array tersebut adalah {a,b,c,d,e,f,g}. Contoh untuk mendefinisikan bentuk
digit bilangan 0 digunakan array {0,0,0,0,0,0,1}. LED a,b,c,d,e,f diberi logika low “0” agar LED
menyala. Sedangkan LED g diberi logika high “1” agar mati. Selanjutnya didalam void setup()
didefinisikan pin-pin arduino yang digunakan sebagai konektor dengan output 7-S. Juga
didefinisikan nilai logika LED dp low “0” yang artinya LED pada dot point tersebut akan terus
menyala. Lalu masuk ke dalam fungsi void writeDot(byte dot) yang berisi perintah digitalWrite
untuk mengaktifkan nilai logika masing-masing segmen tiap digit bilangannya. Selanjutnya
masuk ke dalam fungsi void sevenSegWrite(byte digit) yang didalamnya terdapat sintaks
pengkondisian for dengan argument looping byte segmen untuk menampilkan masing-masing
digit bilangannya yakni dari bilangan 0 sampai 9. Kemudian masuk ke fungsi void loop() yang
juga terdapat dua sintaks pengkondisian for. Perintah for pertama dengan argument byte count
dari 0 sampai 9 berisi perintah delay untuk masing-masing pergantian urutan tampilan digit
bilangannya (dari 0 menuju ke 9) yakni sebesar 1000 ms. Sedangkan perintah for kedua dengan
argument kebalikan dari argument pada fungsi pertama, yakni berisi perintah delay untuk
masing-masing pergantian urutan tampilan digit bilangannya dengan urutan kebalikan (dari 9
menuju ke 0), namun tetap dengan waktu delay yang sama yakni 1000 ms.
Pada program kedua ini masih dengan rangkaian yang sama seperti sebelumya, kita
mencoba menggunakan program yang lain untuk menampilkan angka digit dari 0 – 9
menggunakan seven segment common katoda. Jika pada program sebelumnya mendeklarasikan
satu persatu digitnya melalui fungsi, pada program ini menggunakan array byte dua dimensi
dengan 10 baris dan 7 kolom. Karena tipenya adalah byte maka nilainya pun hanya bisa 0 atau 1.
Terdapat beberapa fungsi pada program ini. Fungsi writeDot() untuk memadamkan dot point
pada seven segment. Fungsi sevenSegWrite() berfungsi untuk membuat urutan ditampilkannya
digit dengan menggunakan looping. Untuk menampilkan digit 0 – 9, menggunakan fungsi loop()
dengan memanggil fungsi sevenSegWrite() pada looping, kemudian diberi delay sebesar
1000ms.

Kesimpulan
Pada percobaan di atas didapatkan kesimpulan sebagai berikut :
1. Seven segment common cathode bersifat active-high, yaitu ketika diberi nilai logika 1
(HIGH), akan menyala dan jika diberi nilai logika 0 (LOW), akan mati.
2. Seven segment common anode bersifat active-low, yaitu Ketika diberi nilai logika 0 (LOW),
akan menyala dan jika diberi nilai logika 1 (HIGH), akan mati.
3. Pada percobaan ini terdapat dua cara untuk menampilkan digit, yaitu dengan memberi nilai bit
0 atau 1 dan dengan memberi nilai output HIGH atau LOW.
4. Dapat dilihat dari percobaan bahwa seven segment common cathode, satu kaki yang terpisah
disambungkan dengan ground karena semua kaki katoda terhubung menjadi satu pin (pin
tersebut) yang merupakan terminal negative ground, sedangkan pada seven segment common
anode satu kaki yang terpisah disambungkan dengan power (VCC) karena merupakan terminal
positif.

Anda mungkin juga menyukai