Anda di halaman 1dari 11

FAKULTAS TEKNIK

UNIVERSITAS NEGERI YOGYAKARTA


JOB SHEET SISTEM KONTROL ELEKTRONIK
Semester II Penggunaan 7 Segment Pada Arduino 200 menit
No. JST/OTO5305/6305 Revisi : 01 Tgl: 27 Maret 2020 SKE_PR03
I Wayan Adiyasa, S.Pd., M.Eng.

A. Kompetensi:
Memahami penggunaan function, looping, dan array pada Arduino.

B. Sub Kompetensi:

Setelah selesai praktikum mahasiswa dapat:


1. Mampu menggunakan program looping di dalam sebuah perulangan.
2. Mampu mengaplikasi multi 7 segment sebagai display.
3. Mampu memanfaatkan proses multiplexer.

C. Alat dan Bahan:


1. Trainer sistem kontrol elektronik
2. Unit komputer berisi software simulasi dan IDE Arduino

D. Kajian Teori

Penggunaan 2 atau lebih 7 segment tentunya akan membutuhkan pin Arduino yang
sangat banyak. Sehingga diperlukan sebuah metode untuk menyederhanakan agar
penggunaan pin dapat efisien. Dengan menggunakan proses scanning, maka diperlukan pin
sejumlah 7 ditambah dengan jumlah 7 segment yang digunakan. Rangkaian dapat dilihat pada
Gambar 1. Dimana terdapat 9 pin Arduino yang digunakan untuk menyalakan 7 segment.
Prinsip kerjanya adalah, 7 segmen satuan (paling kanan) akan menyala yang paling
pertama. Pin 9 Arduino HIGH. Saat kondisi HIGH, pin 2-8 Arduino akan mengeluarkan data
array untuk membentuk pola angka pada 7 segment (lihat job sebelumnya). Data pola angka
yang ditampilkan ditentukan oleh program.
Saat pin 9 Arduino LOW, maka pin 10 Arduino akan berlogika HIGH untuk
menampilkan pola angka pada 7 segment sebelah kiri. Saat pin 10 berlogika HIGH, pin 2-8
Arduino mengeluarkan data array untuk membentuk pola angka pada 7 segment. Tentunya
pola angka 7 segment 1 dengan yang lainnya berbeda sesuai dengan program.
Untuk proses scanning 7 segment pada pin 2-10 Arduino, maka akan menggunakan
syntax “for” secara bertingkat. Pada program menggunakan 2 buah “for” secara bertingkat.
“for” paling luar digunakan untuk menunjukan data pola angka (0-9) yang akan ditampilkan.
Sedangkan “for” yang di dalam digunakan untuk membentuk pola angka 7 segment.

Dilarang memperbanyak sebagian atau seluruh isi dokumen tanpa ijin tertulis dari
Sekolah Vokasi Universitas Negeri Yogyakarta
1
FAKULTAS TEKNIK
UNIVERSITAS NEGERI YOGYAKARTA
JOB SHEET SISTEM KONTROL ELEKTRONIK
Semester II Penggunaan 7 Segment Pada Arduino 200 menit
No. JST/OTO5305/6305 Revisi : 01 Tgl: 27 Maret 2020 SKE_PR03
I Wayan Adiyasa, S.Pd., M.Eng.

E. Keselamatan Kerja:

1. Bacalah dan pahamilah kajian teori sebelum melakukan coding.


2. Sebelum melakukan proses compile program, cek kembali coding, perhatikan tanda titik
koma (;), tanda titik (.), tanda kurung buka tutup (), tanda kurawal buka tutup ({}) pada
program. Kurangnya tanda tersebut dapat menyebabkan error pada program saat
proses compile.
3. Gunakan alat praktikum sesuai dengan fungsinya.
4. Laksanakan praktikum sesuai dengan prosedur kerja.
5. Tanyakan pada instruktur apabila mengalami permasalahan praktikum.

