PRAKTEK MIKROKONTROLER
SEMESTER IV TH 2015/2016
JUDUL
PEMBUAT LAPORAN
Kelompok M6
NAMA PRAKTIKAN
1. Agustrian Maulana
2. Ahmad Rifai
3. Lutfi Naufal Gibrani
4. Merdhika
: 11 April 2016
: 16 April 2016
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.
Jumlah
1.
2.
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.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