Anda di halaman 1dari 11

SMK Negeri 1 Magelang No.

JOB : 2 / E / 2023
Pemrograman
Jurusan : T. AUVI Tingkat :2
Mikrokontroler
Semester :3 Waktu : 2x 45 menit
Arduino
Program Diklat : Tanggal :
“Display 7 Segment”
Bid. Keahlian : T. Elektro Nama :

A. TUJUAN INSTRUKSIONAL UMUM


Setelah selesai praktek diharapkan siswa dapat menjelaskan dan menerapkan bahasa
Pemrograman mikrokontroler

B. TUJUAN INSTRUKSIONAL KHUSUS


Setelah selesai praktek siswa dapat :
- Memaparkan Display 7 Segment
- Menampilkan huruf dan angka menggunakan 7Segment.
- Menggunakan ic shiftregister 74HC595 sebagai driver 7 Segment.
- Menampilkan Data Suhu di display 7 Segment
C. KESELAMATAN KERJA
- Urutkan pekerjaan sesuai dengan job-seheet.
- Siswa harus memperhatikan polaritas tegangan positif dan negatif agar modul tidak
rusak.
- Jangan sambungkan modul kesumber tegangan ketika merangkai.
- Apabila mendapat kesulitan, tanyakan pada guru praktek.

D. Alat dan Bahan


1. Node MCU 1 buah 4. Resistor 100 1 buah
2. Kabel penghubung secukupnya 5. 7 Segment 0,56” 1 buah
3. Breadboard 1 buah 6. Modul 7 Segment 1 set

E. Dasar Teori
1. Display 7 Segment
Seven segment merupakan bagian-bagian yang digunakan untuk menampilkan
angka atau bilangan decimal. Seven segment tersebut terbagi menjadi 7 batang LED
yang disusun membentuk angka 8 dengan menggunakan huruf a-f. 7 Segmen tersebut
biasanya mempunyai 7 Segmen atau elemen garis dan 1 segmen titik yang
menandakan “koma” Desimal. Jumlah semua segmen atau elemen LED sebenarnya
adalah 8.
Prinsip kerja 7 segment adalah sebagai berikut :
a) Untuk memunculkan angka 0 maka bagian-bagian yang harus dihidupkan adalah
A,B,C,D,E,F
b) Untuk menyalakan 7 segment dapat dilakukan secara langsung dengan memberi
logika 1 pada jenis common cathode dan memberi logika 0 pada common anode

Gambar 1. Ilustrasi anga 0-9 menggunakan display 7 segment