F. Langkah Kerja:
1. Siapkan komputer atau laptop yang akan digunakan untuk melakukan simulasi dan
pemprograman Arduino.
2. Buat gambar rangkaian seperti Gambar 1 pada program simulasi.
3. Setelah gambar rangkaian pada software simulasi selesai, lanjutkan dengan membuat
program dengan Coding 1 dengan menggunakan IDE Arduino.
4. Setelah coding selesai, lakukan compile dengan menggunakan menu “Sketch”,
kemudian mengklik “Export Compiled Binary” pada IDE Arduino.
5. Setelah proses compile selesai, kembali ke gambar rangkaian.
6. Lakukan “Edit Component” pada Arduino dengan klik double.
7. Masukan file “.hex” hasil compile dengan menggunakan IDE Arduino pada “Program file”
Arduino.
8. Lokasi file “.hex” berada di tempat penyimpanan file “coding 1”.
9. Jalankan simulasi dan amati hasilnya.
10. Catat hasil pada laporan sementara.
11. Lakukan langkah kerja 2-10 untuk Gambar 2 dan Coding 2.
12. Setelah Gambar 2 dan Coding 2 berhasil, lanjutkan dengan menguji program pada
trainer sistem kontrol elektronik.
13. Buatlah rangkaian pada trainer seperti Gambar 2.
14. Setelah selesai merangkai trainer sistem kontrol elektronik, lanjutkan dengan
meng”Upload” program ke Arduino pada trainer sistem kontrol elektronik.
15. Amati dan catat hasil pratikum ke laporan sementara.

Dilarang memperbanyak sebagian atau seluruh isi dokumen tanpa ijin tertulis dari
Sekolah Vokasi Universitas Negeri Yogyakarta
2
FAKULTAS TEKNIK
UNIVERSITAS NEGERI YOGYAKARTA
JOB SHEET SISTEM KONTROL ELEKTRONIK
Semester II Penggunaan 7 Segment Pada Arduino 200 menit
No. JST/OTO5305/6305 Revisi : 01 Tgl: 27 Maret 2020 SKE_PR03
I Wayan Adiyasa, S.Pd., M.Eng.

G. Instruksi

Gambar 1

Coding 1
const int Pot[7] = {2, 3, 4, 5, 6, 7, 8};
const int P7s[2] = {9, 10};
int data[2] = {0, 0};
int puluhan, satuan;

//a, b, c, d, e, f, g pola 7 segment


int segment[10][7] =
{ {0, 0, 0, 0, 0, 0, 1}, // 0
{1, 0, 0, 1, 1, 1, 1}, // 1
{0, 0, 1, 0, 0, 1, 0}, // 2
{0, 0, 0, 0, 1, 1, 0}, // 3
{1, 0, 0, 1, 1, 0, 0}, // 4
{0, 1, 0, 0, 1, 0, 0}, // 5
{0, 1, 0, 0, 0, 0, 0}, // 6
{0, 0, 0, 1, 1, 1, 1}, // 7
{0, 0, 0, 0, 0, 0, 0}, // 8
{0, 0, 0, 0, 1, 0, 0} // 9
};

void setup() {
for (int x = 0; x < 7; x++) {
pinMode(Pot[x], OUTPUT);
}
pinMode(P7s[0], OUTPUT);
pinMode(P7s[1], OUTPUT);
}
void loop() {
hitung();
tampil();
}

Dilarang memperbanyak sebagian atau seluruh isi dokumen tanpa ijin tertulis dari
Sekolah Vokasi Universitas Negeri Yogyakarta
3
FAKULTAS TEKNIK
UNIVERSITAS NEGERI YOGYAKARTA
JOB SHEET SISTEM KONTROL ELEKTRONIK
Semester II Penggunaan 7 Segment Pada Arduino 200 menit
No. JST/OTO5305/6305 Revisi : 01 Tgl: 27 Maret 2020 SKE_PR03
I Wayan Adiyasa, S.Pd., M.Eng.

void hitung(void) {
satuan++;
if (satuan >= 10) {
puluhan++;
satuan = 0;
}
if (puluhan >= 10) {
puluhan = 0;
satuan = 0;
}
data[0] = satuan;
data[1] = puluhan;
}

void tampil(void) {
for (int z = 0; z < 100; z++) {
for (int y = 0; y < 2; y++) {
digitalWrite(P7s[y], HIGH);
for (int x = 0; x < 7; x++) {
digitalWrite(Pot[x], segment[data[y]][x]);
}
delay(5);
digitalWrite(P7s[y], LOW);
}
}
}

Gambar 2

Coding 2
const int Pot[7] = {2, 3, 4, 5, 6, 7, 8};
const int P7s[2] = {9, 10};
const int su = A0; // Switch up
const int sd = A1; // Switch down

