Labsheet 05 Arduino
Labsheet 05 Arduino
1. Kompetensi
Mahasiswa mampu menjelaskan pemrograman output digital mikrokontroler Arduino menggunakan
komponen seven segment
2. Sub Kompetensi
Dapat menerapkan pemrograman output digital dengan seven segment
Dapat menerapkan pemrograman aplikasi seven segment dengan shift register
3. Dasar Teori
Seven Segment (7-Segment) tidak asing lagi, yang sering dijumpai pada kehidupan sehari-sehari,
seperti pada jam tangan, jam dinding, mesin cuci, serta alat-alat elektronik lainnya. Walaupun bisa
dikatakan bahwa 7-Seg merupakan tampilan yang sudah lama ada, akan tetapi trend pengguanaanya
tidak bisa digantikan dengan tampilan lain. Hal inilah yang menjadikan 7-segment tetap masih
dipertahankan sebagai salah satu tampilan pada segala jenis alat-alat elektronik.
Pada dasarnya 7-seg terdiri dari 7 buah LED, yang dirangkai menjadi satu sehingga dapat
membentuk angka-angka 0-9. Pada perkembangannya 7-seg ditambahkan satu bagian lagi sebagai
tanda titik (dot point). Berdasarkan standart penamaan setiap bagian pada 7-seg dapat dituliskan
dengan ilustrasi gambar sebagai berikut;
7-seg terdiri dari 2 jenis atau type yang beredar dipasaran, yaitu Common Anode dan Common
Cathode. Common memiliki terjemahan “bersama”, artinya salah satu kutup pada 7-seg dijadikan
menjadi satu, atau dapat dikatakan satu kaki 7-seg dipakai bersama dengan jenis kutup yang sejenis.
Pengetahuan akan common pada setiap penggunaan 7-seg sangatlah penting, dikarena berkaitan
dengan cara untuk menghidupkannya apakah active high atau active low. Secara skematik dua jenis
tersebut dapat digambarkan sebagai berikut;
Dibuat oleh : Dilarang memperbanyak sebagian atau seluruh isi dokumen Diperiksa oleh :
SGT tanpa ijin tertulis dari Fakultas Teknik Universitas Negeri Yogyakarta HSP
FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA
LAB SHEET Praktik Mikrokontroler
Semester 6 LS 5 : Aplikasi seven segment 8 X 60 Menit
No. LST/EKO/EKO 215/01 Revisi : 01 Tgl : 2017 Hal 2 dari 15
void setup() {
void loop() {
Dibuat oleh : Dilarang memperbanyak sebagian atau seluruh isi dokumen Diperiksa oleh :
SGT tanpa ijin tertulis dari Fakultas Teknik Universitas Negeri Yogyakarta HSP
FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA
LAB SHEET Praktik Mikrokontroler
Semester 6 LS 5 : Aplikasi seven segment 8 X 60 Menit
No. LST/EKO/EKO 215/01 Revisi : 01 Tgl : 2017 Hal 3 dari 15
// fungsi Digit
// untuk menampilkan angka pada seven segment
void Digit(byte data, boolean dp, int brightness){
brightness_now = micros();
if(brightness_now – brightness_last < brightness_limit){
// nyalakan 7 segmen sesuai angka
switch(data){
case 0:
digitalWrite(SegA, SEGMENT_ON);
digitalWrite(SegB, SEGMENT_ON);
digitalWrite(SegC, SEGMENT_ON);
digitalWrite(SegD, SEGMENT_ON);
digitalWrite(SegE, SEGMENT_ON);
digitalWrite(SegF, SEGMENT_ON);
digitalWrite(SegG, SEGMENT_OFF);
digitalWrite(SegDp, dp);
break;
case 1:
digitalWrite(SegA, SEGMENT_OFF);
digitalWrite(SegB, SEGMENT_ON);
digitalWrite(SegC, SEGMENT_ON);
digitalWrite(SegD, SEGMENT_OFF);
digitalWrite(SegE, SEGMENT_OFF);
digitalWrite(SegF, SEGMENT_OFF);
digitalWrite(SegG, SEGMENT_OFF);
digitalWrite(SegDp, dp);
break;
case 2:
digitalWrite(SegA, SEGMENT_ON);
digitalWrite(SegB, SEGMENT_ON);
digitalWrite(SegC, SEGMENT_OFF);
digitalWrite(SegD, SEGMENT_ON);
digitalWrite(SegE, SEGMENT_ON);
digitalWrite(SegF, SEGMENT_OFF);
digitalWrite(SegG, SEGMENT_ON);
digitalWrite(SegDp, dp);
break;
case 3:
digitalWrite(SegA, SEGMENT_ON);
digitalWrite(SegB, SEGMENT_ON);
digitalWrite(SegC, SEGMENT_ON);
digitalWrite(SegD, SEGMENT_ON);
digitalWrite(SegE, SEGMENT_OFF);
digitalWrite(SegF, SEGMENT_OFF);
digitalWrite(SegG, SEGMENT_ON);
digitalWrite(SegDp, dp);
break;
Dibuat oleh : Dilarang memperbanyak sebagian atau seluruh isi dokumen Diperiksa oleh :
SGT tanpa ijin tertulis dari Fakultas Teknik Universitas Negeri Yogyakarta HSP
FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA
LAB SHEET Praktik Mikrokontroler
Semester 6 LS 5 : Aplikasi seven segment 8 X 60 Menit
No. LST/EKO/EKO 215/01 Revisi : 01 Tgl : 2017 Hal 4 dari 15
case 4:
digitalWrite(SegA, SEGMENT_OFF);
digitalWrite(SegB, SEGMENT_ON);
digitalWrite(SegC, SEGMENT_ON);
digitalWrite(SegD, SEGMENT_OFF);
digitalWrite(SegE, SEGMENT_OFF);
digitalWrite(SegF, SEGMENT_ON);
digitalWrite(SegG, SEGMENT_ON);
digitalWrite(SegDp, dp);
break;
case 5:
digitalWrite(SegA, SEGMENT_ON);
digitalWrite(SegB, SEGMENT_OFF);
digitalWrite(SegC, SEGMENT_ON);
digitalWrite(SegD, SEGMENT_ON);
digitalWrite(SegE, SEGMENT_OFF);
digitalWrite(SegF, SEGMENT_ON);
digitalWrite(SegG, SEGMENT_ON);
digitalWrite(SegDp, dp);
break;
case 6:
digitalWrite(SegA, SEGMENT_ON);
digitalWrite(SegB, SEGMENT_OFF);
digitalWrite(SegC, SEGMENT_ON);
digitalWrite(SegD, SEGMENT_ON);
digitalWrite(SegE, SEGMENT_ON);
digitalWrite(SegF, SEGMENT_ON);
digitalWrite(SegG, SEGMENT_ON);
digitalWrite(SegDp, dp);
break;
case 7:
digitalWrite(SegA, SEGMENT_ON);
digitalWrite(SegB, SEGMENT_ON);
digitalWrite(SegC, SEGMENT_ON);
digitalWrite(SegD, SEGMENT_OFF);
digitalWrite(SegE, SEGMENT_OFF);
digitalWrite(SegF, SEGMENT_OFF);
digitalWrite(SegG, SEGMENT_OFF);
digitalWrite(SegDp, dp);
break;
case 8:
digitalWrite(SegA, SEGMENT_ON);
digitalWrite(SegB, SEGMENT_ON);
digitalWrite(SegC, SEGMENT_ON);
digitalWrite(SegD, SEGMENT_ON);
digitalWrite(SegE, SEGMENT_ON);
digitalWrite(SegF, SEGMENT_ON);
digitalWrite(SegG, SEGMENT_ON);
digitalWrite(SegDp, dp);
break;
case 9:
digitalWrite(SegA, SEGMENT_ON);
digitalWrite(SegB, SEGMENT_ON);
digitalWrite(SegC, SEGMENT_ON);
digitalWrite(SegD, SEGMENT_ON);
digitalWrite(SegE, SEGMENT_OFF);
digitalWrite(SegF, SEGMENT_ON);
digitalWrite(SegG, SEGMENT_ON);
Dibuat oleh : Dilarang memperbanyak sebagian atau seluruh isi dokumen Diperiksa oleh :
SGT tanpa ijin tertulis dari Fakultas Teknik Universitas Negeri Yogyakarta HSP
FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA
LAB SHEET Praktik Mikrokontroler
Semester 6 LS 5 : Aplikasi seven segment 8 X 60 Menit
No. LST/EKO/EKO 215/01 Revisi : 01 Tgl : 2017 Hal 5 dari 15
digitalWrite(SegDp, dp);
break;
}
}else{
// matikan semua 7 segment
for(byte d=0; d<sizeof(SEGMENT); d++){
digitalWrite(SEGMENT[d], SEGMENT_OFF);
}
brightness_last = brightness_now;
}
}
Dibuat oleh : Dilarang memperbanyak sebagian atau seluruh isi dokumen Diperiksa oleh :
SGT tanpa ijin tertulis dari Fakultas Teknik Universitas Negeri Yogyakarta HSP
FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA
LAB SHEET Praktik Mikrokontroler
Semester 6 LS 5 : Aplikasi seven segment 8 X 60 Menit
No. LST/EKO/EKO 215/01 Revisi : 01 Tgl : 2017 Hal 6 dari 15
#define ON HIGH
#define BRIGHTNESS 100
// string angka
String str_data_last = "";
void setup() {
Dibuat oleh : Dilarang memperbanyak sebagian atau seluruh isi dokumen Diperiksa oleh :
SGT tanpa ijin tertulis dari Fakultas Teknik Universitas Negeri Yogyakarta HSP
FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA
LAB SHEET Praktik Mikrokontroler
Semester 6 LS 5 : Aplikasi seven segment 8 X 60 Menit
No. LST/EKO/EKO 215/01 Revisi : 01 Tgl : 2017 Hal 7 dari 15
}
}
void loop() {
brightness_now = micros();
if(brightness_now - brightness_last < brightness_limit){
case 1:
digitalWrite(SegA, SEGMENT_OFF);
digitalWrite(SegB, SEGMENT_ON);
digitalWrite(SegC, SEGMENT_ON);
digitalWrite(SegD, SEGMENT_OFF);
digitalWrite(SegE, SEGMENT_OFF);
digitalWrite(SegF, SEGMENT_OFF);
digitalWrite(SegG, SEGMENT_OFF);
Dibuat oleh : Dilarang memperbanyak sebagian atau seluruh isi dokumen Diperiksa oleh :
SGT tanpa ijin tertulis dari Fakultas Teknik Universitas Negeri Yogyakarta HSP
FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA
LAB SHEET Praktik Mikrokontroler
Semester 6 LS 5 : Aplikasi seven segment 8 X 60 Menit
No. LST/EKO/EKO 215/01 Revisi : 01 Tgl : 2017 Hal 8 dari 15
digitalWrite(SegDp, dp);
break;
case 2:
digitalWrite(SegA, SEGMENT_ON);
digitalWrite(SegB, SEGMENT_ON);
digitalWrite(SegC, SEGMENT_OFF);
digitalWrite(SegD, SEGMENT_ON);
digitalWrite(SegE, SEGMENT_ON);
digitalWrite(SegF, SEGMENT_OFF);
digitalWrite(SegG, SEGMENT_ON);
digitalWrite(SegDp, dp);
break;
case 3:
digitalWrite(SegA, SEGMENT_ON);
digitalWrite(SegB, SEGMENT_ON);
digitalWrite(SegC, SEGMENT_ON);
digitalWrite(SegD, SEGMENT_ON);
digitalWrite(SegE, SEGMENT_OFF);
digitalWrite(SegF, SEGMENT_OFF);
digitalWrite(SegG, SEGMENT_ON);
digitalWrite(SegDp, dp);
break;
case 4:
digitalWrite(SegA, SEGMENT_OFF);
digitalWrite(SegB, SEGMENT_ON);
digitalWrite(SegC, SEGMENT_ON);
digitalWrite(SegD, SEGMENT_OFF);
digitalWrite(SegE, SEGMENT_OFF);
digitalWrite(SegF, SEGMENT_ON);
digitalWrite(SegG, SEGMENT_ON);
digitalWrite(SegDp, dp);
break;
case 5:
digitalWrite(SegA, SEGMENT_ON);
digitalWrite(SegB, SEGMENT_OFF);
digitalWrite(SegC, SEGMENT_ON);
digitalWrite(SegD, SEGMENT_ON);
digitalWrite(SegE, SEGMENT_OFF);
digitalWrite(SegF, SEGMENT_ON);
digitalWrite(SegG, SEGMENT_ON);
digitalWrite(SegDp, dp);
break;
case 6:
digitalWrite(SegA, SEGMENT_ON);
digitalWrite(SegB, SEGMENT_OFF);
digitalWrite(SegC, SEGMENT_ON);
digitalWrite(SegD, SEGMENT_ON);
digitalWrite(SegE, SEGMENT_ON);
digitalWrite(SegF, SEGMENT_ON);
digitalWrite(SegG, SEGMENT_ON);
digitalWrite(SegDp, dp);
break;
case 7:
digitalWrite(SegA, SEGMENT_ON);
Dibuat oleh : Dilarang memperbanyak sebagian atau seluruh isi dokumen Diperiksa oleh :
SGT tanpa ijin tertulis dari Fakultas Teknik Universitas Negeri Yogyakarta HSP
FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA
LAB SHEET Praktik Mikrokontroler
Semester 6 LS 5 : Aplikasi seven segment 8 X 60 Menit
No. LST/EKO/EKO 215/01 Revisi : 01 Tgl : 2017 Hal 9 dari 15
digitalWrite(SegB, SEGMENT_ON);
digitalWrite(SegC, SEGMENT_ON);
digitalWrite(SegD, SEGMENT_OFF);
digitalWrite(SegE, SEGMENT_OFF);
digitalWrite(SegF, SEGMENT_OFF);
digitalWrite(SegG, SEGMENT_OFF);
digitalWrite(SegDp, dp);
break;
case 8:
digitalWrite(SegA, SEGMENT_ON);
digitalWrite(SegB, SEGMENT_ON);
digitalWrite(SegC, SEGMENT_ON);
digitalWrite(SegD, SEGMENT_ON);
digitalWrite(SegE, SEGMENT_ON);
digitalWrite(SegF, SEGMENT_ON);
digitalWrite(SegG, SEGMENT_ON);
digitalWrite(SegDp, dp);
break;
case 9:
digitalWrite(SegA, SEGMENT_ON);
digitalWrite(SegB, SEGMENT_ON);
digitalWrite(SegC, SEGMENT_ON);
digitalWrite(SegD, SEGMENT_ON);
digitalWrite(SegE, SEGMENT_OFF);
digitalWrite(SegF, SEGMENT_ON);
digitalWrite(SegG, SEGMENT_ON);
digitalWrite(SegDp, dp);
break;
case '-':
digitalWrite(SegA, SEGMENT_OFF);
digitalWrite(SegB, SEGMENT_OFF);
digitalWrite(SegC, SEGMENT_OFF);
digitalWrite(SegD, SEGMENT_OFF);
digitalWrite(SegE, SEGMENT_OFF);
digitalWrite(SegF, SEGMENT_OFF);
digitalWrite(SegG, SEGMENT_ON);
digitalWrite(SegDp, dp);
break;
}
}else{
// matikan semua digit
for(byte d=0; d<sizeof(DIGIT); d++){
digitalWrite(DIGIT[d], DIGIT_OFF);
}
brightness_last = brightness_now;
}
}
Dibuat oleh : Dilarang memperbanyak sebagian atau seluruh isi dokumen Diperiksa oleh :
SGT tanpa ijin tertulis dari Fakultas Teknik Universitas Negeri Yogyakarta HSP
FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA
LAB SHEET Praktik Mikrokontroler
Semester 6 LS 5 : Aplikasi seven segment 8 X 60 Menit
Hal 10 dari
No. LST/EKO/EKO 215/01 Revisi : 01 Tgl : 2017
15
5. Langkah Kerja
a. Rakit rangkaian arduino dan seven segment satu digit sebagai berikut :
b. Install library sevseg dengan cara sebagai berikut : Klik sketchinclude library pilih add.ZIP
library kemudian arahkan ke file sevseg-master.zip
Dibuat oleh : Dilarang memperbanyak sebagian atau seluruh isi dokumen Diperiksa oleh :
SGT tanpa ijin tertulis dari Fakultas Teknik Universitas Negeri Yogyakarta HSP
FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA
LAB SHEET Praktik Mikrokontroler
Semester 6 LS 5 : Aplikasi seven segment 8 X 60 Menit
No. LST/EKO/EKO 215/01 Revisi : 01 Tgl : 2017 Hal 11 dari 15
void setup() {
// konfigurasi sevseg
SevSegment.begin(HW_Config,
sizeof(Digit), Digit,
Segments,
R_Segments);
void loop() {
Dibuat oleh : Dilarang memperbanyak sebagian atau seluruh isi dokumen Diperiksa oleh :
SGT tanpa ijin tertulis dari Fakultas Teknik Universitas Negeri Yogyakarta HSP
FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA
LAB SHEET Praktik Mikrokontroler
Semester 6 LS 5 : Aplikasi seven segment 8 X 60 Menit
Hal 12 dari
No. LST/EKO/EKO 215/01 Revisi : 01 Tgl : 2017
15
// konversi angka
// 8 bit data : A B C D E F G DP
const byte angka[] = {
B11111100, // 0
B01100000, // 1
B11011010, // 2
B11110010, // 3
B01100110, // 4
B10110110, // 5
B10111110, // 6
B11100000, // 7
B11111110, // 8
B11110110, // 9
B00000010 // -
};
// data counter
byte counter = 0;
void setup() {
// konfigurasi pin sebagai ouput
pinMode(LatchPin, OUTPUT);
pinMode(ClockPin, OUTPUT);
pinMode(DataPin, OUTPUT);
void loop() {
// delay 1 detik
if ( nonblocking_delay(1000) ){
counter++;
if(counter >= sizeof(angka)) counter = 0;
// mulai transfer
digitalWrite(LatchPin, LOW);
// kirim data
shiftOut(DataPin, ClockPin, LSBFIRST, angka[counter]);
// stop transfer
digitalWrite(LatchPin, HIGH);
}
}
Dibuat oleh : Dilarang memperbanyak sebagian atau seluruh isi dokumen Diperiksa oleh :
SGT tanpa ijin tertulis dari Fakultas Teknik Universitas Negeri Yogyakarta HSP
FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA
LAB SHEET Praktik Mikrokontroler
Semester 6 LS 5 : Aplikasi seven segment 8 X 60 Menit
Hal 13 dari
No. LST/EKO/EKO 215/01 Revisi : 01 Tgl : 2017
15
}
return false;
}
// common cathode
#define OFF ~255
// untuk brightness
#define BRIGHTNESS 100
// konversi angka
// 8 bit data : A B C D E F G DP
const byte Angka[] = {
B11111100, // 0
B01100000, // 1
B11011010, // 2
B11110010, // 3
B01100110, // 4
B10110110, // 5
B10111110, // 6
B11100000, // 7
B11111110, // 8
B11110110, // 9
B00000010 // -
};
Dibuat oleh : Dilarang memperbanyak sebagian atau seluruh isi dokumen Diperiksa oleh :
SGT tanpa ijin tertulis dari Fakultas Teknik Universitas Negeri Yogyakarta HSP
FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA
LAB SHEET Praktik Mikrokontroler
Semester 6 LS 5 : Aplikasi seven segment 8 X 60 Menit
Hal 14 dari
No. LST/EKO/EKO 215/01 Revisi : 01 Tgl : 2017
15
int counter = 0;
void setup() {
// konfigurasi pin sebagai ouput
pinMode(LatchPin, OUTPUT);
pinMode(ClockPin, OUTPUT);
pinMode(DataPin, OUTPUT);
void loop() {
// delay 1 detik
if ( nonblocking_delay(1000) ){
counter++;
if( counter >= 10000 ) counter = 0;
// cetak angka
PrintDigit(counter, jumlah_digit);
}
// mulai transfer
digitalWrite(LatchPin, LOW);
brightness_now = micros();
if(brightness_now - brightness_last < brightness_limit){
Dibuat oleh : Dilarang memperbanyak sebagian atau seluruh isi dokumen Diperiksa oleh :
SGT tanpa ijin tertulis dari Fakultas Teknik Universitas Negeri Yogyakarta HSP
FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA
LAB SHEET Praktik Mikrokontroler
Semester 6 LS 5 : Aplikasi seven segment 8 X 60 Menit
Hal 15 dari
No. LST/EKO/EKO 215/01 Revisi : 01 Tgl : 2017
15
}else{
DIGIT_SELECT++;
if( DIGIT_SELECT >= lenstr) DIGIT_SELECT = 0;
brightness_last = brightness_now;
}
// stop transfer
digitalWrite(LatchPin, HIGH);
}
Dibuat oleh : Dilarang memperbanyak sebagian atau seluruh isi dokumen Diperiksa oleh :
SGT tanpa ijin tertulis dari Fakultas Teknik Universitas Negeri Yogyakarta HSP