Anda di halaman 1dari 10

LAPORAN PRAKTIKUM

PRAKTEK MIKROKONTROLER
SEMESTER IV TH 2015/2016

JUDUL

ANTARMUKA 7-SEGMENT DISPLAY


GRUP
M6

PROGRAM STUDI BROADBAND MULTIMEDIA

JURUSAN TEKNIK ELEKTRO

POLITEKNIK NEGERI JAKARTA


2016

PEMBUAT LAPORAN

Kelompok M6

NAMA PRAKTIKAN

1. Agustrian Maulana
2. Ahmad Rifai
3. Lutfi Naufal Gibrani
4. Merdhika

TGL. SELESAI PRAKTIKUM

: 11 April 2016

TGL. PENYERAHAN LAPORAN

: 16 April 2016

P5: ANTARMUKA 7-SEGMENT DISPLAY

1. TUJUAN PRAKTEK
a. Menunjukan cara meng-antarmuka 7-Segment Display ke board mikrokontroler Arduino
Uno.
b. Membuat aplikasi pengendalian yang menggunakan 7-Segment Display.

2. ALAT dan KOMPONEN YANG DIGUNAKAN


No.
Alat

Jumlah

1.

Board Arduino Uno

2.

Kabel USB A-B

3.

Protoboard

4.

7-Segment Display CC

5.

Potensiometer 10K

6.

RGB LED

7.

Resistor 220

8.

Kabel jumper

Secukupnya

9.

Transistor BC-547

3. APLIKASI ANTARMUKA 7-SEGMENT DISPLAY


3.1. Analisa Up Counter
3.1.a. Judul : P5.1 Up Counter
3.1.b.Skematik

Gambar 1 Skematik Up Counter


3.1.c.Cara Kerja Rangkaian
Seven-segment adalah modul output yang dapat mendisplay angka sehingga
menampilkan nilai tertentu.Untuk mengset seven segment dibutuhkan input logik 1 untuk jenis
anoda dan 0 untuk katoda.Pada rangkaian diatas segment yang diset semuanya dengan diberi
logik 0 (Ground) karena jenisnya katoda.Pada rangkaian diatas D2 mengset segment A,D3
menset segment B,D4 mengset segment C,D5 mengset segment D,D6 mengset segment E,D7
mengset segment F,D8 mengset G dan D9 mengset segment dot/Dp.
3.1.d.Analisa Sketch
//PROGRAM UNTUK COUNTER 1 DIGIT (0,1,2,....,9,0)
//Bit mewakili segment a sampai g dengan dp untuk angka 0-9
const byte numeral [10]=
{
//abcdefg dan dp
B11111100, //0
B01100000, //1
B11011010, //2
B11110010, //3
B01100110, //4
B10110110, //5
B00111110, //6
B11100000, //7
B11111110, //8
B11100110, //9
};
//pin untuk setiap segment //dp,g,f,e,d,c,b,a
const int segmentPins[8]={9,8,7,6,5,4,3,2};
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);
}
//jika nilai akhir 10 didisplay off
delay (200);
}
//definisi dan deklerasikan fungsi show digit ()untuk mendisplaykan
//angka 0-9 selain itu akan meng off kan display
void showDigit (int number)
{
boolean isBitSet;
for(int segment =1;segment<=8;segment ++)
{
if( number <0||number >9 )
{
isBitSet=0; //turn all of segment
}
else
{
isBitSet= bitRead(numeral[number],segment);
}
digitalWrite(segmentPins[segment],isBitSet);
}
}
Pada aplikasi ini memiliki fungsi yaitu melakukan pendisplayan secara berurut dari 0
sampai angka 9 kemduian mengulang ke angka 0 atau disebut juga sebagai Up Counter.yang
mempengaruhi perhitungan maju tersebut adalah dari fungsi for(int i=0; i<8;i++) yang dapat
mengincrementkan nilainya dan memiliki delay setiap perpindahan/jeda 1000 ms.Setiap angka
yang didisplay mencapai 9 maka akan kembali ke angka 0.

3.2.Analisa Potensiometer Input Display


3.2.a Judul : P5.2 Potensiometer Input Display
3.2.b.Skematik

Gambar 2 Skematik Potensiometer Input Display


3.2.c.Cara Kerja Rangkaian
Pada gambar skematik aplikasi P5.2 Potensiometer Input Display kaki pin D2
sampai dengan D9 dihubungkan ke 7-Segment. Pada percobaan kali ini, 7-Segment yang
digunakan adalah Common Cathode yang artinya pada rangkaian, kaki tengah 7-Segment
dihubungkan ke Ground. Sedangkan, kaki pin AD pada Aduino dihubungkan ke
Potensiometer yang nantinya digunakan untuk mengatur output berapakah yang akan
ditampilkan oleh 7-Segment.
Cara kerja rangkaian dengan bentuk dan sketch seperti P5.2 Potensiometer Input
Display adalah apabila Potensiometer diputar ke arah nilai maksimal, maka nilai output
yang ditampilkan oleh 7-Segment akan semakin besar. Range nilai yang mampu
ditampilkan oleh rangkaian kali ini adalah 0-9. Nilai yang ditampilkan bisa saja lebih dari
9 dengan cara menggunakan dua buah 7-Segment.

