Modul 2
Praktikum Mikrokontroler
Cetakan pertama, 1 Februari 2019
Hak cipta dilindungi undang-undang
No. Pencatatan Hak Cipta: 000166607
Dilarang memperbanyak isi modul ini, baik sebagian maupun seluruhnya
dalam bentuk apapun tanpa izin tertulis dari penulis.
Buku ini dipublikasikan oleh:
Program Studi D3 Teknik ELektronika
Fakultas Teknik, Universitas Negeri Jakarta
Jalan Rawamangun Muka, RT.11/RW.14, Rawamangun
Pulo Gadung, Jakarta Timur, 13220
Indonesia
Phone.: +62 21 4712137
Penulis
Taryudi
ISBN :
Modul 2
Praktikum Mikrokontroler
V.1
Oleh:
Taryudi
Program Studi D3 Teknik Elektronika
Fakultas Teknik, Universitas Negeri Jakarta
Februari 2019
KATA PENGANTAR
Puji syukur dipanjatkan kehadirat Allah SWT yang telah memberikan
rahmat dan hidayahnya sehingga Penyusun dapat menyusun dan menyelesaikan
Modul 2 Praktikum Mikrokontroler ini.
Modul ini merupakan lanjutan dari Modul 1 Praktikum Mikrokontroler yang
memuat pedoman dalam melakukan praktikum Mikrokontroler tingkat lanjut. salah
satu bahan ajar mata kuliah Mikrokontroler pada program studi D3 Teknik
Elektronika. Modul ini juga dapat digunakan oleh siapa saja yang ingin menambah
pengetahuan mengenai aplikasi Mikrokontroler dalam kehidupan sehari hari.
Penyusun menyakini bahwa dalam pembuatan modul ini masih jauh dari
sempurna, oleh karena itu penyusun mengharapkan kritik dan saran yang
membangun guna penyempurnaan modul ini. Akhir kata, penyusun mengucapkan
banyak terima kasih kepada semua pihak yang telah membantu dalam pembuatan
modul ini.
Jakarta, 1 Februari 2019
Penyusun
i
DAFTAR ISI
Kata Pengantar ................................................................................................................................. i
DAFTAR ISI................................................................................................................................... i
1. Sensor Suara .......................................................................................................................... 1
1.1. Dasar Teori ................................................................................................................... 1
1.2. Alat dan Bahan ............................................................................................................. 1
1.3. Langkah Kerja .............................................................................................................. 1
1.4. Hasil Pengamatan ......................................................................................................... 3
1.5. Contoh Soal .................................................................................................................. 3
1.6. Jawaban ........................................................................................................................ 3
2. Keypad .................................................................................................................................... 5
2.1. Dasar Teori ................................................................................................................... 5
2.2. Alat dan Bahan ............................................................................................................. 6
2.3. Langkah Kerja .............................................................................................................. 6
2.4. Hasil Pengamatan ....................................................................................................... 10
2.5. Contoh Soal ................................................................................................................ 12
2.6. Jawaban ...................................................................................................................... 12
3. Remote .................................................................................................................................. 13
3.1. Dasar Teori ................................................................................................................. 13
3.2. Alat dan Bahan ........................................................................................................... 13
3.3. Langkah Kerja ............................................................................................................ 13
3.4. Hasil Pengamatan ....................................................................................................... 18
3.5. Contoh Soal ................................................................................................................ 20
3.6. Jawaban ...................................................................................................................... 20
4. Seven Segmen ....................................................................................................................... 22
4.1. Dasar Teori ................................................................................................................. 22
4.2. Alat dan Bahan ........................................................................................................... 22
4.3. Langkah Kerja ............................................................................................................ 23
4.4. Hasil Pengamatan ....................................................................................................... 29
4.5. Contoh Soal ................................................................................................................ 29
4.6. Jawaban ...................................................................................................................... 29
ii
4.7. Praktikum.................................................................................................................... 30
5. Seven Segmen 4 Digit .......................................................................................................... 31
5.1. Dasar Teori ................................................................................................................. 31
5.2. Alat dan Bahan ........................................................................................................... 31
5.3. Langkah Kerja ............................................................................................................ 31
5.4. Hasil Pengamatan ....................................................................................................... 39
5.5. Contoh Soal ................................................................................................................ 39
5.6. Jawaban ...................................................................................................................... 39
5.7. Praktikum.................................................................................................................... 40
6. Motor Servo.......................................................................................................................... 41
6.1. Dasar Teori ................................................................................................................. 41
6.2. Alat dan Bahan ........................................................................................................... 41
6.3. Langkah Kerja ............................................................................................................ 41
6.4. Hasil Percobaan. ......................................................................................................... 44
6.5. Contoh Soal ................................................................................................................ 46
6.6. Jawaban ...................................................................................................................... 46
6.7. Praktikum.................................................................................................................... 46
7. Motor Stepper ...................................................................................................................... 47
7.1. Dasar Teori ................................................................................................................. 47
7.2. Alat dan Bahan ........................................................................................................... 47
7.3. Langkah Kerja ............................................................................................................ 47
7.4. Hasil Pengamatan ....................................................................................................... 51
7.5. Contoh Soal ................................................................................................................ 51
7.6. Jawaban ...................................................................................................................... 51
7.7. Praktikum.................................................................................................................... 51
8. RFID ..................................................................................................................................... 52
8.1. Dasar Teori ................................................................................................................. 52
8.2. Alat dan Bahan ........................................................................................................... 52
8.3. Langkah Kerja ............................................................................................................ 53
8.4. Hasil Pengamatan ....................................................................................................... 56
8.5. Contoh Soal ................................................................................................................ 57
8.6. Jawaban ...................................................................................................................... 57
iii
8.7. Praktikum.................................................................................................................... 58
9. Real Time Clock (RTC) ...................................................................................................... 59
9.1. Dasar Teori ................................................................................................................. 59
9.2. Alat dan Bahan ........................................................................................................... 59
9.3. Langkah Kerja ............................................................................................................ 59
9.4. Hasil Pengamatan ....................................................................................................... 63
9.5. Contoh Soal ................................................................................................................ 64
9.6. Jawaban ...................................................................................................................... 64
9.7. Praktikum.................................................................................................................... 65
10. Dot Matrix 8X8 ................................................................................................................ 66
10.1. Dasar Teori.............................................................................................................. 66
10.2. Alat dan Bahan ........................................................................................................ 66
10.3. Langkah Kerja ......................................................................................................... 66
10.4. Hasil Pengamatan.................................................................................................... 92
10.5. Contoh Soal ............................................................................................................. 94
10.6. Jawaban ................................................................................................................... 94
10.7. Praktikum ................................................................................................................ 94
DAFTAR PUSTAKA ................................................................................................................... 95
1
1. Sensor Suara 1.1. Dasar Teori
Sensor suara adalah sebuah alat yang mampu mengubah gelombang Sinusioda
suara menjadi gelombang sinus energi listrik (Alternating Sinusioda Electric
Current). Sensor suara berkerja berdasarkan besar/kecilnya kekuatan gelombang
suara yang mengenai membran sensor yang menyebabkan bergeraknya membran
sensor yang juga terdapat sebuah kumparan kecil di balik membran tadi naik &
turun.
Gambar 1. Modul Sensor Suara.
1.2. Alat dan Bahan
- 1 Buah Arduino Uno + Kabel
- 1 Buah Modul Sensor Suara
- 1 Buah Resistor 220 ohm
- 1 Buah LED
- 6 Buah Kabel Jumper Male – Male
- 1 Buah Protoboard
1.3. Langkah Kerja
1. Hubungkan sesuai dengan rangkaian gambar dibawah ini.
2
Gambar 2. Rangkaian Sensor Suara.
Keterangan :
a. Pin GND Arduino (Warna Hitam) ke salah satu pin Resistor dan pin GND
Modul Sensor Suara.
b. Pin VCC 5V Arduino (Warna Merah) ke pin VCC Modul Sensor Suara.
c. Pin 2 Arduino (Warna Biru) ke pin VCC LED.
d. Pin 3 Arduino (Warna Orange) ke pin 3 (D0) Modul Suara seperti pada
gambar.
2. Buka Arduino IDE, dan masukan sketch program dibawah ini:
3. Lalu Upload Sketch tunggu hingga selesai.
int suara = 3;
int led = 2;
void setup()
Serial.begin(9600);
pinMode(suara, INPUT);
pinMode(led, OUTPUT);
void loop()
int statusSuara = digitalRead(suara);
if (statusSuara == 1)
digitalWrite(led,HIGH);
else
digitalWrite(led,LOW);
3
1.4. Hasil Pengamatan
Gambar 3. Kondisi Sensor Suara Saat Tidak Mendeteksi Suara.
Gambar 4. Kondisi Sensor Suara Saat Mendeteksi Suara.
1.5. Contoh Soal
1. Bagaimana prinsip kerja sensor suara?
1.6. Jawaban
1. Gelombang suara yang diterima oleh membrane akan memberikan efek getaran
pada membrane yang dibagian tengahnya terdapat gulungan kawat dan dibagian
tengah dari gulungan tersebut terdapat magnet yang tetap diam. Karena Gulungan
kawat tersebut ikut bergetar maka seolah-olah gulungan kawat ini memotong
medan magnet yang berada ditengah gulungan kawat tersebut dan hal ini akan
mengakibatkan kedua ujung kawat tersebut akan mengeluarkan tegangan AC. Dan
4
Tegangan AC ini selanjutnya dikirmkan ke Transmitter untuk diperkuat dan
dikondisikan sehingga bisa menjadi inputan ataupun penampil data lainnya.
5
2. Keypad 2.1. Dasar Teori
Keypad adalah bagian penting dari suatu perangkat elektronika yang membutuhkan
interaksi manusia. Keypad berfungsi sebagai interface antara perangkat (mesin)
elektronik dengan manusia atau dikenal dengan istilah HMI (Human Machine
Interface). Matrix keypad 4×4 merupakan salah satu contoh keypad yang dapat
digunakan untuk berkomunikasi antara manusia dengan mikrokontroler.
Konfigurasi keypad dengan susunan bentuk matrix ini bertujuan untuk penghematan
port mikrokontroler karena jumlah key (tombol) yang dibutuhkan banyak pada suatu
sistem dengan mikrokontroler. Konstruksi matrix keypad 4×4 untuk mikrokontroler
dapat dibuat seperti pada gambar berikut:
Gambar 5. Konstruksi Matrix 4x4
Proses scaning untuk membaca penekanan tombol pada matrix keypad 4×4
untuk mikrokontroler diatas dilakukan secara bertahap kolom demi kolom dari
kolom pertama sampai kolom ke 4 dan baris pertama hingga baris ke 4.
Gambar 6. Konfigurasi Pin Matrix Keypad.
6
2.2. Alat dan Bahan
- 1 Buah Arduino Uno + Kabel
- 1 Buah Modul Keypad 4x4
- 1 Buah Resistor 220 ohm
- 1 Buah LED RGB
- 12 Buah Jumper Male - Male
2.3. Langkah Kerja
1. Buka Arduino IDE, kemudian klik Sketch> Include Library > Manage
Libraries…
2. Pada field filter ketik dht, maka selanjutnya akan muncul nama librarynya
Keypad library by Mark Stanley, Alexander Brevig. (Pastikan terkoneksi
internet).
Gambar 7. Library Keypad
3. Pilih Versi 3.1.1 , lalu klik Instal.
4. Tunggu hingga selesai lalu close Arduino IDE dan buka kembali.
5. Hubungkan sesuai dengan rangkaian gambar dibawah ini.
7
Gambar 8. Rangkaian Keypad
Keterangan :
a. GND Arduino (Warna Hitam) ke salah satu pin Resistor seperti pada
gambar.
b. Pin 3 Arduino (Warna Biru) ke Pin 8 (C4) Keypad 4x4 seperti pada
gambar.
c. Pin 4 Arduino (Warna Kuning) ke Pin 7 (C3) Keypad 4x4 seperti pada
gambar.
d. Pin 5 Arduino (Warna Hijau) ke Pin 6 (C2) Keypad 4x4 seperti pada
gambar.
e. Pin 6 Arduino (Warna Abu-abu) ke Pin 5 (C1) Keypad 4x4 seperti pada
gambar.
f. Pin 7 Arduino (Warna Putih) ke Pin 4 (R4) Keypad 4x4 seperti pada
gambar.
g. Pin 8 Arduino (Warna Orange) ke Pin 3 (R3) Keypad 4x4 seperti pada
gambar.
8
h. Pin 9 Arduino (Warna Coklat Muda) ke Pin 2 (R2) Keypad 4x4 seperti
pada gambar.
i. Pin 10 Arduino (Warna Coklat) ke Pin 1 (R1) Keypad 4x4 seperti pada
gambar.
j. Pin 11 Arduino (Warna Pink) ke Pin 1 (R) LED RGB seperti pada
gambar.
k. Pin 12 Arduino (Warna Ungu) ke Pin 3 (G) LED RGB seperti pada
gambar.
l. Pin 13 Arduino (Warna Merah) ke Pin 4 (B) LED RGB seperti pada
gambar.
6. Kemudian masukan Sketch Program di bawah ini:
#include <Keypad.h>
const byte ROWS = 4;
const byte COLS = 4;
int R = 10;
int G = 11;
int B = 12;
char hexaKeys[ROWS][COLS] =
'1', '2', '3', 'A',
'4', '5', '6', 'B',
'7', '8', '9', 'C',
'*', '0', '#', 'D'
;
byte rowPins[ROWS] = 9, 8, 7, 6;
byte colPins[COLS] = 5, 4, 3, 2;
Keypad customKeypad = Keypad(makeKeymap(hexaKeys), rowPins, colPins,
ROWS, COLS);
void setup()
Serial.begin(9600);
9
7. Kemudian Upload, tunggu hingga selesai.
pinMode(R, OUTPUT);
pinMode(G, OUTPUT);
pinMode(B, OUTPUT);
void loop()
char customKey = customKeypad.getKey();
if (customKey)
Serial.println(customKey);
if (customKey == '1')
digitalWrite(R, HIGH);
digitalWrite(G, LOW);
digitalWrite(B, LOW);
if (customKey == '2')
digitalWrite(R, LOW);
digitalWrite(G, HIGH);
digitalWrite(B, LOW);
if (customKey == '3')
digitalWrite(R, LOW);
digitalWrite(G, LOW);
digitalWrite(B, HIGH);
if (customKey == '4')
digitalWrite(R, LOW);
digitalWrite(G, LOW);
digitalWrite(B, LOW);
10
2.4. Hasil Pengamatan
Gambar 9. Serial Monitor Saat Pengujian Tombol Keypad.
Gambar 10. Kondisi Saat Tombol 1 Keypad Ditekan.
11
Gambar 11. Kondisi Saat Tombol 2 Keypad Ditekan.
Gambar 12. Kondisi Saat Tombol 3 Keypad Ditekan.
12
Gambar 13. Kondisi Saat Tombol 4 Keypad Ditekan.
Gambar 14. Serial Monitor Saat Tombol Keypad Ditekan.
2.5. Contoh Soal
1. Apa saja pengaplikasian keypad?
2.6. Jawaban
1. Sebagai input pengaman pada pengamanan digital, datalogger, absensi,
pengendali kecepatan motor, robotic, dll.
13
3. Remote 3.1. Dasar Teori
Remote Controller atau yang biasa disebut Pengendali jarak jauh merupakan
sebuah alat elektronik yang digunakan untuk mengoperasikan sebuah mesin dari
jarak jauh. Remote Control paling banyak digunakan sekarang ini adalah Remote
Control yang menggunakan media Infra Merah (IR). Pada umumnya, Remote
Control digunakan untuk memberikan perintah dari kejauhan kepada barang-barang
elektronik lainnya seperti televise, system streo, pemutar DVD dan barang yang
lainnya. Remote Control untuk perangkat-perangkat ini biasanya berupa benda kecil
nirkabel yang digenggam dengan sederetan tombol untuk menyesuaikan berbagai
setting, seperti misalnya saluran televisi, nomer trek dan volume suara. 31
Gambar 15. IR Receiverdan Remote IR
3.2. Alat dan Bahan
- 1 Buah Arduino Uno + Kabel
- 1 Buah IR Receiver TL1838
- 1 Buah Remote
- 3 Buah Jumper Male - Male
3.3. Langkah Kerja
1. Buka Arduino IDE, kemudian klik Sketch> Include Library > Manage Libraries…
2. Pada field filter ketik IR remote, maka selanjutnya akan muncul nama librarynya
IR remote by shirriff. (Pastikan terkoneksi internet).
14
Gambar 16. Library IR Remote
3. Pilih Versi 2.2.3 , lalu klik Instal.
4. Tunggu hingga selesai lalu close Arduino IDE dan buka kembali.
5. Hubungkan sesuai dengan rangkaian gambar dibawah ini.
Gambar 17. Rangkaian IR Transmitter.
Keterangan :
a. Pin GND Arduino (Warna Hitam) ke salah satu pin Resistor dan pin GND IR
Transmitter TL1838 seperti pada gambar.
15
b. Pin VCC 5V Arduino (Warna Merah) ke pin VCC IR Transmitter TL1838
seperti pada gambar.
c. Pin 2 Arduino (Warna Biru) ke pin Data IR Transmitter TL 1838 seperti pada
gambar.
d. Pin 3 Arduino (Warna Kuning) ke pin 1 LED RGB seperti pada gambar.
e. Pin 4 Arduino (Warna Hijau) ke pin 3 LED RGB seperti pada gambar.
f. Pin 5 Arduino (Warna Abu-abu) ke pin 4 LED RGB seperti pada gambar.
6. Buka Arduino IDE, dan masukan sketch program dibawah ini
7. Lalu Upload Sketch tunggu hingga selesai, Buka Serial Monitor, arahkan Remote
ke IR Transmitter, catat kode tombolnya.
#include <IRremote.h>
const byte PIN_RECV = 2; // pin Signal ke pin 2
IRrecv irrecv(PIN_RECV); // konfigurasi class irremote
decode_results results; // penampung hasil identifikasi remote
void setup()
Serial.begin(9600);// buka koneksi ke serial monitor
irrecv.enableIRIn();// aktifkan IR penerima
void loop()
// jika menerima data dan berhasil mendecode data
if (irrecv.decode(&results))
Serial.println();
Serial.print(results.value);
Irrecv.resume();
16
8. Setelah itu buka new sketch, lalu masukan sketch program dibawah ini :
#include <IRremote.h>
int R = 3;
int G = 4;
int B = 5;
const byte PIN_RECV = 2; // pin Signal ke pin 2
IRrecv irrecv(PIN_RECV); // konfigurasi class irremote
decode_results results; // penampung hasil identifikasi remote
void setup()
Serial.begin(9600);// buka koneksi ke serial monitor
pinMode(R, OUTPUT);
pinMode(G, OUTPUT);
pinMode(B, OUTPUT);
irrecv.enableIRIn();// aktifkan IR penerima
unsigned long data;
void loop()
if (irrecv.decode(&results))
Serial.println();
Serial.print(results.value);
data = results.value;
irrecv.resume();// hapus history hasil sebelumnya
switch (data)
case 16724175:
Serial.print(" - One");
digitalWrite(R, HIGH);
digitalWrite(G, LOW);
digitalWrite(B, LOW);
break;
17
9. Lalu Upload Sketch tunggu hingga selesai
case 16718055:
Serial.print(" - Two");
digitalWrite(R, LOW);
digitalWrite(G, HIGH);
digitalWrite(B, LOW);
break;
case 16743045:
Serial.print(" - Three");
digitalWrite(R, LOW);
digitalWrite(G, LOW);
digitalWrite(B, HIGH);
break;
case 16716015:
Serial.print(" - Four");
digitalWrite(R, LOW);
digitalWrite(G, LOW);
digitalWrite(B, LOW);
break;
18
3.4. Hasil Pengamatan
Tombol Kode Tombol Kode
1 16724175 6 16734885
2 16718055 7 16728765
3 16743045 8 16730805
4 16716015 9 16732845
5 16726215 0 16756815
Tabel 1. Identifikasi Tombol Remote.
Gambar 18. Serial Monitor Identifikasi Remote.
Gambar 19. Kondisi Saat Tombol 1 Remote ditekan
19
Gambar 20. Kondisi Saat Tombol 2 Remote ditekan
Gambar 21. Kondisi Saat Tombol 3 Remote ditekan
20
Gambar 22. Kondisi Saat Tombol 4 Remote ditekan
Gambar 23. Serial Monitor Hasil Ujicoba Menyalakan LED RGB.
3.5. Contoh Soal
1. Bagaimana Cara Kerja Dari Remot tersebut sehingga dapart berkomunikasi
dengan Receiver TL1838 ?
2. Bagaimana LED dapat berubah warna ketika tombol tertentu ditekan ?
3.6. Jawaban
1. Dengan cara mengatur Receiver untuk decoding frequency remot, lalu dijadikan
kode dari tiap tombol pada remot yang ditampilkan pada serial monitor. Dengan
kode
21
#include <IRremote.h>
void loop()
if (irrecv.decode(&results))
Serial.println();
Serial.print(results.value);
data = results.value;
irrecv.resume();
2. Dengan cara menentukan tombol terlebih dahulu pada remot, lalu mengetahui
kode tombol yang ditentukan, jika sudah ditentukan, maka melakukan perintah
pada kode tombol untuk melakukan pengubahan warna pada led RGB yang sudah
dirangkai sesuai rangkaian, dan membuat program dengan fungsi unsigned long
data;
void loop()
if (irrecv.decode(&results))
Serial.println();
Serial.print(results.value);
data = results.value;
irrecv.resume();// hapus history hasil sebelumnya
switch (data)
case 16724175:
Serial.print(" - One");
digitalWrite(R, HIGH);
digitalWrite(G, LOW);
digitalWrite(B, LOW);
break;
22
4. Seven Segmen 4.1. Dasar Teori
Seven Segment Display memiliki 7 Segmen dimana setiap segmen dikendalikan
secara ON dan OFF untuk menampilkan angka yang diinginkan. Angka-angka dari
0 (nol) sampai 9 (Sembilan) dapat ditampilkan dengan menggunakan beberapa
kombinasi Segmen. Selain 0 – 9, Seven Segment Display juga dapat menampilkan
Huruf Hexadecimal dari A sampai F. Segmen atau elemen-elemen pada Seven
Segment Display diatur menjadi bentuk angka “8” yang agak miring ke kanan
dengan tujuan untuk mempermudah pembacaannya. Pada beberapa jenis Seven
Segment Display, terdapat juga penambahan “titik” yang menunjukan angka koma
decimal.Terdapat 2 Jenis LED 7 Segmen, diantaranya adalah “LED 7 Segmen
common Cathode” dan “LED 7 Segmen common Anode”.
Gambar 24. Pin Seven Segmen.
Pada LED 7 Segmen jenis Common Cathode (Katoda), Pin Katoda pada semua
segmen LED adalah terhubung menjadi 1 Pin, sedangkan Pin Anoda akan menjadi
Input untuk masing-masing Segmen LED. Pin Katoda yang terhubung menjadi 1
Pin ini merupakan Terminal Negatif (-) atau Ground sedangkan Signal Kendali
(Control Signal) akan diberikan kepada masing-masing Pin Anoda Segmen LED.
Sedangkan pada LED 7 Segmen jenis Common Anode (Anoda), Pin Anoda pada
semua segmen LED adalah terhubung menjadi 1 Pin, sedangkan pin Katoda akan
menjadi Input untuk masing-masing Segmen LED. Pin Anoda yang terhubung
menjadi 1 Pin ini akan diberikan Tegangan Positif (+) dan Signal Kendali (control
signal) akan diberikan kepada masing-masing Pin Katoda Segmen LED.
4.2. Alat dan Bahan
- 1 Buah Arduino + Kabel
- 1 Buah Seven Segmen
- 1 Buah Resistor 220ohm
- 11 Buah Jumper Male -Male
23
4.3. Langkah Kerja
1. Hubungkan sesuai dengan rangkaian gambar dibawah ini.
Gambar 25. Rangkaian Seven Segmen (Common Katoda).
Keterangan :
a. VCC Arduino (Warna Merah) ke pin Resistor dan 3 (Common) Seven
Segmen.
b. Pin 8 (Common) Seven Segmen ke pin Resistor.
c. Pin 2 Arduino (Warna Hijau) ke pin 10 (a) Seven Segmen seperti pada
gambar.
d. Pin 3 Arduino (Warna Pink) ke pin 9 (b) Seven Segmen seperti pada
gambar.
e. Pin 4 Arduino (Warna Putih) ke pin 7 (c) Seven Segmen seperti pada
gambar.
f. Pin 5 Arduino (Warna Orange) ke pin 5 (d) Seven Segmen seperti pada
gambar.
g. Pin 6 Arduino (Warna Coklat) ke pin 4 (e) Seven Segmen seperti pada
gambar.
24
h. Pin 7 Arduino (Warna Ungu) ke pin 2(f) Seven Segmen seperti pada
gambar.
i. Pin 8 Arduino (Warna Biru) ke 1 (g) Seven Segmen seperti pada gambar.
j. Pin 9 Arduino (Warna Abu-Abu) ke pin 6 (dot) Seven Segmen seperti
pada gambar.
25
2. Buka Arduino IDE, dan masukan sketch program dibawah ini:
void setup()
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
digitalWrite(9, 1); // start with the "dot" off
void loop()
// write '0'
digitalWrite(2, 0);
digitalWrite(3, 0);
digitalWrite(4, 0);
digitalWrite(5, 0);
digitalWrite(6, 0);
digitalWrite(7, 0);
digitalWrite(8, 1);
delay(511);
// write '1'
digitalWrite(2, 1);
digitalWrite(3, 0);
digitalWrite(4, 0);
digitalWrite(5, 1);
26
digitalWrite(6, 1);
digitalWrite(7, 1);
digitalWrite(8, 1);
delay(511);
// write '2'
digitalWrite(2, 0);
digitalWrite(3, 0);
digitalWrite(4, 1);
digitalWrite(5, 0);
digitalWrite(6, 0);
digitalWrite(7, 1);
digitalWrite(8, 0);
delay(511);
// write '3'
digitalWrite(2, 0);
digitalWrite(3, 0);
digitalWrite(4, 0);
digitalWrite(5, 0);
digitalWrite(6, 1);
digitalWrite(7, 1);
digitalWrite(8, 0);
delay(511);
// write '4'
digitalWrite(2, 1);
digitalWrite(3, 0);
digitalWrite(4, 0);
digitalWrite(5, 1);
digitalWrite(6, 1);
digitalWrite(7, 0);
digitalWrite(8, 0);
delay(511);
27
digitalWrite(8, 0);
delay(511);
// write '5'
digitalWrite(2, 0);
digitalWrite(3, 1);
digitalWrite(4, 0);
digitalWrite(5, 0);
digitalWrite(6, 1);
digitalWrite(7, 0);
digitalWrite(8, 0);
delay(511);
// write '6'
digitalWrite(2, 0);
digitalWrite(3, 1);
digitalWrite(4, 0);
digitalWrite(5, 0);
digitalWrite(6, 0);
digitalWrite(7, 0);
digitalWrite(8, 0);
delay(511);
// write '7'
digitalWrite(2, 0);
digitalWrite(3, 0);
digitalWrite(4, 0);
digitalWrite(5, 1);
digitalWrite(6, 1);
digitalWrite(7, 1);
digitalWrite(8, 1);
delay(511);
28
3. Lalu Upload Sketch tunggu hingga selesai.
// write '8'
digitalWrite(2, 0);
digitalWrite(3, 0);
digitalWrite(4, 0);
digitalWrite(5, 0);
digitalWrite(6, 0);
digitalWrite(7, 0);
digitalWrite(8, 0);
delay(511);
// write '9'
digitalWrite(2, 0);
digitalWrite(3, 0);
digitalWrite(4, 0);
digitalWrite(5, 0);
digitalWrite(6, 1);
digitalWrite(7, 0);
digitalWrite(8, 0);
delay(2111);
29
4.4. Hasil Pengamatan
Gambar 26. Seven Segmen menampilkan angka 9.
Gambar 27. Seven Segmen menampilkan angka 5.
Dari hasil pengamatan diperoleh : Seven Segmen menampilkan Angka 0, 1, 2, 3, 4,
5, 6, 7, 8, 9. Counter Up.
4.5. Contoh Soal
1. Apa perbedaan dari Pin anode dan katode pada seven segmen ?
2. Bagaimana seven segmen tersebut dapat membentuk Angka yang variatif ?
4.6. Jawaban
1. Pada LED 7 Segmen jenis Common Anode (Anoda), Pin Anoda pada semua
segmen LED terhubung menjadi 1 Pin, sedangkan pin Katoda akan menjadi Input
untuk masing-masing Segmen LED. Pin Anoda yang terhubung menjadi 1 Pin ini
30
akan diberikan Tegangan Positif (+) dan Signal Kendali (control signal) akan
diberikan kepada masing-masing Pin Katoda Segmen LED. Sedangkan Pin Katoda
pada semua segmen LED terhubung menjadi 1 Pin, sedangkan Pin Anoda akan
menjadi Input untuk masing-masing Segmen LED. Pin Katoda yang terhubung
menjadi 1 Pin ini merupakan Terminal Negatif (-) atau Ground sedangkan Signal
Kendali (Control Signal) akan diberikan kepada masing-masing Pin Anoda
Segmen LED.
2. Dengan cara mengendalikan setiap segmen secara ON dan OFF untuk
menampilkan angka yang diinginkan. Angka-angka dari 0 (nol) sampai 9
(Sembilan) dapat ditampilkan dengan menggunakan beberapa kombinasi Segmen.
Selain 0 – 9, Seven Segment Display juga dapat menampilkan Huruf Hexadecimal
dari A sampai F.
4.7. Praktikum
1. Buatlah percobaan seven segment dengan Arduino.
2. buatlah percobaan counter up pada 1 seven segmen dengan Arduino.
3. buatlah percobaan counter down pada 1 seven segmen dengan Arduino .
31
5. Seven Segmen 4 Digit 5.1. Dasar Teori
Gambar 28. Konfigurasi Pin Seven Segment 4 Digit.
Seven Segment 4 Digit merupakan gabungan dari 4 buah seven segment menjadi 1
package.
5.2. Alat dan Bahan
- 1 Buah Arduino + Kabel
- 1 Buah Seven Segmen 4 Digit
- 4 Buah Resistor 330ohm
- 16 Buah Jumper Male -Male
5.3. Langkah Kerja
1. Buka Arduino IDE, kemudian klik Sketch> Include Library > Manage Libraries…
2. Pada field filter ketik timer one, maka selanjutnya akan muncul nama librarynya
TimerOne by Jesse Tane, Jerome Despatis, Michael Polli, Dan Clemens, Paul
Stoffregen Version 1.1.0. (Pastikan terkoneksi internet).
Gambar 29. Library Timer One.
3. Klik Instal.
4. Tunggu hingga selesai lalu close Arduino IDE dan buka kembali.
5. Hubungkan Seven Segment 4 digit sesuai dengan rangkaian gambar dibawah ini.
32
Gambar 30. Rangkaian Seven Segment 4 Digit
Keterangan :
a. Pin 2 Arduino (Warna Biru) ke Pin 1 (E) Seven Segment 4 Digit seperti pada
gambar.
b. Pin 3 Arduino (Warna Merah) ke Pin 2 (D) Seven Segment 4 Digit seperti pada
gambar.
c. Pin 4 Arduino (Warna Hitam) ke Pin 3 (DP) Seven Segment 4 Digit seperti pada
gambar .
d. Pin 5 Arduino (Warna Kuning) ke Pin 4 (C) Seven Segment 4 Digit seperti pada
gambar .
e. Pin 6 Arduino (Warna Hijau) ke Pin 5 (G) Seven Segment 4 Digit seperti pada
gambar
f. Pin 7 Arduino (Warna Abu-Abu) ke salah satu pin Resistor 4 seperti pada gambar.
g. Pin 8 Arduino (Warna Putih) ke Pin 7 (B) Seven Segment 4 Digit seperti pada
gambar.
h. Pin 9 Arduino (Warna Orange) ke salah satu pin Resistor 3 seperti pada gambar.Pin
10 Arduino (Warna Ochre) ke salah satu pin Resistor 2 seperti pada gambar.Pin 11
Arduino (Warna Biru Muda) ke Pin 10 (F) Seven Segment 4 Digit seperti pada
gambar.
33
i. Pin 12 Arduino (Warna Coklat) ke Pin 11 (A) Seven Segment 4 Digit seperti pada
gambar.
j. Pin 13 Arduino (Warna Ungu) ke salah satu pin Resistor 1 seperti pada gambar.
k. Pin Resistor 1 lainnya ke Pin 6 (D4) Seven Segment 4 Digit seperti pada gambar .
l. Pin Resistor 2 lainnya ke Pin 8 (D3) Seven Segment 4 Digit seperti pada gambar .
m. Pin Resistor 3 lainnya ke Pin 9 (D2) Seven Segment 4 Digit seperti pada gambar.
n. Pin Resistor 4 lainnya ke Pin 12 (D1) Seven Segment 4 Digit seperti pada.
6. Kemudian masukan Sketch Program di bawah ini
#include <TimerOne.h>
int a = 12;
int b = 8;
int c = 5;
int d = 3;
int e = 2;
int f = 11;
int g = 6;
int p = 4;
int d4 = 7;
int d3 = 9;
int d2 = 10;
int d1 = 13;
long n = 9999; // nilai awal seven segment
int x = 100;
int del = 5;
int count = 9;// kecepatan hitung 1=0,1s
void setup()
pinMode(d1, OUTPUT);
pinMode(d2, OUTPUT);
pinMode(d3, OUTPUT);
pinMode(d4, OUTPUT);
pinMode(a, OUTPUT);
pinMode(b, OUTPUT);
pinMode(c, OUTPUT);
pinMode(d, OUTPUT);
pinMode(e, OUTPUT);
pinMode(f, OUTPUT);
pinMode(g, OUTPUT);
pinMode(p, OUTPUT);
34
Timer1.initialize(100000);
Timer1.attachInterrupt( down );
void loop()
clearLEDs();
pickDigit(0);
pickNumber((n/1000));
delay(del);
clearLEDs();
pickDigit(1);
pickNumber((n%1000)/100);
delay(del);
clearLEDs();
pickDigit(2);
pickNumber(n%100/10);
delay(del);
clearLEDs();
pickDigit(3);
pickNumber(n%10);
delay(del);
void pickDigit(int x)
digitalWrite(d1, LOW);
digitalWrite(d2, LOW);
digitalWrite(d3, LOW);
digitalWrite(d4, LOW);
switch(x)
case 0:
digitalWrite(d1, HIGH);
break;
case 1:
digitalWrite(d2, HIGH);
break;
case 2:
digitalWrite(d3, HIGH);
break;
35
default:
digitalWrite(d4, HIGH);
break;
void pickNumber(int x)
switch(x)
default:
zero();
break;
case 1:
one();
break;
case 2:
two();
break;
case 3:
three();
break;
case 4:
four();
break;
case 5:
five();
break;
case 6:
six();
break;
case 7:
seven();
break;
case 8:
eight();
break;
case 9:
nine();
break;
36
void clearLEDs()
digitalWrite(a, LOW);
digitalWrite(b, LOW);
digitalWrite(c, LOW);
digitalWrite(d, LOW);
digitalWrite(e, LOW);
digitalWrite(f, LOW);
digitalWrite(g, LOW);
digitalWrite(p, LOW);
void zero() //menampilkan angka 0
digitalWrite(a, LOW);
digitalWrite(b, LOW);
digitalWrite(c, LOW);
digitalWrite(d, LOW);
digitalWrite(e, LOW);
digitalWrite(f, LOW);
digitalWrite(g, HIGH);
void one() //menampilkan angka 1
digitalWrite(a, HIGH);
digitalWrite(b, LOW);
digitalWrite(c, LOW);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
void two() //menampilkan angka 2
digitalWrite(a, LOW);
digitalWrite(b, LOW);
digitalWrite(c, HIGH);
digitalWrite(d, LOW);
digitalWrite(e, LOW);
digitalWrite(f, HIGH);
digitalWrite(g, LOW);
37
void three() //menampilkan angka 3
digitalWrite(a, LOW);
digitalWrite(b, LOW);
digitalWrite(c, LOW);
digitalWrite(d, LOW);
digitalWrite(e, HIGH);
digitalWrite(f, HIGH);
digitalWrite(g, LOW);
void four() //menampilkan angka 4
digitalWrite(a, HIGH);
digitalWrite(b, LOW);
digitalWrite(c, LOW);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, LOW);
digitalWrite(g, LOW);
void five() //tmenampilkan angka 5
digitalWrite(a, LOW);
digitalWrite(b, HIGH);
digitalWrite(c, LOW);
digitalWrite(d, LOW);
digitalWrite(e, HIGH);
digitalWrite(f, LOW);
digitalWrite(g, LOW);
void six() //menampilkan angka 6
digitalWrite(a, LOW);
digitalWrite(b, HIGH);
digitalWrite(c, LOW);
digitalWrite(d, LOW);
digitalWrite(e, LOW);
digitalWrite(f, LOW);
digitalWrite(g, LOW);
38
7. Kemudian Upload, tunggu hingga selesai.
void seven() //menampilkan angka 7
digitalWrite(a, LOW);
digitalWrite(b, LOW);
digitalWrite(c, LOW);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
void eight() //menampilkan angka 8
digitalWrite(a, LOW);
digitalWrite(b, LOW);
digitalWrite(c, LOW);
digitalWrite(d, LOW);
digitalWrite(e, LOW);
digitalWrite(f, LOW);
digitalWrite(g, LOW);
void nine() //menampilkan angka 9
digitalWrite(a, LOW);
digitalWrite(b, LOW);
digitalWrite(c, LOW);
digitalWrite(d, LOW);
digitalWrite(e, HIGH);
digitalWrite(f, LOW);
digitalWrite(g, LOW);
void down()
count ++;
if(count == 10)
count = 9;
n--;
if(n == 999)
n = 0;
39
5.4. Hasil Pengamatan
Gambar 31. Seven Segmen Saat Menghitung Mundur Dengan Digit Angka 5706.
Gambar 32. Seven Segmen Saat Menghitung Mundur Dengan Digit Angka 5552
Seven Segment menghitung mundur dari 9999 hingga 0000.
5.5. Contoh Soal
1. Bagaimana Seven Segment 4 digit tersebut bekerja ?
2. Apa yang membedakan Seven Segment 4 digit dengan yang 1 digit ?
5.6. Jawaban
1. Sama Hal nya dengan Seven Segment 1 digit, Seven Segment 4 digit bekerja
dengan cara mengkendalikan setiap segmentnya secara ON atau OFF.
2. Yang membedakan Seven Sement 4 digit dan 1 digit yaitu jumlah Anode/Katode
yang dimiliki oleh masing – masing Seven Segment, Seven Segment 4 digit
memiliki 4 Anode/Katode Sedangkan, yang 1 digit memiliki 1 Anode/Katode saja.
40
5.7. Praktikum
1. Lakukan percobaan agar seven segment 4 digit dapat melakukan counting
up/down dengan menggunakan Arduino.!
2. Lakukan percobaan agar seven segment 4 digit dapat bekerja dengan IC74HC595
sebagai driver nya ! (menggunakan Arduino)
41
6. Motor Servo 6.1. Dasar Teori
Motor servo adalah jenis motor DC dengan sistem umpan balik tertutup yang
terdiri dari sebuah motor DC, serangkaian gear, rangkaian kontrol, dan juga
potensiometer dalam satu paket. Pada motor servo, potensiometer berfungsi untuk
menentukan batas sudut dari putaran motor servo. Sudut sumbu motor servo dapat
diatur berdasarkan lebar pulsa yang dikirim melalui pin sinyal dari kabel servo itu
sendiri. Oleh karena itu motor servo dapat berputar searah dan berlawanan arah jarum
jam.
Gambar 33. Struktur Servo
Motor servo dapat menampilkan gerakan 0 derajat, 90 derajat, 180 derajat,
hingga 360 derajat. Tak heran jika motor ini banyak diaplikasikan untuk penggerak
pin dan juga lengan robot. Selain itu motor servo juga memiliki torsi yang besar
sehingga mampu menopang beban cukup berat.
6.2. Alat dan Bahan
- 1 Buah Arduino + Kabel
- 1 Buah Servo
- 3 Buah Push Button
- 3 Buah Resistor 10k ohm
- 11 Buah Kabel Jumper Male-Male.
6.3. Langkah Kerja
1. Hubungkan sesuai dengan rangkaian gambar dibawah ini.
42
Gambar 34. Rangkaian Servo
Keterangan :
1. GND Arduino (Warna Hitam) ke masing-masing pin Resistor dan GND Servo.
2. VCC Arduino (Warna Merah) ke masing-masing pin Push Button dan VCC
Servo.
3. Pin 3 Arduino (Warna Kuning) ke pin Data Servo.
4. Pin 4 Arduino (Warna Hijau) ke pin Push Button 1 seperti pada gambar.
5. Pin 5 Arduino (Warna Ungu) ke pin Push Button 2 seperti pada gambar.
6. Pin 6 Arduino (Warna Putih) ke pin Push Button 3 seperti pada gambar.
2. Buka Arduino IDE, dan masukan sketch program dibawah ini:
#include <Servo.h>
Servo myservo;
int button1 = 4;
int button2 = 5;
int button3 = 6;
int buttonState1 = 0; //status tombol 1
int buttonState2 = 0; //status tombol 2
int buttonState3 = 0; //status tombol 3
43
3. Lalu Upload Sketch tunggu hingga selesai.
void setup()
Serial.begin(9600);
myservo.attach(3); //data servo di pin 3
myservo.write(0); // kondisi awal servo 0
pinMode(button1, INPUT); //input button 1
pinMode(button2, INPUT); //input button 2
pinMode(button3, INPUT); //input button 3
void loop()
buttonState1 = digitalRead(button1);
buttonState2 = digitalRead(button2);
buttonState3 = digitalRead(button3);
if(buttonState1 == HIGH)
myservo.write(90);
delay(800);
Serial.println("Servo Berputar menjadi 90*");
if(buttonState2 == HIGH)
myservo.write(180);
delay(800);
Serial.println("Servo Berputar menjadi 180*");
if(buttonState3 == HIGH)
myservo.write(0);
delay(800);
Serial.println("Servo Berputar kembali ke 0*");
44
6.4. Hasil Percobaan.
Gambar 35. Serial Monitor Servo
Gambar 36. Posisi Awal Servo
45
Gambar 37. Kondisi Servo Setelah Push Button 1 ditekan
Gambar 38. Kondisi Setelah Push Button 2 ditekan.
Gambar 39. Kondisi Setelah Push Button 3 ditekan.
Dari hasil pengamatan dihasilkan :
46
1. Saat push button 1 ditekan, maka servo akan berputar 90° dan nilainya
ditampilkan oleh serial monitor.
2. Saat push button 2 ditekan, maka servo akan berputar 180° dan nilainya
ditampilkan oleh serial monitor.
3. Saat push button 3 ditekan, maka servo akan berputar kembali keposisi awal
yaitu 0° dan nilainya ditampilkan oleh serial monitor.
6.5. Contoh Soal
1. Bagaimana motor Servo dapat bekerja ?
2. Bagaimana motor servo dapat berputar 90° dengan Arduino saat tombol tertentu
ditekan?
6.6. Jawaban
1. Motor servo dapat bekerja apabila diberikan sinyal PWM melalui kabel control
yang tersedia pada servo (kabel kuning). Ketika lebar pulsa kendali diberikan
maka poros servo akan berputar atau bergerak kearah yang dikendalikan.
2. Servo dapat berputar 90° saat tombol tertentu ditekan yaitu dengan cara,
Menentukan tombol yang akan membuat servo berputar 90° lalu membuat
program dengan logika
if(buttonState1 == HIGH) //apabila kondisi tombol yanditentukan berlogika
HIGH
myservo.write(90); //Servo akan melakukan pergerakan sebesar 90°
delay(800);
6.7. Praktikum
1. Lakukan percobaan agar motor servo dapat dikontrol dengan sensor yang tersedia
!
47
7. Motor Stepper 7.1. Dasar Teori
Motor stepper adalah salah satu jenis motor dc yang dikendalikan dengan pulsa-
pulsa digital. Prinsip kerja motor stepper adalah bekerja dengan mengubah pulsa
elektronis menjadi gerakan mekanis diskrit dimana motor stepper bergerak
berdasarkan urutan pulsa yang diberikan kepada motor stepper tersebut.
STEP
1 2 3 4 5 6 7 8
IN1 - - -
IN2 - - -
IN3 - - -
IN4 - - -
Tabel 2. Urutan Pergerakan Motor Stepper
7.2. Alat dan Bahan
- 1 Buah Arduino + Kabel
- 1 Buah Stepper
- 1 Buah Modul ULN2003
- 6 Buah Jumper Female - Male
7.3. Langkah Kerja
1. Hubungkan LED sesuai dengan rangkaian gambar dibawah ini.
Gambar 40. Stepper
48
Keterangan :
a. GND Arduino (Warna Hitam) ke GND Modul ULN2003 (Warna Hitam).
b. VCC 5V Arduino (Warna Merah) ke VCC Modul ULN2003 (Warna Merah).
c. Pin 8 Arduino ke pin IN4 pada Modul ULN2003 seperti pada gambar.
d. Pin 9 Arduino ke pin IN3 pada Modul ULN2003 seperti pada gambar.
e. Pin 10 Arduino ke pin IN2 pada Modul ULN2003 seperti pada gambar.
f. Pin 11 Arduino ke pin IN1 pada Modul ULN2003 seperti pada gambar.
g. Kabel Motor Stepper colokan sesuai pada gambar.
2. Buka Arduino IDE, dan masukan sketch program dibawah ini;
49
int IN4 = 8;
int IN3 = 9;
int IN2 = 10;
int IN1 = 11;
void setup()
pinMode(IN1, OUTPUT); pinMode(IN2, OUTPUT);
pinMode(IN3, OUTPUT); pinMode(IN4, OUTPUT);
void loop()
//STEP1
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
delay(1);
//STEP2
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, HIGH);
delay(1);
//STEP3
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
delay(1);
//STEP4
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
50
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
delay(1);
//STEP5
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
digitalWrite(IN3, LOW);
digitalWrite(IN4, LOW);
delay(1);
//STEP6
digitalWrite(IN1, HIGH);
digitalWrite(IN2, HIGH);
digitalWrite(IN3, LOW);
digitalWrite(IN4, LOW);
delay(1);
//STEP7
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, LOW);
delay(1);
//STEP8
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
delay(1);
51
3. Lalu Upload Sketch tunggu hingga selesai.
7.4. Hasil Pengamatan
Gambar 41. Servo Bergerak Berlawanan Arah Jam
Dari hasil pengamatan dihasilkan : servo berputar berlawanan dengan arah jam.
7.5. Contoh Soal
1. 1.Bagaimana Prinsip kerja dari motor stepper ?
2. Apa fungsi dari IC ULN2003 pada motor stepper tersebut ?
7.6. Jawaban
2. Motor stepper adalah salah satu jenis motor dc yang dikendalikan dengan pulsa-
pulsa digital. Prinsip kerja motor stepper adalah bekerja dengan mengubah pulsa
elektronis menjadi gerakan mekanis diskrit dimana motor stepper bergerak
berdasarkan urutan pulsa yang diberikan kepada motor stepper tersebut
3. IC ULN2003 pada motor stepper tersebut adalah IC yang digunakan sebagai
driver dari motor stepper.
7.7. Praktikum
1. Lakukan percobaan agar motor stepper dapat bekerja ketika sensor digital
berlogika HIGH dengan menggunakan Arduino.
52
8. RFID 8.1. Dasar Teori
RFID atau bisa disebut juga Radio Frequency Identification adalah sebuah alat
yang menggunakan sistem radiasi elektromagnetik untuk memungkinkan
pengambilan data tanpa harus bersentuhan seperti barcode atau magnetic card. RFID
menggunakan sistem identifikasi dengan gelombang radio, karena itu minimal
dibutuhkan dua buah perangkat agar alat ini dapat berfungsi, adapun perangkat yang
dibutuhkan disebut TAG dan READER.
Gambar 42. Pin Modul RFID-RC522 dan Macam-Macam Tag
Alat yang melekat pada objek yang akan diidentifikasi oleh RFID Reader.
Terdapat 2 jenis RFID TAG yaitu perangkat pasif dan aktif. TAG pasif tanpa
menggunakan baterai sedangkan TAG aktif menggunakan baterai untuk dapat
berfungsi. alat ini dapat berupa perangkat read-only yang berarti hanya dapat dibaca
saja ataupun perangkat read-write yang berarti dapat dibaca dan ditulis ulang.Alat
ini hanya berisi sebuah TAG yang unik yang berbeda satu dengan yang lainnya. Jadi
informasi mengenai objek yang terhubung ke tag ini hanya terdapat pada sistem atau
database yang terhubung pada RFID Reader.
Ada dua macam RIFD Reader yaitu Reader Pasif dan Reader Aktif. Reader
Pasif memiliki sistem pambaca pasif yang hanya dapat menerima sinyal radio dari
TAG Aktif (yang dioperasikan dengan baterai). Jangkauan penerima alat ini dapat
mencapai sampai dengan jarak 600 meter. Reader Aktif memiliki sistem pembaca
aktif yang dapat memancarkan sinyal interogator ke TAG dan menerima balasan
autentikasi dari TAG. Sinyal interogator ini juga menginduksi TAG dan akhirnya
menjadi sinyal DC sehingga dapat menjadi sumber daya TAG Pasif.
8.2. Alat dan Bahan
- 1 Buah Arduino + Kabel
- 1 Buah Modul RFID-RC522
- 1 Buah Tag Kartu
- 1 Buah Tag Pin
53
- 7 Buah Jumper Female -Male
8.3. Langkah Kerja
8. Buka Arduino IDE, kemudian klik Sketch> Include Library > Manage Libraries…
9. Pada field filter ketik MFRC522, maka selanjutnya akan muncul nama librarynya
MFRC22 by GithubCommunity. (Pastikan terkoneksi internet).
Gambar 43. Library RFID MFRC522
10. Pilih Versi 1.4.3 , lalu klik Instal.
11. Tunggu hingga selesai lalu close Arduino IDE dan buka kembali.
12. Hubungkan RFID MFRC522 sesuai dengan rangkaian gambar dibawah ini.
Gambar 44. Rangkaian RFID
54
Keterangan :
o. GND Arduino (Warna Hitam) ke GND Modul RFID-RC522 (Warna Hitam).
p. 5V Arduino (Warna Merah) ke VCC Modul RFID-RC522 (Warna Merah).
q. Pin 9 Arduino (Warna Ungu) ke Pin RST Modul RFID-RC522(Warna Ungu).
r. Pin 10 Arduino (Warna Putih) ke Pin SDA Modul RFID-RC522(Warna Putih).
s. Pin 11 Arduino (Warna Hijau) ke Pin MOSI Modul RFID-RC522(Warna Hijau).
t. Pin 12 Arduino (Warna Biru) ke Pin MISO Modul RFID-RC522(Warna Biru).
u. Pin 13 Arduino (Warna Kuning) ke Pin SCK Modul RFID-RC522(Warna Kuning).
13. Kemudian masukan Sketch Program di bawah ini
/* Typical pin layout used:
* -----------------------------------------------------------------------------------------
* MFRC522 Arduino Arduino Arduino Arduino Arduino
* Reader/PCD Uno/101 Mega Nano v3 Leonardo/Micro Pro Micro
* Signal Pin Pin Pin Pin Pin Pin
* -----------------------------------------------------------------------------------------
* RST/Reset RST 9 5 D9 RESET/ICSP-5 RST
* SPI SS SDA(SS) 10 53 D10 10 10
* SPI MOSI MOSI 11 / ICSP-4 51 D11 ICSP-4 16
* SPI MISO MISO 12 / ICSP-1 50 D12 ICSP-1 14
* SPI SCK SCK 13 / ICSP-3 52 D13 ICSP-3 15
*/
#include <SPI.h>
#include <MFRC522.h>
#define pinSS 10
#define pinReset 9
MFRC522 RFID(pinSS, pinReset);
String ID;
void setup()
Serial.begin(9600);
SPI.begin();
55
14. Kemudian Upload, tunggu hingga selesai.
RFID.PCD_Init();
Serial.println("RFID Reader");
void loop()
if ( ! RFID.PICC_IsNewCardPresent())
return;
if ( ! RFID.PICC_ReadCardSerial())
return;
Serial.print("ID : ");
String ID = "";
byte letter;
for (byte i = 0; i < RFID.uid.size; i++)
ID.concat(String(RFID.uid.uidByte[i], HEX));
Serial.print(ID);
Serial.println();
delay(2500);
56
8.4. Hasil Pengamatan
Gambar 45. Tag Kartu didekatkan pada modul RFID-RC522
Gambar 46. Hasil Pembacaan Tag Kartu
57
Gambar 47. Tag Pin ditempelkan pada modul RFID-RC522
Gambar 48. Hasil Pembacaan Tag Pin
Dari hasil pengamatan dihasilkan : tag RFID dapat diidentifikasi oleh reader RFID
yang ditampilkan pada serial monitor.
8.5. Contoh Soal
1. Bagaimana cara kerja dari RFID ?
2. Bagaimana perbedaan reader RFID Aktif/Pasif ?
8.6. Jawaban
1. RFID atau bisa disebut juga Radio Frequency Identification adalah sebuah alat
yang menggunakan sistem radiasi elektromagnetik untuk memungkinkan
pengambilan data tanpa harus bersentuhan seperti barcode atau magnetic card.
58
RFID menggunakan sistem identifikasi dengan gelombang radio, karena itu
minimal dibutuhkan dua buah perangkat agar alat ini dapat berfungsi.
2. Ada dua macam RIFD Reader yaitu Reader Aktif dan Reader Pasif. Reader Aktif
memiliki sistem pembaca aktif yang dapat memancarkan sinyal interogator ke
TAG dan menerima balasan autentikasi dari TAG. Sinyal interogator ini juga
menginduksi TAG dan akhirnya menjadi sinyal DC sehingga dapat menjadi
sumber daya TAG Pasif. Sedangkan Reader Pasif memiliki sistem pambaca pasif
yang hanya dapat menerima sinyal radio dari TAG Aktif (yang dioperasikan
dengan baterai). Jangkauan penerima alat ini dapat mencapai sampai dengan jarak
600 meter.
8.7. Praktikum
4. Lakukan Praktikum agar UID Rfid card tertentu dapat menampilkan nama anda
pada LCD/Serial monitor!
59
9. Real Time Clock (RTC) 9.1. Dasar Teori
Real Time Clock (RTC) adalah komponen IC penghitung yang dapat
difungsikan sebagai sumber data waktu baik berupa data jam, hari, bulan maupun
tahun. Komponen DS1307 berupa IC yang perlu dilengkapi dengan komponen
pendukung lainnya seperti crystal sebagai sumber clock dan Battery External 3,6
Volt sebagai sumber energy cadangan agar fungsi penghitung tidak berhenti.
Bentuk komunikasi data dari IC RTC adalah I2C yang merupakan kepanjangan
dari Inter Integrated Circuit. Komunikasi jenis ini hanya menggunakan 2 jalur
komunikasi yaitu SCL dan SDA. Semua microcontroller sudah dilengkapi dengan
fitur komunikasi 2 jalur ini, termasuk diantaranya Arduino Microcontroller.
Gambar 49. Konfigurasi Pin DS1307
9.2. Alat dan Bahan
- 1 Buah Arduino + Kabel
- 1 Buah Modul RTC DS1307
- 4 Buah Jumper Female -Male
9.3. Langkah Kerja
1. Buka Arduino IDE, kemudian klik Sketch> Include Library > Manage
Libraries…
2. Pada field filter ketik RTClib, maka selanjutnya akan muncul nama librarynya
RTClib by Adafruit. (Pastikan terkoneksi internet).
60
Gambar 50. Library RTClib
3. Pilih Versi 1.2.1 , lalu klik Instal.
4. Tunggu hingga selesai lalu close Arduino IDE dan buka kembali.
5. Hubungkan sesuai dengan rangkaian gambar dibawah ini.
Gambar 51. Rangkaian RTC
61
Keterangan :
a. GND Arduino (Warna Hitam) ke GND Modul RTC DS1307 sesuai pada
gambar.
b. 5V Arduino (Warna Merah) ke VCC Modul RTC DS1307 sesuai pada
gambar.
c. Pin A4 Arduino (Warna Kuning) ke Pin SDA Modul RTC DS1307 sesuai
pada gambar.
d. Pin A5 Arduino (Warna Kuning) ke Pin SCL Modul RTC DS1307 sesuai
pada gambar.
62
6. Kemudian masukan Sketch Program di bawah ini
#include <Wire.h>
#include "RTClib.h"
RTC_DS1307 rtc;
char daysOfTheWeek[7][12] = "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday";
void setup ()
while (!Serial); // for Leonardo/Micro/Zero
Serial.begin(57600);
if (! rtc.begin())
Serial.println("Couldn't find RTC");
while (1);
if (! rtc.isrunning())
Serial.println("RTC is NOT running!");
// following line sets the RTC to the date & time this sketch was compiled
// rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
// This line sets the RTC with an explicit date & time, for example to set
//rtc.adjust(DateTime(2018, 11, 8, 1, 4, 0)); // hapus tanda "//" untuk setting
// mensetting tanggal dan waktu format : tahun, bulan, tangga, jam, menit, detik
void loop ()
DateTime now = rtc.now();
Serial.print(now.year(), DEC);
Serial.print('/');
Serial.print(now.month(), DEC);
Serial.print('/');
Serial.print(now.day(), DEC);
Serial.print(" (");
63
7. Kemudian Upload, tunggu hingga selesai.
9.4. Hasil Pengamatan
Gambar 52. Serial Monitor Saat RTC Belum di Setting.
Serial.print(daysOfTheWeek[now.dayOfTheWeek()]);
Serial.print(") ");
Serial.print(now.hour(), DEC);
Serial.print(':');
Serial.print(now.minute(), DEC);
Serial.print(':');
Serial.print(now.second(), DEC);
Serial.println();
64
Gambar 53. Serial Monitor Saat RTC Sudah di Setting.
9.5. Contoh Soal
1. Apa bentuk dari komunikasi modul RTC DS1307 tersebut?
2. Bagaimana modul RTC DS1307 ini dapat menampilkan tanggal saat ini ?
9.6. Jawaban
1. Bentuk komunikasi data dari IC RTC adalah I2C yang merupakan kepanjangan
dari Inter Integrated Circuit (I2C). Komunikasi jenis ini hanya menggunakan 2
jalur komunikasi yaitu SCL dan SDA. Semua microcontroller sudah dilengkapi
dengan fitur komunikasi 2 jalur ini, termasuk diantaranya Arduino Microcontroller.
2. Modul RTC ini dapat menampilkan tanggal saat ini dengan cara, membuat program
Arduino
// rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
// This line sets the RTC with an explicit date & time, for example to set
//rtc.adjust(DateTime(2018, 11, 8, 1, 4, 0)); // hapus tanda "//" untuk setting
// mensetting tanggal dan waktu format : tahun, bulan, tangga, jam, menit, detik
void loop ()
DateTime now = rtc.now();
Serial.print(now.year(), DEC);
Serial.print('/');
Serial.print(now.month(), DEC);
Serial.print('/');
Serial.print(now.day(), DEC);
65
Serial.print(" (");
9.7. Praktikum
1. Lakukan praktikum dengan menggunakan modul RTC agar dapat mengaktifkan
output buzzer diwaktu yang ditentukan sendiri!
66
10. Dot Matrix 8X8 10.1. Dasar Teori
Gambar 54. Konfigurasi Pin Dot Matrix 8x8
Dot Matrix 8x8 yang berarti 1 dot matrix berukuran 8 kolom dan 8 baris LED
yang disusun menjadi 1. Dot matrix biasa digunakan untuk menampilkan karakter-
karakter tertentu, symbol, ataupun gambar.
10.2. Alat dan Bahan
- 1 Buah Arduino + Kabel
- 1 Buah Dot Matrix 8x8
- 8 Buah Jumper Male – Female
- 8 Buah Jumper Male – Male
- 8 Buah Resistor 330 Ω
10.3. Langkah Kerja
1. Hubungkan sesuai dengan rangkaian gambar dibawah ini.
67
Gambar 55. Rangkaian Dot Matrix 8x8.
Keterangan :
a. Pin 1 (R3) pada Dot Matrix 8x8 ke salah satu pin Resistor 1 sesuai pada
gambar.
b. Pin 2 (R1) pada Dot Matrix 8x8 ke salah satu pin Resistor 2 sesuai pada
gambar.
c. Pin 3 (C6) pada Dot Matrix 8x8 ke pin 2 Arduino sesuai pada gambar.
d. Pin 4 (C5) pada Dot Matrix 8x8 ke pin 3 Arduino sesuai pada gambar.
e. Pin 5 (R0) pada Dot Matrix 8x8 ke salah satu pin Resistor 3 sesuai pada
gambar.
f. Pin 6 (C3) pada Dot Matrix 8x8 ke pin 5 Arduino sesuai pada gambar.
g. Pin 7 (R2) pada Dot Matrix 8x8 ke salah satu pin Resistor 4 sesuai pada
gambar.
h. Pin 8 (R5) pada Dot Matrix 8x8 ke salah satu pin Resistor 5 sesuai pada
gambar.
i. Pin 9 (R7) pada Dot Matrix 8x8 ke salah satu pin Resistor 6 sesuai pada
gambar.
j. Pin 10 (C4) pada Dot Matrix 8x8 ke pin 9 Arduino sesuai pada gambar.
k. Pin 11 (C2) pada Dot Matrix 8x8 ke pin 10 Arduino sesuai pada gambar.
l. Pin 12 (R4) pada Dot Matrix 8x8 ke salah satu pin Resistor 7 sesuai pada
gambar.
m. Pin 13 (C7) pada Dot Matrix 8x8 ke pin 12 Arduino sesuai pada gambar.
n. Pin 14 (R6) pada Dot Matrix 8x8 ke salah satu pin Resistor 8 sesuai pada
gambar.
o. Pin 15 (C1) pada Dot Matrix 8x8 ke pin A0 Arduino pin sesuai pada gambar.
p. Pin 16 (C0) pada Dot Matrix 8x8 ke pin A1 Arduino sesuai pada gambar.
q. Pin Resistor 1 yang lain ke pin 0 Arduino sesuai pada gambar.
r. Pin Resistor 2 yang lain ke pin 1 Arduino sesuai pada gambar.
s. Pin Resistor 3 yang lain ke pin 4 Arduino sesuai pada gambar.
t. Pin Resistor 4 yang lain ke pin 6 Arduino sesuai pada gambar.
68
u. Pin Resistor 5 yang lain ke pin 7 Arduino sesuai pada gambar.
v. Pin Resistor 6 yang lain ke pin 8 Arduino sesuai pada gambar.
w. Pin Resistor 7 yang lain ke pin 11 Arduino sesuai pada gambar.
x. Pin Resistor 8 yang lain ke pin 13 Arduino sesuai pada gambar.
69
2. Buka Arduino IDE, dan masukan sketch program dibawah ini:
#define R0 4 //PIN ROW 0
#define R1 1 //PIN ROW 1
#define R2 6 //PIN ROW 2
#define R3 0 //PIN ROW 3
#define R4 11 //PIN ROW 4
#define R5 7 //PIN ROW 5
#define R6 13 //PIN ROW 6
#define R7 8 //PIN ROW 7
#define C7 A0 //PIN COL 0
#define C6 A1 //PIN COL 1
#define C5 10 //PIN COL 2
#define C4 5 //PIN COL 3
#define C3 9 //PIN COL 4
#define C2 3 //PIN COL 5
#define C1 2 //PIN COL 6
#define C0 12 //PIN COL 7
byte rw[] = R7, R6, R5, R4, R3, R2, R1, R0;
byte cl[] = C7, C6, C5, C4, C3, C2, C1, C0;
70
byte ALL[] =
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1
;
byte A[] =
0, 1, 1, 1, 1, 1, 1, 0,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 0, 0, 0, 0, 1, 1,
1, 1, 0, 0, 0, 0, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 0, 0, 0, 0, 1, 1,
1, 1, 0, 0, 0, 0, 1, 1
;
byte B[] =
1, 1, 1, 1, 1, 1, 1, 0,
1, 1, 0, 0, 0, 1, 1, 1,
1, 1, 0, 0, 0, 0, 1, 1,
1, 1, 1, 1, 1, 1, 1, 0,
1, 1, 1, 1, 1, 1, 1, 0,
1, 1, 0, 0, 0, 0, 1, 1,
1, 1, 0, 0, 0, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 0
;
byte C[] =
0, 1, 1, 1, 1, 1, 1, 0,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 0, 0, 0, 0,
1, 1, 1, 1, 1, 1, 1, 1,
0, 1, 1, 1, 1, 1, 1, 0
;
71
byte D[] =
1, 1, 1, 1, 1, 1, 1, 0,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 0, 0, 0, 1, 1, 1,
1, 1, 0, 0, 0, 0, 1, 1,
1, 1, 0, 0, 0, 0, 1, 1,
1, 1, 0, 0, 0, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 0
;
byte E[] =
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 0, 0, 0, 0, 0, 0,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 0, 0, 0, 0, 0, 0,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1
;
byte F[] =
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 0, 0, 0, 0, 0, 0,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 0, 0, 0, 0
;
byte G[] =
0, 1, 1, 1, 1, 1, 1, 0,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 1, 1, 1, 1, 1,
1, 1, 0, 1, 1, 1, 1, 1,
1, 1, 0, 0, 0, 0, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1
;
72
byte H[] =
1, 1, 0, 0, 0, 0, 1, 1,
1, 1, 0, 0, 0, 0, 1, 1,
1, 1, 0, 0, 0, 0, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 0, 0, 0, 0, 1, 1,
1, 1, 0, 0, 0, 0, 1, 1,
1, 1, 0, 0, 0, 0, 1, 1
;
byte I[] =
0, 1, 1, 1, 1, 1, 1, 0,
0, 1, 1, 1, 1, 1, 1, 0,
0, 0, 0, 1, 1, 0, 0, 0,
0, 0, 0, 1, 1, 0, 0, 0,
0, 0, 0, 1, 1, 0, 0, 0,
0, 0, 0, 1, 1, 0, 0, 0,
0, 1, 1, 1, 1, 1, 1, 0,
0, 1, 1, 1, 1, 1, 1, 0
;
byte J[] =
0, 0, 0, 1, 1, 1, 1, 0,
0, 0, 0, 1, 1, 1, 1, 1,
0, 0, 0, 0, 0, 0, 1, 1,
0, 0, 0, 0, 0, 0, 1, 1,
0, 0, 0, 0, 0, 0, 1, 1,
0, 0, 0, 0, 0, 0, 1, 1,
0, 1, 1, 1, 1, 1, 1, 1,
0, 1, 1, 1, 1, 1, 1, 0
;
byte K[] =
1, 1, 0, 0, 0, 0, 1, 1,
1, 1, 0, 0, 0, 1, 1, 1,
1, 1, 0, 1, 1, 1, 0, 0,
1, 1, 1, 1, 1, 0, 0, 0,
1, 1, 1, 1, 1, 0, 0, 0,
1, 1, 0, 0, 1, 1, 0, 0,
1, 1, 0, 0, 0, 1, 1, 1,
1, 1, 0, 0, 0, 0, 1, 1
;
73
byte L[] =
1, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 0, 0, 0, 0,
1, 1, 1, 1, 1, 1, 1, 0,
1, 1, 1, 1, 1, 1, 1, 0
;
byte M[] =
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 0, 1, 1, 0, 1, 1,
1, 1, 0, 1, 1, 0, 1, 1,
1, 1, 0, 1, 1, 0, 1, 1,
1, 1, 0, 1, 1, 0, 1, 1,
1, 1, 0, 1, 1, 0, 1, 1,
1, 1, 0, 1, 1, 0, 1, 1
;
byte N[] =
1, 1, 0, 0, 0, 0, 1, 1,
1, 1, 1, 0, 0, 0, 1, 1,
1, 1, 1, 1, 0, 0, 1, 1,
1, 1, 0, 1, 1, 0, 1, 1,
1, 1, 0, 0, 1, 1, 1, 1,
1, 1, 0, 0, 0, 1, 1, 1,
1, 1, 0, 0, 0, 0, 1, 1,
1, 1, 0, 0, 0, 0, 0, 1
;
byte O[] =
0, 1, 1, 1, 1, 1, 1, 0,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 0, 0, 0, 0, 1, 1,
1, 1, 0, 0, 0, 0, 1, 1,
1, 1, 0, 0, 0, 0, 1, 1,
1, 1, 0, 0, 0, 0, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
0, 1, 1, 1, 1, 1, 1, 0
;
74
byte P[] =
1, 1, 1, 1, 1, 1, 0, 0,
1, 1, 1, 1, 1, 1, 1, 0,
1, 1, 0, 0, 0, 1, 1, 0,
1, 1, 0, 0, 0, 1, 1, 0,
1, 1, 1, 1, 1, 1, 1, 0,
1, 1, 1, 1, 1, 1, 0, 0,
1, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 0, 0, 0, 0
;
byte Q[] =
0, 1, 1, 1, 1, 1, 1, 0,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 0, 0, 0, 0, 1, 1,
1, 1, 0, 0, 0, 0, 1, 1,
1, 1, 0, 0, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 0,
0, 1, 1, 1, 1, 1, 1, 1,
0, 0, 0, 0, 0, 1, 1, 1
;
byte R[] =
1, 1, 1, 1, 1, 1, 1, 0,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 0, 0, 0, 1, 1, 0,
1, 1, 0, 0, 1, 1, 0, 0,
1, 1, 1, 1, 1, 1, 0, 0,
1, 1, 0, 0, 1, 1, 1, 0,
1, 1, 0, 0, 0, 1, 1, 1,
1, 1, 0, 0, 0, 0, 1, 1
;
byte S[] =
0, 1, 1, 1, 1, 1, 1, 0,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 0, 0, 0, 0, 0, 0,
1, 1, 1, 1, 1, 1, 1, 0,
0, 1, 1, 1, 1, 1, 1, 1,
0, 0, 0, 0, 0, 0, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
0, 1, 1, 1, 1, 0, 1, 0
;
75
byte T[] =
0, 1, 1, 1, 1, 1, 1, 0,
0, 1, 1, 1, 1, 1, 1, 0,
0, 0, 0, 1, 1, 0, 0, 0,
0, 0, 0, 1, 1, 0, 0, 0,
0, 0, 0, 1, 1, 0, 0, 0,
0, 0, 0, 1, 1, 0, 0, 0,
0, 0, 0, 1, 1, 0, 0, 0,
0, 0, 0, 1, 1, 0, 0, 0
;
byte U[] =
0, 1, 1, 0, 0, 1, 1, 0,
0, 1, 1, 0, 0, 1, 1, 0,
0, 1, 1, 0, 0, 1, 1, 0,
0, 1, 1, 0, 0, 1, 1, 0,
0, 1, 1, 0, 0, 1, 1, 0,
0, 1, 1, 0, 0, 1, 1, 0,
0, 1, 1, 1, 1, 1, 1, 0,
0, 0, 1, 1, 1, 1, 0, 0
;
byte V[] =
1, 1, 0, 0, 0, 0, 1, 1,
1, 1, 0, 0, 0, 0, 1, 1,
1, 1, 0, 0, 0, 0, 1, 1,
1, 1, 0, 0, 0, 0, 1, 1,
0, 1, 1, 0, 0, 1, 1, 0,
0, 0, 1, 1, 1, 1, 0, 0,
0, 0, 0, 1, 1, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0
;
byte W[] =
1, 1, 0, 1, 1, 0, 1, 1,
1, 1, 0, 1, 1, 0, 1, 1,
1, 1, 0, 1, 1, 0, 1, 1,
1, 1, 0, 1, 1, 0, 1, 1,
1, 1, 0, 1, 1, 0, 1, 1,
1, 1, 0, 1, 1, 0, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
0, 1, 1, 1, 1, 1, 1, 0
;
76
byte X[] =
1, 1, 0, 0, 0, 0, 1, 1,
0, 1, 1, 0, 0, 1, 1, 0,
0, 0, 1, 1, 1, 1, 0, 0,
0, 0, 0, 1, 1, 0, 0, 0,
0, 0, 0, 1, 1, 0, 0, 0,
0, 0, 1, 1, 1, 1, 0, 0,
0, 1, 1, 0, 0, 1, 1, 0,
1, 1, 0, 0, 0, 0, 1, 1
;
byte Y[] =
1, 1, 0, 0, 0, 0, 1, 1,
1, 1, 0, 0, 0, 0, 1, 1,
1, 1, 1, 0, 0, 1, 1, 1,
0, 1, 1, 1, 1, 1, 1, 0,
0, 0, 1, 1, 1, 1, 0, 0,
0, 0, 0, 1, 1, 0, 0, 0,
0, 0, 0, 1, 1, 0, 0, 0,
0, 0, 0, 1, 1, 0, 0, 0
;
byte Z[] =
0, 1, 1, 1, 1, 1, 1, 0,
0, 1, 1, 1, 1, 1, 1, 0,
0, 0, 0, 0, 1, 1, 1, 0,
0, 0, 0, 1, 1, 1, 0, 0,
0, 0, 1, 1, 1, 0, 0, 0,
0, 1, 1, 0, 0, 0, 0, 0,
0, 1, 1, 1, 1, 1, 1, 0,
0, 1, 1, 1, 1, 1, 1, 0
;
byte LOVE[] =
0, 1, 1, 0, 0, 1, 1, 0,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 0,
0, 1, 1, 1, 1, 1, 0, 0,
0, 0, 1, 1, 1, 0, 0, 0,
0, 0, 0, 1, 1, 0, 0, 0
;
77
int idx = 0;
int timecount= 0;
void setup()
for (int i=0; i<=16; i++)
pinMode(i, OUTPUT);
matikan();
void loop()
timecount = timecount + 1;
if (timecount<150)
a();
else if (timecount<300)
b();
else if (timecount<450)
c();
else if (timecount<600)
d();
else if (timecount<750)
e();
else if (timecount<900)
f();
else if (timecount<1050)
g();
else if (timecount<1200)
h();
else if (timecount<1350)
i();
else if (timecount<1500)
j();
78
else if (timecount<1650)
k();
else if (timecount<1800)
l();
else if (timecount<1950)
m();
else if (timecount<2100)
n();
else if (timecount<2250)
o();
else if (timecount<2400)
p();
else if (timecount<2550)
q();
else if (timecount<2700)
r();
else if (timecount<2850)
s();
else if (timecount<3000)
t();
else if (timecount<3150)
u();
else if (timecount<3300)
v();
else if (timecount<3450)
w();
else if (timecount<3600)
x();
79
void a()
for (int c=0; c<8; c++)
digitalWrite(cl[c], LOW);
for (int i=0; i<8; i++)
if (A[idx] == 0)
digitalWrite(rw[i], LOW);
else
digitalWrite(rw[i], HIGH);
delayMicroseconds(100);
matikan_baris();
idx++;
if (idx >= 64)
idx = 0;
digitalWrite(cl[c], HIGH);
void b()
for (int c=0; c<8; c++)
digitalWrite(cl[c], LOW);
for (int i=0; i<8; i++)
if (B[idx] == 0)
digitalWrite(rw[i], LOW);
else
digitalWrite(rw[i], HIGH);
delayMicroseconds(100);
matikan_baris();
idx++;
if (idx >= 64)
idx = 0;
digitalWrite(cl[c], HIGH);
80
void c()
for (int c=0; c<8; c++)
digitalWrite(cl[c], LOW);
for (int i=0; i<8; i++)
if (C[idx] == 0)
digitalWrite(rw[i], LOW);
else
digitalWrite(rw[i], HIGH);
delayMicroseconds(100);
matikan_baris();
idx++;
if (idx >= 64)
idx = 0;
digitalWrite(cl[c], HIGH);
void d()
for (int c=0; c<8; c++)
digitalWrite(cl[c], LOW);
for (int i=0; i<8; i++)
if (D[idx] == 0)
digitalWrite(rw[i], LOW);
else
digitalWrite(rw[i], HIGH);
delayMicroseconds(100);
matikan_baris();
idx++;
if (idx >= 64)
idx = 0;
digitalWrite(cl[c], HIGH);
81
void e()
for (int c=0; c<8; c++)
digitalWrite(cl[c], LOW);
for (int i=0; i<8; i++)
if (E[idx] == 0)
digitalWrite(rw[i], LOW);
else
digitalWrite(rw[i], HIGH);
delayMicroseconds(100);
matikan_baris();
idx++;
if (idx >= 64)
idx = 0;
digitalWrite(cl[c], HIGH);
void f()
for (int c=0; c<8; c++)
digitalWrite(cl[c], LOW);
for (int i=0; i<8; i++)
if (F[idx] == 0)
digitalWrite(rw[i], LOW);
else
digitalWrite(rw[i], HIGH);
delayMicroseconds(100);
matikan_baris();
idx++;
if (idx >= 64)
idx = 0;
digitalWrite(cl[c], HIGH);
82
void g()
for (int c=0; c<8; c++)
digitalWrite(cl[c], LOW);
for (int i=0; i<8; i++)
if (G[idx] == 0)
digitalWrite(rw[i], LOW);
else
digitalWrite(rw[i], HIGH);
delayMicroseconds(100);
matikan_baris();
idx++;
if (idx >= 64)
idx = 0;
digitalWrite(cl[c], HIGH);
void h()
for (int c=0; c<8; c++)
digitalWrite(cl[c], LOW);
for (int i=0; i<8; i++)
if (H[idx] == 0)
digitalWrite(rw[i], LOW);
else
digitalWrite(rw[i], HIGH);
delayMicroseconds(100);
matikan_baris();
idx++;
if (idx >= 64)
idx = 0;
digitalWrite(cl[c], HIGH);
83
void i()
for (int c=0; c<8; c++)
digitalWrite(cl[c], LOW);
for (int i=0; i<8; i++)
if (I[idx] == 0)
digitalWrite(rw[i], LOW);
else
digitalWrite(rw[i], HIGH);
delayMicroseconds(100);
matikan_baris();
idx++;
if (idx >= 64)
idx = 0;
digitalWrite(cl[c], HIGH);
void j()
for (int c=0; c<8; c++)
digitalWrite(cl[c], LOW);
for (int i=0; i<8; i++)
if (J[idx] == 0)
digitalWrite(rw[i], LOW);
else
digitalWrite(rw[i], HIGH);
delayMicroseconds(100);
matikan_baris();
idx++;
if (idx >= 64)
idx = 0;
digitalWrite(cl[c], HIGH);
84
void k()
for (int c=0; c<8; c++)
digitalWrite(cl[c], LOW);
for (int i=0; i<8; i++)
if (K[idx] == 0)
digitalWrite(rw[i], LOW);
else
digitalWrite(rw[i], HIGH);
delayMicroseconds(100);
matikan_baris();
idx++;
if (idx >= 64)
idx = 0;
digitalWrite(cl[c], HIGH);
void l()
for (int c=0; c<8; c++)
digitalWrite(cl[c], LOW);
for (int i=0; i<8; i++)
if (L[idx] == 0)
digitalWrite(rw[i], LOW);
else
digitalWrite(rw[i], HIGH);
delayMicroseconds(100);
matikan_baris();
idx++;
if (idx >= 64)
idx = 0;
digitalWrite(cl[c], HIGH);
85
void m()
for (int c=0; c<8; c++)
digitalWrite(cl[c], LOW);
for (int i=0; i<8; i++)
if (M[idx] == 0)
digitalWrite(rw[i], LOW);
else
digitalWrite(rw[i], HIGH);
delayMicroseconds(100);
matikan_baris();
idx++;
if (idx >= 64)
idx = 0;
digitalWrite(cl[c], HIGH);
void n()
for (int c=0; c<8; c++)
digitalWrite(cl[c], LOW);
for (int i=0; i<8; i++)
if (N[idx] == 0)
digitalWrite(rw[i], LOW);
else
digitalWrite(rw[i], HIGH);
delayMicroseconds(100);
matikan_baris();
idx++;
if (idx >= 64)
idx = 0;
digitalWrite(cl[c], HIGH);
86
void o()
for (int c=0; c<8; c++)
digitalWrite(cl[c], LOW);
for (int i=0; i<8; i++)
if (O[idx] == 0)
digitalWrite(rw[i], LOW);
else
digitalWrite(rw[i], HIGH);
delayMicroseconds(100);
matikan_baris();
idx++;
if (idx >= 64)
idx = 0;
digitalWrite(cl[c], HIGH);
void p()
for (int c=0; c<8; c++)
digitalWrite(cl[c], LOW);
for (int i=0; i<8; i++)
if (P[idx] == 0)
digitalWrite(rw[i], LOW);
else
digitalWrite(rw[i], HIGH);
delayMicroseconds(100);
matikan_baris();
idx++;
if (idx >= 64)
idx = 0;
digitalWrite(cl[c], HIGH);
87
void q()
for (int c=0; c<8; c++)
digitalWrite(cl[c], LOW);
for (int i=0; i<8; i++)
if (Q[idx] == 0)
digitalWrite(rw[i], LOW);
else
digitalWrite(rw[i], HIGH);
delayMicroseconds(100);
matikan_baris();
idx++;
if (idx >= 64)
idx = 0;
digitalWrite(cl[c], HIGH);
void r()
for (int c=0; c<8; c++)
digitalWrite(cl[c], LOW);
for (int i=0; i<8; i++)
if (R[idx] == 0)
digitalWrite(rw[i], LOW);
else
digitalWrite(rw[i], HIGH);
delayMicroseconds(100);
matikan_baris();
idx++;
if (idx >= 64)
idx = 0;
digitalWrite(cl[c], HIGH);
88
void s()
for (int c=0; c<8; c++)
digitalWrite(cl[c], LOW);
for (int i=0; i<8; i++)
if (S[idx] == 0)
digitalWrite(rw[i], LOW);
else
digitalWrite(rw[i], HIGH);
delayMicroseconds(100);
matikan_baris();
idx++;
if (idx >= 64)
idx = 0;
digitalWrite(cl[c], HIGH);
void t()
for (int c=0; c<8; c++)
digitalWrite(cl[c], LOW);
for (int i=0; i<8; i++)
if (T[idx] == 0)
digitalWrite(rw[i], LOW);
else
digitalWrite(rw[i], HIGH);
delayMicroseconds(100);
matikan_baris();
idx++;
if (idx >= 64)
idx = 0;
digitalWrite(cl[c], HIGH);
89
void u()
for (int c=0; c<8; c++)
digitalWrite(cl[c], LOW);
for (int i=0; i<8; i++)
if (U[idx] == 0)
digitalWrite(rw[i], LOW);
else
digitalWrite(rw[i], HIGH);
delayMicroseconds(100);
matikan_baris();
idx++;
if (idx >= 64)
idx = 0;
digitalWrite(cl[c], HIGH);
void v()
for (int c=0; c<8; c++)
digitalWrite(cl[c], LOW);
for (int i=0; i<8; i++)
if (V[idx] == 0)
digitalWrite(rw[i], LOW);
else
digitalWrite(rw[i], HIGH);
delayMicroseconds(100);
matikan_baris();
idx++;
if (idx >= 64)
idx = 0;
digitalWrite(cl[c], HIGH);
90
void w()
for (int c=0; c<8; c++)
digitalWrite(cl[c], LOW);
for (int i=0; i<8; i++)
if (W[idx] == 0)
digitalWrite(rw[i], LOW);
else
digitalWrite(rw[i], HIGH);
delayMicroseconds(100);
matikan_baris();
idx++;
if (idx >= 64)
idx = 0;
digitalWrite(cl[c], HIGH);
void x()
for (int c=0; c<8; c++)
digitalWrite(cl[c], LOW);
for (int i=0; i<8; i++)
if (X[idx] == 0)
digitalWrite(rw[i], LOW);
else
digitalWrite(rw[i], HIGH);
delayMicroseconds(100);
matikan_baris();
idx++;
if (idx >= 64)
idx = 0;
digitalWrite(cl[c], HIGH);
91
void y()
for (int c=0; c<8; c++)
digitalWrite(cl[c], LOW);
for (int i=0; i<8; i++)
if (Y[idx] == 0)
digitalWrite(rw[i], LOW);
else
digitalWrite(rw[i], HIGH);
delayMicroseconds(100);
matikan_baris();
idx++;
if (idx >= 64)
idx = 0;
digitalWrite(cl[c], HIGH);
void z()
for (int c=0; c<8; c++)
digitalWrite(cl[c], LOW);
for (int i=0; i<8; i++)
if (Z[idx] == 0)
digitalWrite(rw[i], LOW);
else
digitalWrite(rw[i], HIGH);
delayMicroseconds(100);
matikan_baris();
idx++;
if (idx >= 64)
idx = 0;
digitalWrite(cl[c], HIGH);
92
3. Lalu Upload Sketch tunggu hingga selesai.
10.4. Hasil Pengamatan
void love()
for (int c=0; c<8; c++)
digitalWrite(cl[c], LOW);
for (int i=0; i<8; i++)
if (LOVE[idx] == 0)
digitalWrite(rw[i], LOW);
else
digitalWrite(rw[i], HIGH);
delayMicroseconds(100);
matikan_baris();
idx++;
if (idx >= 64)
idx = 0;
digitalWrite(cl[c], HIGH);
void matikan_baris()
for (int i=0; i<8; i++)
digitalWrite(rw[i], LOW);
void matikan()
for (int i = 0; i<8; i++)
digitalWrite(rw[i], LOW);
digitalWrite(cl[i], HIGH);
void nyalakan()
for (int i=0; i<8; i++)
digitalWrite(rw[i], HIGH);
digitalWrite(cl[i], LOW);
93
Gambar 56. Huruf D pada Dot Matrix 8x8
Gambar 57. Huruf G pada Dot Matrix 8x8
Dot Matrix akan menampilkan huruf A sampai dengan Z dan Emoticon Love.
94
10.5. Contoh Soal
1. Bagaimana cara LED Dot Matrix bekerja?
2. Apa kelebihan dari dot matrix dibandingkan dengan seven segment ?
10.6. Jawaban
1. Sama seperti seven segment dot matrix bekerja dengan cara mengendalikan secara
ON/ OFF tiap dot-nya sehingga dapat membentuk karakter yang diinginkan.
2. Kelebihan dari dot matrix yaitu dapat membentuk karakter yang lebih variative
sedangkan seven segment hanya memanfaatkan bentuk segment yang ada.
10.7. Praktikum
1. Lakukan praktikum menggunakan dot matrix sehingga dot matrix dapat
menampilkan nama anda dengan menggunakan arduno! (menggunakan
IC74HC595).
95
DAFTAR PUSTAKA
https://teknikelektronika.com/pengertian-led-light-emitting-diode-cara-kerja/
http://belajarelektronika.net/motor-servo-pengertian-fungsi-dan-prinsip-kerjanya/
https://mechatro.co.id/blog/prinsip-kerja-motor-servo
http://www.boarduino.web.id/2015/06/mengontrol-servo-dengan-pushbutton-dan.html
http://www.immersa-lab.com/pengertian-rfid-dan-cara-kerjanya.htm
https://playground.arduino.cc/Learning/MFRC522
https://teknikelektronika.com/pengertian-relay-fungsi-relay/
http://elektronika-dasar.web.id/lcd-liquid-cristal-display/
http://blog.unnes.ac.id/antosupri/adc-analog-to-digital-converter/
http://blog.unnes.ac.id/antosupri/pengertian-ldr-light-dependent-resistor-dan-cara-
mengukurnya/
http://www.circuitbasics.com/how-to-set-up-a-keypad-on-an-arduino/
http://riyansblog.blogspot.com/2015/11/menggunakan-buzzer-arduino.html
http://riyansblog.blogspot.com/2016/02/arduino-mengontrol-stepper-dengan_28.html
https://dewo.wordpress.com/2012/11/05/belajar-display-dot-matrix/
http://osoyoo.com/2017/08/08/arduino-lesson-4-digit-7-