Dilarang memperbanyak sebagian atau seluruh isi dokumen tanpa ijin tertulis dari
Sekolah Vokasi Universitas Negeri Yogyakarta
4
FAKULTAS TEKNIK
UNIVERSITAS NEGERI YOGYAKARTA
JOB SHEET SISTEM KONTROL ELEKTRONIK
Semester II Penggunaan 7 Segment Pada Arduino 200 menit
No. JST/OTO5305/6305 Revisi : 01 Tgl: 27 Maret 2020 SKE_PR03
I Wayan Adiyasa, S.Pd., M.Eng.

int data[2] = {0, 0};


int puluhan, satuan;

//a, b, c, d, e, f, g pola 7 segment


int segment[10][7] =
{ {0, 0, 0, 0, 0, 0, 1}, // 0
{1, 0, 0, 1, 1, 1, 1}, // 1
{0, 0, 1, 0, 0, 1, 0}, // 2
{0, 0, 0, 0, 1, 1, 0}, // 3
{1, 0, 0, 1, 1, 0, 0}, // 4
{0, 1, 0, 0, 1, 0, 0}, // 5
{0, 1, 0, 0, 0, 0, 0}, // 6
{0, 0, 0, 1, 1, 1, 1}, // 7
{0, 0, 0, 0, 0, 0, 0}, // 8
{0, 0, 0, 0, 1, 0, 0} // 9
};

void setup() {
for (int x = 0; x < 7; x++) {
pinMode(Pot[x], OUTPUT);
}
pinMode(P7s[0], OUTPUT);
pinMode(P7s[1], OUTPUT);
pinMode(su, INPUT_PULLUP);
pinMode(sd, INPUT_PULLUP);
}
void loop() {
hitung();
tampil();
}

void hitung(void) {
if (digitalRead(su) == 0) {
satuan++;
if (satuan >= 10) {
puluhan++;
satuan = 0;
}
if (puluhan >= 10) {
puluhan = 0;
satuan = 0;
}
}
if (digitalRead(sd) == 0) {
satuan--;
if (satuan < 0) {
puluhan--;
satuan = 9;
}
if (puluhan < 0) {
puluhan = 9;
satuan = 9;
}
}
data[0] = satuan;
data[1] = puluhan;
}

Dilarang memperbanyak sebagian atau seluruh isi dokumen tanpa ijin tertulis dari
Sekolah Vokasi Universitas Negeri Yogyakarta
5
FAKULTAS TEKNIK
UNIVERSITAS NEGERI YOGYAKARTA
JOB SHEET SISTEM KONTROL ELEKTRONIK
Semester II Penggunaan 7 Segment Pada Arduino 200 menit
No. JST/OTO5305/6305 Revisi : 01 Tgl: 27 Maret 2020 SKE_PR03
I Wayan Adiyasa, S.Pd., M.Eng.

void tampil(void) {
for (int z = 0; z < 40; z++) {
for (int y = 0; y < 2; y++) {
digitalWrite(P7s[y], HIGH);
for (int x = 0; x < 7; x++) {
digitalWrite(Pot[x], segment[data[y]][x]);
}
delay(5);
digitalWrite(P7s[y], LOW);
}
}
}

H. Hasil Pengamatan:
1. Jelaskan apakah yang terjadi pada Gambar simulasi 1!
2. Jelaskan mengapa dapat terjadi!
3. Jelaskan apakah yang terjadi pada Gambar simulasi 2!
4. Jelaskan mengapa dapat terjadi!

I. Tugas
1. Buatlah desain jam yang menunjukan detik, menit, dan jam (skala 24)!
2. Laporan berisi tentang coding jam tersebut!
3. Tidak ada soal.

Dilarang memperbanyak sebagian atau seluruh isi dokumen tanpa ijin tertulis dari
Sekolah Vokasi Universitas Negeri Yogyakarta
6
FAKULTAS TEKNIK
UNIVERSITAS NEGERI YOGYAKARTA
JOB SHEET SISTEM KONTROL ELEKTRONIK
Semester II Penggunaan 7 Segment Pada Arduino 200 menit
No. JST/OTO5305/6305 Revisi : 01 Tgl: 27 Maret 2020 SKE_PR03
I Wayan Adiyasa, S.Pd., M.Eng.

Lampiran

Pertemuan 6
Nama : Muhammad Wakhid Riyadi
Judul Pratikum : Penggunaan 7 Segment Pada Arduino
NIM : 22509334034
Tanggal Pratikum : 3 Mei 2023

Dosen : I Wayan Adiyasa, S.Pd, M.Eng.


Review : 1.
2.
3.