(Sumber : https://www.hackerearth.com/)
Terdapat dua jenis 7 Segment, yaitu :
a. LED 7 Segmen Tipe Common Cathode (Katoda)
Pada LED 7 Segmen jenis Common Cathode (Katoda), Kaki Katoda pada
semua segmen LED adalah terhubung menjadi 1 Pin, sedangkan Kaki Anoda
akan menjadi Input untuk masing-masing Segmen LED. Kaki Katoda yang
terhubung menjadi 1 Pin ini merupakan Terminal Negatif (-) atau Ground
sedangkan Signal Kendali (Control Signal) akan diberikan kepada masing-
masing Kaki Anoda Segmen LED.

Gambar 2. Konfigurasi rangkaian 7 segment commont catoda


(Sumber : teknikelektronika.com)
b. LED 7 Segmen Tipe Common Anode (Anoda)
Pada LED 7 Segmen jenis Common Anode (Anoda), Kaki Anoda pada
semua segmen LED adalah terhubung menjadi 1 Pin, sedangkan kaki Katoda
akan menjadi Input untuk masing-masing Segmen LED. Kaki Anoda yang
terhubung menjadi 1 Pin ini akan diberikan Tegangan Positif (+) dan Signal
Kendali (control signal) akan diberikan kepada masing-masing Kaki Katoda
Segmen LED.

Gambar 3. Konfigurasi rangkaian 7 segment commont anoda


(Sumber : teknikelektronika.com)
2. Shift Register 74HC595 untu mengendalkan 7 Segment
74HC595 adalah komponen yang memiliki fungsi sebagai shift register serial to
parallel 8-bit, yaitu berarti mengubah inputan berupa data serial ke bentuk output
paralel 8bit. Komponen ini sering dimanfaatkan untuk ekspansi port pada
mikrokontroler atau fungsi lainnya. Intinya dapat menghemat port karena kita hanya
membutuhkan 2 atau 3 pin saja untuk menghasilkan 8 pin baru, bahkan kelipatan 8
yang sangat banyak jika digabungkan. 74HC595 adalah ic shift register dengan tipe
SIPO (Serial Input Paralel Output)
Gambar 4. Pinout IC 74HC595
(Sumber : https://www.fikrirp.com/2019/08/lcd-dengan-shift-register/)
Keterangan pinout IC 74HC595 :
 Q0-Q7 adalah output
 OE (Output Enable) : harus diberi logika 0 agar dapat mengaktifkan keluaran,
jika OE ini di beri logika 1 maka keluaran tidak akan memiliki logika
 MR (Master Reset) : harus diberi logika 1 agar output dapat bekerja, apabila
diberi logika 0 maka semua output akan berlogika 0.
 PIN 14 (DS) adalah Pin DATA.
 Pin 11 (SH_CP atau disebut juga CLOCK dalam data sheet lain), DATA akan
dibaca dan disimpan kedalam shift register ketika CLOCK berubah dari level
LOW ke level HIGH atau dari 0 ke 1.
 Pin 12 (ST_CP atau sering disebut dengan LATCHED), data akan di simpan di
register ketika ST_CP kondisi LOW atau 0, dan data akan di kirim ke out Q0 –
Q7 jika ST_CP kondisi HIGH atau 1
 Rangkaian IC 74HC 595 sebagai pengendali 7 Segment
Gambar 5. Skema Ic 74HC595 sebagai pengendali 7 segment
(Sumber : Dokumen Pribadi)
Tabel 1. Data nyala 7 segment dengan pengendali Ic 74HC595 LSB
Tampilan
Q0 Q1-G Q2-F Q3-A Q4-B Q5-C Q6-D Q7-E Konversi Hexa
Angka
0 0 0 1 1 1 1 1 1 3F
1 0 0 0 0 1 1 0 0 0C
2
3
4
5
6
7
8
9

Tabel 1. Data nyala 7 segment dengan pengendali Ic 74HC595 MSB


Tampilan
Q7-E Q6-D Q5-C Q4-B Q3-A Q2-F Q1-G Q0 Konversi Hexa
Angka
0 1 1 1 1 1 1 0 0 FC
1 0 0 1 1 0 0 0 0 30
2
3
4
5
6
7
8
9

3. Tipe Data Array


Tipe data array merupakan salah satu istilah yang berkaitan dengan bahasa
pemrograman. Dengan jenis Array ini, proses penyimpanan data ke dalam variabel
menjadi lebih mudah, terutama jika data tersebut dalam jumlah banyak. Misalnya,
dalam satu Array hanya terdiri dari bilangan bulat saja atau pun bilangan saja.
Format dasar penggunaan Array pada program C adalah sebagai berikut:
Tipe_data_nama_variabel[jumlah_elemen]
 Tipe data bisa kamu isi dengan jenis data yang ingin kamu gunakan, seperti
Integer atau Float.
 Nama variabel bisa kamu isi sesuai dengan apa yang kamu cari. Misalnya, ingin
mencari data karyawan, maka kamu bisa mengisinya dengan “Karyawan”.
 Jumlah elemen biasanya diisi dengan banyaknya elemen pada sebuah data, bisa
dalam bentuk bilangan bulat atau pecahan.

Contoh : int bilangan [10] = {0, 1,2,3,4,5,6,7,8,9};


Contoh tipe data array diatas memiliki arti :
data bilangan ke 0 adalah bernilai 0,
data bilangan ke 1 adalah bernilai 1,
data bilangan ke 9 adalah bernilai 9,
Jika kita memanggil data ke 5 maka nilai bilangannya adalah 6
F. LANGKAH KERJA
Percobaan I (menampilkan angka di Display 7Segment )
Algoritma
1) Start Program
2) inisialisasi pin Arduino dengan nama A-G
3) deklarasi pin Arduino Sebagai output
4) mengeluarkan logika LOW pada pin Dp
5) mengeluarkan logika HIGH pada pin A-F
6) mengeluarkan logika LOW pada pin G
7) delay 1 detik
8) mengeluarkan logika HIGH pada pin selain B & C
9) mengeluarkan logika LOW pada pin B & C
10) Selesai.
Program
1. Buatlah rangkaaian seperti gambar berikut !

2. Ketikan program seperti berikut


const int a=D0, b=D1, c=D2, d=D3, e=D4, f=D5, g=D6, dp= D7;