3.2.eAnalisa Sketch
//Program untuk mendisplay nilai potensiometer dalam angka 0-9
//Bit mewakili segment a sampai g dengan dp untuk angka 0-9
const byte numeral [10]=
{
//abcdefg dan dp
B11111100, //0
B01100000, //1
B11011010, //2
B11110010, //3
B01100110, //4
B10110110, //5
B00111110, //6
B11100000, //7
B11111110, //8
B11100110, //9
};
//pin untuk setiap segment //dp,g,f,e,d,c,b,a
const int segmentPins[8]={9,8,7,6,5,4,3,2};
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
for (int i=0;i<8;i++)
{
pinMode(segmentPins[i],OUTPUT);
}
}
void loop() {
// put your main code here, to run repeatedly:
int potVal= analogRead(A0);
potVal=map(potVal,0,1023,0,9);
Serial.println(potVal);
showDigit(potVal);
}
void showDigit (int number)
{
boolean isBitSet;
for(int segment =1;segment<=8;segment ++)
{
if( number <0||number >9 )
{
isBitSet=0; //turn all of segment

}
else
{
isBitSet= bitRead(numeral[number],segment);
}
digitalWrite(segmentPins[segment],isBitSet);
}
}
Pada percobaan P5.2 Potensiometer Input Display, menggunakan fungsi B11111100,
yang digunakan untuk menentukan segmen yang meyala dan padam, segmen yang diberi input 1
akan menyala, sedangkan yang diberi input 0 akan padam. Sehingga fungsi B11111100,
berfungsi untuk menampilkan nilai 0 pada 7-Segment. Berikutnya adalah fungsi B01100000,
yang penggunaannya masih sama dengan fungsi sebelumnya, namun fungsi ini digunakan untuk
menampilkan angka 1 pada 7-Segment, begitu seterusnya sampai dengan fungsi B11100110,
yang digunakan untuk menampilkan angka 9.
Percobaan
kedua
ini
juga
menggunakan
fungsi
const
int
segmentPins[8]={9,8,7,6,5,4,3,2}; yang digunakan untuk menentukan pin setiap segmen, pin 2
untuk segmen A, pin 3 untuk segmen B, pin 4 untuk segmen D sampai dengan pin 9 untuk
segmen DP; fungsi void setup() { Serial.begin(9600); for (int i=0;i<8;i++) yang digunakan untuk
menentukan nilai yang akan tampil pada 7-Segment, pada percobaan kali ini nilai yang
ditampilkan adalah 0-9, sehingga menggunakan for (int i=0;i<8;i++) dimana int i=0;i<8 artinya
adalah angka yang akan tampil pada saat Potensimeter dalam keadaan minimum adalah 0 dan
semakin Potensiometer diputar ke arah maksimal, maka nilai yang akan tampil pada 7-Segment
akan semakin besar karena terdapat fungsi i++. Fungsi pinMode(segmentPins[i],OUTPUT); pada
percobaan ini berfungsi untuk menentukan bahwa segmentPins[i] digunakan sebagai output.
Fungsi void loop() berguna agar pada saat disimulasikan, instruksi yang berada dibawah fungsi
ini akan terus berjalan tanpa berhenti; fungsi int potVal= analogRead(A0); berfungsi untuk
membaca nilai pada kaki pin A0 yang telah dihubungkan ke Potensiometer; fungsi
potVal=map(potVal,0,1023,0,9) digunakan untuk menentukan nilai Potensiometer. Sedangkan
instruksi yang digunakan untuk menampilkan nilai pada 7-Segment adalah sebagai berikut :
Serial.println(potVal);
showDigit(potVal);
}
void showDigit (int number)
{
boolean isBitSet;
for(int segment =1;segment<=8;segment ++)
{
if( number <0||number >9 )
{
isBitSet=0; //turn all of segment
}
else
{
isBitSet= bitRead(numeral[number],segment);

}
digitalWrite(segmentPins[segment],isBitSet);
}
}
4.KESIMPULAN
Pada aplikasi ini 7-Segment Display berfungsi sebagai output yang menampikan nilai
yang diinginkan hal tersebut membuat aplikasi ini dapat dipadukan dengan aplikasi input dan
output lainnya seperti contohnya pada Potensiometer Input Display.yang memadukan input
potensiometer yang display oleh 7-Segment

LAMPIRAN

Gambar rangkaian P5.1 Up Counter

P5.2 Potensiometer Input Display

Anda mungkin juga menyukai