A. Tujuan Pratikum:
1. Mampu menggunakan program looping di dalam sebuah perulangan.
2. Mampu mengaplikasi multi 7 segment sebagai display.
3. Mampu memanfaatkan proses multiplexer.

B. Kajian teori
Penggunaan 2 atau lebih 7 segment tentunya akan membutuhkan pin Arduino yang
sangat banyak. Sehingga diperlukan sebuah metode untuk menyederhanakan agar
penggunaan pin dapat efisien. Dengan menggunakan proses scanning, maka diperlukan pin
sejumlah 7 ditambah dengan jumlah 7 segment yang digunakan. Rangkaian dapat dilihat
pada Gambar 1. Dimana terdapat 9 pin Arduino yang digunakan untuk menyalakan 7
segment.

Prinsip kerjanya adalah, 7 segmen satuan (paling kanan) akan menyala yang paling
pertama. Pin 9 Arduino HIGH. Saat kondisi HIGH, pin 2-8 Arduino akan mengeluarkan data
array untuk membentuk pola angka pada 7 segment (lihat job sebelumnya). Data pola angka
yang ditampilkan ditentukan oleh program.
Saat pin 9 Arduino LOW, maka pin 10 Arduino akan berlogika HIGH untuk
menampilkan pola angka pada 7 segment sebelah kiri. Saat pin 10 berlogika HIGH, pin 2 -8
Arduino mengeluarkan data array untuk membentuk pola angka pada 7 segment. Tentunya
pola angka 7 segment 1 dengan yang lainnya berbeda sesuai dengan program.
Untuk proses scanning 7 segment pada pin 2-10 Arduino, maka akan menggunakan
syntax “for” secara bertingkat. Pada program menggunakan 2 buah “for” secara bertingkat.
“for” paling luar digunakan untuk menunjukan data pola angka (0-9) yang akan ditampilkan.
Dilarang memperbanyak sebagian atau seluruh isi dokumen tanpa ijin tertulis dari
Sekolah Vokasi Universitas Negeri Yogyakarta
7
FAKULTAS TEKNIK
UNIVERSITAS NEGERI YOGYAKARTA
JOB SHEET SISTEM KONTROL ELEKTRONIK
Semester II Penggunaan 7 Segment Pada Arduino 200 menit
No. JST/OTO5305/6305 Revisi : 01 Tgl: 27 Maret 2020 SKE_PR03
I Wayan Adiyasa, S.Pd., M.Eng.
Sedangkan “for” yang di dalam digunakan untuk membentuk pola angka 7 segment

C. Gambar Praktikum

D. Hasil Pengamatan
Pada gambar 1 rangkaian 1, terdapat 1 buah arduino simuluno uno dan 2 buah 7
segmen setelah coding dimasukan ke Arduino uno maka 2 buah 7 segmen akan berjalan
otomatis hal ini dikarenakan tidak ada button untuk mengendalikan, dan juga tidak di coding,
angka dimulai dan 00, 01, 02, dan seterusnya sampai angka 99, dan kembali lagi ke angka
Dilarang memperbanyak sebagian atau seluruh isi dokumen tanpa ijin tertulis dari
Sekolah Vokasi Universitas Negeri Yogyakarta
8
FAKULTAS TEKNIK
UNIVERSITAS NEGERI YOGYAKARTA
JOB SHEET SISTEM KONTROL ELEKTRONIK
Semester II Penggunaan 7 Segment Pada Arduino 200 menit
No. JST/OTO5305/6305 Revisi : 01 Tgl: 27 Maret 2020 SKE_PR03
I Wayan Adiyasa, S.Pd., M.Eng.
00, 01, dan seterusnya sampai angka 99 lagi, sampai rangkaian di hentikan.

Pada gambar 2 rangkaian 2, terdapat 3 buah button, 1 buah arduino simuluno uno dan 2
buah 7 segmen, berdasarkan hasil pengamatan jika button yang paling atas itu berfungsi
untuk mereset rangkaian, button yang menyambung ke pin A0 berfungsi untuk menjalankan
rangkaian yang menimbulkan kedua 7 segmen berjalan menurut angka secara maju seperti
00, 01, 02, 03, dst. Tetapi sebaliknya, jika button yang menyambung ke pin A1 berfungsi
untuk menjalankan rangkaian tetapi kedua 7 segmen angkanya akan berjalan mundur seperti
jika sudah sampai angka 04, maka akan turun ke 03, 02, 01, 00, 99 dan seterusnya.