void setup() {
// put your setup code here, to run once:
pinMode(a, OUTPUT);
pinMode(b, OUTPUT);
pinMode(c, OUTPUT);
pinMode(d, OUTPUT);
pinMode(e, OUTPUT);
pinMode(f, OUTPUT);
pinMode(g, OUTPUT);
pinMode(dp, OUTPUT);
}
void loop() {
// angka 0
digitalWrite(a, LOW);
digitalWrite(b, LOW);
digitalWrite(c, LOW);
digitalWrite(d, LOW);
digitalWrite(e, LOW);
digitalWrite(f, LOW);
digitalWrite(g, HIGH);
digitalWrite(dp, HIGH);
delay (1000);
// angka 1
digitalWrite(a, HIGH);
digitalWrite(b, LOW);
digitalWrite(c, LOW);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
digitalWrite(dp, HIGH);
delay (1000);
}
3. Cek ulang penulisan program
4. Compaile lalu upload program dengan mengeklik tanda panah
Pertanyaan :
1. Apakah fungsi dari sintak program const int a=D0, b=D1, c=D2, d=D3, e=D4, f=D5,
g=D6, dp= D7;
2. Buatlah penampil angka 1-10
Percobaan II (Ic 74HC595 Sebagai driver 7 Segment)
Algoritma
1) Start Program
2) Inisialisasi pin arduino D5 dengan nama Clock
3) Inisialisasi pin arduino D6 dengan nama Latch
4) Inisialisasi pin arduino D7 dengan nama Data
5) Mendeskripsikan variabel digit untuk menyimpan data Array berjumlah 10 digit
6) Deklarasi Clock, Latch, Data sebagai OUTPUT
7) Mengeluarkan logika LOW ke pin Latch
8) Mengeluarkan data 0 secara bergantian dari pin Data lalu Clock dengan urutan
MSB untuk digit 4
9) Mengeluarkan data 0 secara bergantian dari pin Data lalu Clock dengan urutan
MSB untuk digit 3
10) Mengeluarkan data 0 secara bergantian dari pin Data lalu Clock dengan urutan
MSB untuk digit 2
11) Mengeluarkan data 0 secara bergantian dari pin Data lalu Clock dengan urutan
MSB untuk digit 1
12) Delay 1 detik
13) Mengeluarkan data 1 secara bergantian dari pin Data lalu Clock dengan urutan
MSB untuk digit 4
14) Mengeluarkan data 1 secara bergantian dari pin Data lalu Clock dengan urutan
MSB untuk digit 3
15) Mengeluarkan data 1 secara bergantian dari pin Data lalu Clock dengan urutan
MSB untuk digit 2
16) Mengeluarkan data 1 secara bergantian dari pin Data lalu Clock dengan urutan
MSB untuk digit 1
17) Delay 1 detik
18) Selesai.

Program
1. Buatlah rangkaaian seperti gambar berikut !
2. Buka aplikasi arduino IDE
3. Buatlah Program dengan panduan algoritma diatas lalu Ketikan program pada kolom
dibawah !
#define DATA D7 //DS
#define CLK D5//SH_CP
#define LATCH D6 //ST_CP

byte digit[10]= {0xFC, 0x30, ……, ……, ……, ……,……, ……,……, ……};

void setup() {
// put your setup code here, to run once:
pinMode(LATCH, OUTPUT);
pinMode(CLK, OUTPUT);
pinMode(DATA, OUTPUT);
}

void loop() {
// put your main code here, to run repeatedly:
digitalWrite(LATCH, LOW);
shiftOut(DATA, CLK, MSBFIRST, ~digit[0]); // digitTwo
shiftOut(DATA, CLK, MSBFIRST, ~digit[0]); // digitOne
shiftOut(DATA, CLK, MSBFIRST, ~digit[0]); // digitTwo
shiftOut(DATA, CLK, MSBFIRST, ~digit[0]); // digitOne
digitalWrite(LATCH, HIGH);
delay(1000);
digitalWrite(LATCH, LOW);
shiftOut(DATA, CLK, MSBFIRST, ~digit[1]); // digitTwo
shiftOut(DATA, CLK, MSBFIRST, ~digit[1]); // digitOne
shiftOut(DATA, CLK, MSBFIRST, ~digit[1]); // digitTwo
shiftOut(DATA, CLK, MSBFIRST, ~digit[1]); // digitOne
digitalWrite(LATCH, HIGH);
delay(1000);
}
4. Cek ulang penulisan program
5. Compaile lalu upload program dengan mengeklik tanda panah
6. Amati yang terjadi !
Tantangan :
1. Buatlah program arduino untuk menampilkan angka 0-9 !
2. Buatlah program untuk menampilkan nomor absen dan huruf EA !

G. Buatlah kesimpulan dari hasil percobaan


…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………

Anda mungkin juga menyukai