0% menganggap dokumen ini bermanfaat (0 suara)
4 tayangan

Labsheet 05 Arduino - NEW

Diunggah oleh

dwikristanto21
Hak Cipta
© © All Rights Reserved
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
4 tayangan

Labsheet 05 Arduino - NEW

Diunggah oleh

dwikristanto21
Hak Cipta
© © All Rights Reserved
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 7

SMK NEGERI 2 KLATEN

LAB SHEET Praktik Mikrokontroler


Semester 3 LS 5 : SEVEN SEGMENT 4 X 40 Menit
No. LSHU/03/MPPL/001 TITL Tgl : 2022 Hal 1 dari 7

1. Kompetensi
Peserta didik 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 pembacaan input dengan seven segment
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;

Sambungan pin Arduino dan display 7 segment yaitu :


SMK NEGERI 2 KLATEN
LAB SHEET Praktik Mikrokontroler
Semester 3 LS 5 : SEVEN SEGMENT 4 X 40 Menit
No. LSHU/03/MPPL/001 TITL Tgl : 2022 Hal 2 dari 7

4. Alat dan Instrument


- Arduino Uno 1 buah
- Kabel USB 1 buah
- 7SEG 1 DIgit 1 buah
- Kabel jumper male – male secukupnya
- Pushbutton 1 buah
- Multimeter 1 buah

5. Langkah Kerja

1. Buat rangkaian Arduino dan sebuah pushbutton seperti gambar berikut:

2. Ketik program berikut pada editor Arduino IDE :

LS5-ANGKA Program menampilkan angka seven segmnt:


void setup() {
pinMode(2, OUTPUT); //SEG A
pinMode(0, OUTPUT); //SEG B
pinMode(4, OUTPUT); //SEG C
pinMode(5, OUTPUT); //SEG D
pinMode(16, OUTPUT); //SEG E
pinMode(14, OUTPUT); //SEG F
pinMode(12, OUTPUT); //SEG G
//pinMode(9, OUTPUT); //Dot Point(Titik)
//digitalWrite(9, 0); // start with the "dot" off
}
void loop() {
// Angka ‘0'
digitalWrite(2, 1); Ganti angka yang bewarna merah
digitalWrite(0, 1); sesuai dengan tabel pengujian
digitalWrite(4, 1);
digitalWrite(5, 1);
digitalWrite(16, 1);
digitalWrite(14, 1);
digitalWrite(12, 0); Ganti delay sesuai dengan
//digitalWrite(9, 1); kecepatan pergantian angka
delay(500);
}
SMK NEGERI 2 KLATEN
LAB SHEET Praktik Mikrokontroler
Semester 3 LS 5 : SEVEN SEGMENT 4 X 40 Menit
No. LSHU/03/MPPL/001 TITL Tgl : 2022 Hal 3 dari 7

3. Cek seven segment menggunakan multimeter dan isi tabel dibawah ini :

TABEL PENGUJIAN 1 2 3 4 5
0 1 2 3 4 5 6 7 8 9 Pin No
SEG A
SEG B
SEG C
SEG D
SEG E
SEG F
SEG G
DOT
Common (Anoda/Katoda)

6 7 8 9 10
SMK NEGERI 2 KLATEN
LAB SHEET Praktik Mikrokontroler
Semester 3 LS 5 : SEVEN SEGMENT 4 X 40 Menit
No. LSHU/03/MPPL/001 TITL Tgl : 2022 Hal 4 dari 7

LS5-Pengembangan-Program seven segment satu digit :


/*
* MONSTER ARDUINO V2
* Program Seven Segment 1 Digit
* www.ElangSakti.com
*/

// definisikan CC, CA, ON, dan Brightness


#define COMMON_ANODE HIGH
#define COMMON_CATHODE LOW
#define ON HIGH
#define BRIGHTNESS 100

// konfigurasi seven segment CC


// CC : active low
boolean COMMON = COMMON_CATHODE;
boolean SEGMENT_ON = LOW;
boolean SEGMENT_OFF = !SEGMENT_ON;

// pin 2-9 untuk segmen A – DP


const byte SegA = 2; // A
const byte SegB = 3; // B
const byte SegC = 4; // C
const byte SegD = 5; // D
const byte SegE = 6; // E
const byte SegF = 7; // F
const byte SegG = 8; // G
const byte SegDp = 9; // DP

// jadikan array biar mudah


const byte SEGMENT[] = {SegA, SegB, SegC, SegD, SegE, SegF, SegG, SegD
// pengaturan untuk brightness
unsigned long brightness_now = 0;
unsigned long brightness_last = 0;
unsigned long brightness_limit = 0;

// data counter untuk ditampilkan


byte counter = 0;

void setup() {

// sesuaikan active low/high


// dengan tipe Common Anode atau Common Cathode
if( COMMON == COMMON_ANODE ){
SEGMENT_ON = !ON;
} else {
SEGMENT_ON = ON;
}
SEGMENT_OFF = !SEGMENT_ON;

// set segment sebagai output


for(byte i=0; i<sizeof(SEGMENT); i++){
pinMode(SEGMENT[i],OUTPUT);
}
}

void loop() {

// counter data setiap 1 detik


// jika lebih besar dr 9, reset ke 0
if( nonblocking_delay(1000) ){
counter++;
if(counter > 9) counter = 0;
}
SMK NEGERI 2 KLATEN
LAB SHEET Praktik Mikrokontroler
Semester 3 LS 5 : SEVEN SEGMENT 4 X 40 Menit
No. LSHU/03/MPPL/001 TITL Tgl : 2022 Hal 5 dari 7

// tampilkan angka di seven segment


Digit(counter, SEGMENT_OFF, BRIGHTNESS);

// fungsi Digit
// untuk menampilkan angka pada seven segment
void Digit(byte data, boolean dp, int brightness){

// delay nyala segment, efeknya pada brigthness


brightness_limit = constrain(brightness,1,100);
brightness_limit = map(brightness_limit,1,100,1,5000);

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;

case 4:
digitalWrite(SegA, SEGMENT_OFF);
digitalWrite(SegB, SEGMENT_ON);
digitalWrite(SegC, SEGMENT_ON);
SMK NEGERI 2 KLATEN
LAB SHEET Praktik Mikrokontroler
Semester 3 LS 5 : SEVEN SEGMENT 4 X 40 Menit
No. LSHU/03/MPPL/001 TITL Tgl : 2022 Hal 6 dari 7

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);
digitalWrite(SegDp, dp);
break;
}
}else{
// matikan semua 7 segment
for(byte d=0; d<sizeof(SEGMENT); d++){
SMK NEGERI 2 KLATEN
LAB SHEET Praktik Mikrokontroler
Semester 3 LS 5 : SEVEN SEGMENT 4 X 40 Menit
No. LSHU/03/MPPL/001 TITL Tgl : 2022 Hal 7 dari 7

digitalWrite(SEGMENT[d], SEGMENT_OFF);
}
brightness_last = brightness_now;
}
}

// tambahan untuk membuat delay non blocking


unsigned long nonblocking_time = millis();
unsigned long nonblocking_last = millis();
boolean nonblocking_delay(long milidetik){
nonblocking_time = millis();
if(nonblocking_time – nonblocking_last >= milidetik){
nonblocking_last = nonblocking_time;
return true;
}
return false;
}

LS5-Tugas:
1. Buatlah program untuk menampilkan counter dari 1-3 dengan tombol menggunakan
seven segmen segment

Anda mungkin juga menyukai