E. Analisis:
1. Jelaskan apakah yang terjadi pada Gambar simulasi 1!
2. Jelaskan mengapa dapat terjadi!
3. Jelaskan apakah yang terjadi pada Gambar simulasi 2!
4. Jelaskan mengapa dapat terjadi!
Jawaban

1. Pada gambar simulasi 1 adalah, 2 buah 7 segmen di coding agar berjalan dengan baik
dengan format angka 00, 01, 02, 03, dan seterusnya sampai angka 99. Setelah itu kembali
lagi ke 00, 01, 02, dan seterusnya, sampai rangkaian dihentikan.

2. Hal ini dapat terjadi karena void tampil dalam coding adalah “for (int z = 0; z < 100; z++) {“

3. Pada gambar simulasi 2 adalah, terdapat 3 buah button, 1 buah arduino, dan 2 buah 7
segmen, 1 button berfungsi untuk mereset, button yang menyambung ke pin A1
menjalankan rangkaian agar angka berjalan berurut secara maju, sebaliknya button yang
menyambung ke pin A0 menjalankan rangkaian agar angka berjalan secara mundur.
4. Hal ini dapat terjadi karena coding const int su = A0; // Switch up
const int sd = A1; // Switch down.

Dilarang memperbanyak sebagian atau seluruh isi dokumen tanpa ijin tertulis dari
Sekolah Vokasi Universitas Negeri Yogyakarta
9
FAKULTAS TEKNIK
UNIVERSITAS NEGERI YOGYAKARTA
JOB SHEET SISTEM KONTROL ELEKTRONIK
Semester 1 Penggunaan 7 Segment Pada Arduino 200 menit
No. JST/OTO5305/6305 Revisi : 01 Tgl: 27 Maret 2020 SKE_PR03
I Wayan Adiyasa, S.Pd., M.Eng.
F. Jawaban Tugas:

//MEMASUKKAN lIBARARY
#include <SevSeg.h>
SevSeg sevseg;
#include<Wire.h>
#include"RTClib.h"
RTC_DS1307 rtc;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
Wire.begin();
rtc.begin();
if(!rtc.isrunning()){
Serial.println("RTC is NOT running!");
rtc.adjust(DateTime( DATE , TIME ));
}
byte numDigits=6;
byte digitPins[]={2,3,4,5,A0,A1};
byte segmentPins[]={6,7,8,9,10,11,12,13};
bool resistorOnSegments=false;
byte hardwareConfig=COMMON_ANODE;
bool updateWithDelays=true;
bool leadingZeros=false;
bool disableDecPoint=false;

sevseg.begin(hardwareConfig,numDigits,digitPins,segmentPins,resistorOnSegments,
updateWithDelays,leadingZeros,disableDecPoint);
Dilarang memperbanyak sebagian atau seluruh isi dokumen tanpa ijin tertulis dari
Sekolah Vokasi Universitas Negeri Yogyakarta
1
FAKULTAS TEKNIK
UNIVERSITAS NEGERI YOGYAKARTA
JOB SHEET SISTEM KONTROL ELEKTRONIK
Semester 1 Penggunaan 7 Segment Pada Arduino 200 menit
No. JST/OTO5305/6305 Revisi : 01 Tgl: 27 Maret 2020 SKE_PR03
I Wayan Adiyasa, S.Pd., M.Eng.
sevseg.setBrightness(90);
}
void loop() {
// put your main code here, to run repeatedly:
DateTime now=rtc.now();
int jam = rtc.now().hour();
int menit = rtc.now().minute();
int detik = rtc.now().second();
String s1=String(jam);
String s2=String(menit);
String s3=String(detik);
String s=s3 + s2 + s1;
Serial.print(now.year(),DEC);
Serial.print('/');
Serial.print(now.month(),DEC);
Serial.print('/');
Serial.print(now.day(),DEC);
Serial.print(' ');
Serial.print(now.hour(),DEC);
Serial.print(':');
Serial.print(now.minute(),DEC);
Serial.print(':');
Serial.print(now.second(),DEC);
Serial.println();
Serial.print(s.toInt());
Serial.println();
sevseg.setNumber(s.toInt(),0);
sevseg.refreshDisplay();
}

Dilarang memperbanyak sebagian atau seluruh isi dokumen tanpa ijin tertulis dari
Sekolah Vokasi Universitas Negeri Yogyakarta
1

Anda mungkin juga menyukai