Anda di halaman 1dari 220

LAPORAN PRAKTIKUM

ROBOTIKA

DISUSUN OLEH :
NAMA : Alvin Arrazy
NIM : 21120118130055
KELOMPOK : 05

LABORATORIUM ROBOTIKA DAN SISTEM TERTANAM


DEPARTEMEN TEKNIK KOMPUTER
FAKULTAS TEKNIK
UNIVERSITAS DIPONEGORO
SEMARANG
2021
LEMBAR PENGESAHAN
PRAKTIKUM ROBOTIKA 2021

Nama : Alvin Arrazy


NIM : 21120118130055
Kelompok : 05

MODUL PENGANTAR ROBOTIKA

Daffa Shidqi H Muhammad Abdul Majid


21120117130041 21120118140042

MODUL PEMROGRAMAN ARDUINO

Daffa Shidqi H Muhammad Abdul Majid


21120117130041 21120118140042

MODUL SENSOR CAHAYA DAN SENSOR TEKUKAN

Petrick Jubel Eliezer Muhammad Riziq Yahya


21120117120028 21120118130058
MODUL SENSOR DETEKSI OBJEK

Petrick Jubel Eliezer Muhammad Riziq Yahya


21120117120028 21120118130058

MODUL AKTUATOR MOTOR SERVO

Ramadhani BSN Firsta Adi Pradana


21120117120021 21120118130059

MODUL AKTUATOR MOTOR STEPPER

Ramadhani BSN Firsta Adi Pradana


21120117120021 21120118130059

MODUL AKTUATOR MOTOR DC DAN H-BRIDGE


Jonathan Imago Dei Gloriawan Muhammad Adib Bowo L
21120117130054 21120118120036

MODUL NAVIGASI ROBOT BERODA

Jonathan Imago Dei Gloriawan Muhammad Adib Bowo L


21120117130054 21120118120036

Mengetahui,
Koordinator Praktikum Robotika 2021

Jonathan Imago Dei Gloriawan


21120117130054
Kata Pengantar
Assalamu’alaikum Warahmatullahi Wabarakatuh
Segala puji bagi Allah SWT yang telah memberikan saya kemudahan
sehingga saya dapat menyelesaikan laporan ini dengan tepat waktu. Tanpa
pertolongan-Nya tentunya saya tidak akan sanggup untuk menyelesaikan laporan
ini dengan baik. Shalawat serta salam semoga terlimpah curahkan kepada baginda
tercinta kita yaitu Nabi Muhammad SAW yang kita nanti-natikan syafa’atnya di
akhirat nanti.
Saya mengucapkan syukur kepada Allah SWT atas limpahan nikmat sehat-
Nya, baik itu berupa sehat fisik maupun akal pikiran, sehingga saya mampu untuk
menyelesaikan pembuatan laporan ini sebagai bagian dari tugas akhir dari mata
kuliah Praktikum Robotika.
Adapun penulisan laporan akhir ini merupakan bentuk dari pemenuhan tugas
mata mata kuliah Praktikum Robotika. Penulis tentu menyadari bahwa laporan
akhir ini masih jauh dari kata sempurna dan masih banyak terdapat kesalahan serta
kekurangan di dalamanya. Untuk itu, penulis mengharapkan kritik serta saraan dari
pembaca, supaya laporan akhir ini nantinya dapat menjadi laporan akhir yang lebih
baik lagi. Penulis mengucapkan mohon maaf yang sebesar-besarnya apabila
terdapat banyak kesalahan pada laporan akhir ini.
Penulis juga mengucapkan terima kasih kepada semua pihak khususnya
kepada para asisten Praktikum Robotika yang telah membimbing saya dalam
menulis laporan akhir ini.
Demikian, semoga laporan akhir ini dapat bermanfaat. Terima Kasih.

Medan, 30 Mei 2021

Penyusun

i
Daftar Isi

Kata Pengantar .........................................................................................................1

Daftar Isi...................................................................................................................2

Daftar Gambar ........................................................................................................10

Daftar Tabel ...........................................................................................................17

BAB I PENDAHULUAN ........................................................................................1

1.1 Latar Belakang ..........................................................................................1

1.2 Tujuan Praktikum ......................................................................................2

1.3 Batasan Masalah ........................................................................................2

1.4 Metode Penulisan ......................................................................................3

1.5 Sistematika Penulisan ................................................................................5

BAB II PENGANTAR ROBOTIKA .......................................................................6

2.1 Tujuan ........................................................................................................6

2.2 Alat dan Bahan ..........................................................................................7

2.2.1 Tinkercad............................................................................................7

2.2.2 Arduino Uno R3 .................................................................................7

2.2.3 Breadboard .........................................................................................8

2.2.4 LCD 16x2 ...........................................................................................8

2.2.5 Power Supply .....................................................................................9

2.2.6 Potensiometer .....................................................................................9

2.3 Dasar Teori ..............................................................................................10

2.3.1 Board Arduino Uno ..........................................................................10

2.3.2 Tinkercad..........................................................................................11

2.4 Langkah Kerja .........................................................................................12

ii
2.4.1 Percobaan 1 ......................................................................................12

2.4.2 Percobaan 2 ......................................................................................13

2.5 Hasil dan Analisa Percobaan ...................................................................15

2.5.1 Percobaan 1 ......................................................................................15

2.5.2 Percobaan 2 ......................................................................................18

2.6 Tugas .......................................................................................................20

2.7 Kesimpulan ..............................................................................................22

BAB III PEMROGRAMAN ARDUINO ..............................................................23

3.1 Tujuan ......................................................................................................23

3.2 Alat dan Bahan ........................................................................................24

3.2.1 Tinkercad..........................................................................................24

3.2.2 Arduino Uno R3 ...............................................................................24

3.2.3 Breadboard .......................................................................................25

3.2.4 LED ..................................................................................................25

3.2.5 Push Button ......................................................................................26

3.3 Dasar Teori ..............................................................................................26

3.3.1 Board Arduino Uno ..........................................................................26

3.3.2 Pemrograman pada Arduino UNO ...................................................27

3.3.3 Interupsi............................................................................................28

3.3.4 Tinkercad..........................................................................................28

3.4 Langkah Kerja .........................................................................................30

3.4.1 Percobaan 1 ......................................................................................30

3.4.2 Percobaan 2 ......................................................................................32

3.5 Hasil dan Analisa Percobaan ...................................................................35

3.5.1 Percobaan 1 ......................................................................................35

iii
3.5.2 Percobaan 2 ......................................................................................38

3.6 Tugas .......................................................................................................41

3.7 Kesimpulan ..............................................................................................45

BAB IV SENSOR CAHAYA DAN SENSOR TEKUKAN .................................46

4.1 Tujuan ......................................................................................................46

4.2 Alat dan Bahan ........................................................................................47

4.2.1 Tinkercad..........................................................................................47

4.2.2 Board Arduino Uno ..........................................................................47

4.2.3 Breadboard .......................................................................................48

4.2.4 Photoresistor Sensor .........................................................................48

4.2.5 Resistor.............................................................................................49

4.2.6 Sensor Tekukan (Flex Sensor) .........................................................50

4.2.7 LED ..................................................................................................50

4.3 Dasar Teori ..............................................................................................52

4.3.1 Board Arduino Uno ..........................................................................52

4.3.2 Photoresistor Sensor .........................................................................53

4.3.3 Sensor Tekukan (Flex Sensor) .........................................................54

4.4 Langkah Kerja .........................................................................................55

4.4.1 Percobaan 1 ......................................................................................55

4.5 Hasil dan Analisa Percobaan ...................................................................59

4.5.1 Percobaan 1 ......................................................................................59

4.5.2 Percobaan 2 ......................................................................................60

4.6 Tugas .......................................................................................................61

4.7 Kesimpulan ..............................................................................................64

BAB V SENSOR DETEKSI OBJEK ....................................................................65

iv
5.1 Tujuan ......................................................................................................65

5.2 Alat dan Bahan ........................................................................................66

5.2.1 Tinkercad..........................................................................................66

5.2.2 Board Arduino Uno ..........................................................................66

5.2.3 Sensor PING.....................................................................................67

5.2.4 Sensor Jarak PING (HC-SR04) ........................................................68

5.2.5 LED ..................................................................................................68

5.2.6 Arduino IDE .....................................................................................69

5.2.7 Breadboard .......................................................................................70

5.2.8 Kabel Jumper ...................................................................................70

5.3 Dasar Teori ..............................................................................................72

5.3.1 Board Arduino Uno ..........................................................................72

5.3.2 Arduino IDE .....................................................................................73

5.3.3 Sensor PING.....................................................................................75

5.3.4 Sensor HC-SR04 ..............................................................................76

5.4 Langkah Kerja .........................................................................................77

5.4.1 Percobaan 1 ......................................................................................77

5.4.2 Percobaan 2 ......................................................................................78

5.5 Hasil dan Analisa Percobaan ...................................................................81

5.5.1 Percobaan 1 ......................................................................................81

5.5.2 Percobaan 2 ......................................................................................83

5.6 Tugas .......................................................................................................85

5.7 Kesimpulan ..............................................................................................88

BAB VI AKTUATOR MOTOR SERVO ..............................................................89

6.1 Tujuan ......................................................................................................89

v
6.2 Alat dan Bahan ........................................................................................90

6.2.1 Laptop/PC ........................................................................................90

6.2.2 TinkerCad .........................................................................................90

6.2.3 Arduino UNO ...................................................................................91

6.2.4 Breadboard .......................................................................................91

6.2.5 Motor Servo .....................................................................................92

6.2.6 Potensiometer ...................................................................................92

6.2.7 Kabel Jumper ...................................................................................93

6.3 Dasar Teori ..............................................................................................94

6.3.1 TinkerCad .........................................................................................94

6.3.2 Arduino ............................................................................................94

6.3.3 Motor Servo .....................................................................................95

6.4 Langkah Kerja .........................................................................................97

6.4.1 Percobaan 1 ......................................................................................97

6.4.2 Percobaan 2 ......................................................................................98

6.5 Hasil dan Analisa Percobaan .................................................................101

6.5.1 Percobaan 1 ....................................................................................101

6.5.2 Percobaan 2 ....................................................................................103

6.6 Tugas .....................................................................................................105

6.7 Kesimpulan ............................................................................................108

BAB VII AKTUATOR MOTOR STEPPER .......................................................109

7.1 Tujuan ....................................................................................................109

7.2 Alat dan Bahan ......................................................................................110

7.2.1 Proteus ............................................................................................110

7.2.2 Arduino UNO .................................................................................110

vi
7.2.3 LED ................................................................................................111

7.2.4 Motor Stepper ................................................................................112

7.3 Dasar Teori (Sertakan sumber dan gambar) ..........................................113

7.3.1 Arduino UNO .................................................................................113

7.3.2 Motor Stepper ................................................................................114

7.4 Langkah Kerja .......................................................................................115

7.4.1 Percobaan 1 ....................................................................................115

7.4.2 Percobaan 2 ....................................................................................118

7.5 Hasil Percobaan dan Analisa .................................................................121

7.5.1 Percobaan 1 ....................................................................................121

7.5.2 Percobaan 2 ....................................................................................122

7.6 Tugas .....................................................................................................124

7.7 Kesimpulan ............................................................................................127

BAB VIII AKTUATOR MOTOR DC DAN H-BRIDGE ...................................128

8.1 Tujuan ....................................................................................................128

8.2 Alat dan Bahan ......................................................................................129

8.2.1 Breadboard .....................................................................................129

8.2.2 Arduino Uno ..................................................................................129

8.2.3 Kabel jumper ..................................................................................130

8.2.4 Motor DC .......................................................................................131

8.2.5 IC L293D .......................................................................................131

8.2.6 TinkerCad .......................................................................................132

8.2.7 Potensiometer .................................................................................132

8.2.8 Multimeter ......................................................................................133

8.3 Dasar Teori ............................................................................................134

vii
8.3.1 Breadboard .....................................................................................134

8.3.2 Arduino Uno ..................................................................................135

8.3.3 Kabel jumper ..................................................................................136

8.3.4 Motor DC .......................................................................................136

8.3.5 IC L293D .......................................................................................137

8.3.6 TinkerCad .......................................................................................138

8.3.7 Potensiometer .................................................................................139

8.3.8 Multimeter ......................................................................................140

8.4 Langkah Kerja .......................................................................................142

8.5 Hasil dan Analisa Percobaan .................................................................147

8.5.1 Percobaan 1 ....................................................................................147

8.6 Tugas .....................................................................................................151

8.7 Kesimpulan ............................................................................................153

BAB IX NAVIGASI ROBOT BERODA ............................................................154

9.1 Tujuan ....................................................................................................154

9.2 Alat dan Bahan ......................................................................................155

9.2.1 Breadboard .....................................................................................155

9.2.2 Board Arduino Uno .......................................................................155

9.2.3 Kabel Jumper .................................................................................156

9.2.4 Motor DC .......................................................................................157

9.2.5 Sensor HC-SR04 ............................................................................157

9.2.6 Sensor IR ........................................................................................158

9.2.7 IR Remote ......................................................................................158

9.2.8 IC L293D .......................................................................................159

9.2.9 TinkerCad .......................................................................................159

viii
9.3 Dasar Teori ............................................................................................161

9.3.1 Robot Beroda .................................................................................161

9.3.2 Kemudi Differensial .......................................................................161

9.3.3 Navigasi Robot Beroda ..................................................................161

9.3.4 Robot Pengikut Dinding.................................................................162

9.4 Langkah Kerja .......................................................................................164

9.4.1 Percobaan Robot Manual: Robot Remote Control .........................164

9.4.2 Percobaan Robot Otonom: Robot Pengikut Dinding .....................166

9.5 Hasil Percobaan dan Analisis ................................................................170

9.5.1 Percobaan Robot Manual: Robot Remote Control .........................170

9.5.2 Percobaan Robot Otonom: Robot Pengikut Dinding .....................174

9.6 Kesimpulan ............................................................................................180

BAB X PENUTUP ...............................................................................................181

10.1 Kesimpulan ............................................................................................181

10.2 Saran ......................................................................................................181

ix
Daftar Gambar
Gambar 2.1 TinkerCad ............................................................................................ 7
Gambar 2.2 Arduino Uno R3 .................................................................................. 7
Gambar 2.3 Breadboard .......................................................................................... 8
Gambar 2.4 LCD 16x2 ............................................................................................ 8
Gambar 2.5 Power Supply ...................................................................................... 9
Gambar 2.6 Potensiometer ...................................................................................... 9
Gambar 2.7 Arduino Uno...................................................................................... 10
Gambar 2.8 TinkerCad .......................................................................................... 11
Gambar 2.9 TinkeCad ........................................................................................... 12
Gambar 2.10 Create New Circuit.......................................................................... 12
Gambar 2.11 Nama Project .................................................................................. 12
Gambar 2.12 Component Basic............................................................................. 12
Gambar 2.13 Komponen yang dibutuhkan ........................................................... 12
Gambar 2.14 Gambar Rangkaian Percobaan 1 ..................................................... 13
Gambar 2.15 TinkerCad ........................................................................................ 14
Gambar 2.16 Create New Circuit.......................................................................... 14
Gambar 2.17 Nama Project .................................................................................. 14
Gambar 2.18 Component Basic............................................................................. 14
Gambar 2.19 komponen yang dibutuhkan ............................................................ 14
Gambar 2.20 hasil percobaan ................................................................................ 15
Gambar 2.21 hasil percobaan 2 ............................................................................. 18
Gambar 2.22 tugas modul 1 .................................................................................. 21
Gambar 3.1 TinkerCad .......................................................................................... 24
Gambar 3.2 Arduino Uno R3 ................................................................................ 24
Gambar 3.3 Breadboard ........................................................................................ 25
Gambar 3.4 LED ................................................................................................... 25
Gambar 3.5 Push Button ....................................................................................... 26
Gambar 3.6 Arduino Uno...................................................................................... 26
Gambar 3.7 TinkerCad .......................................................................................... 29
Gambar 3.8 TinkerCad .......................................................................................... 30

x
Gambar 3.9 Create New Circuit............................................................................ 30
Gambar 3.10 Nama Project .................................................................................. 30
Gambar 3.11 component basic .............................................................................. 30
Gambar 3.12 komponen yang dibutuhkan ............................................................ 31
Gambar 3.13 rangkaian percobaan 1 ..................................................................... 31
Gambar 3.14 TinkerCad ........................................................................................ 32
Gambar 3.15 create new circuit ............................................................................ 32
Gambar 3.16 nama project .................................................................................... 33
Gambar 3.17 component basic .............................................................................. 33
Gambar 3.18 komponen yang dibutuhkan ............................................................ 33
Gambar 3.19 rangkaian percobaan 2 ..................................................................... 33
Gambar 3.20 kondisi LED setelah Push Button ditekan pertama kali .................. 35
Gambar 3.21 Kondisi LED ketika ditekan untuk kedua kali ................................ 35
Gambar 3.22 Kondisi LED ketika ditekan untuk ketiga kali ................................ 35
Gambar 3.23 Kondisi default LED saat program dijalankan ................................ 38
Gambar 3.24 kondisi LED saat push button sebelah kiri ditekan ......................... 38
Gambar 3.25 Hitungan 2 detik .............................................................................. 44
Gambar 3.26 Hitungan ketika di-reset .................................................................. 44
Gambar 4.1 TinkerCad .......................................................................................... 47
Gambar 4.2 Board Arduino uno ............................................................................ 47
Gambar 4.3 Breadboard ........................................................................................ 48
Gambar 4.4 Photoresistor Sensor .......................................................................... 48
Gambar 4.5 Resistor .............................................................................................. 49
Gambar 4.6 Flex Sensor ........................................................................................ 50
Gambar 4.7 LED ................................................................................................... 50
Gambar 4.8 Arduino Uno...................................................................................... 52
Gambar 4.9 Photoresistor sensor .......................................................................... 53
Gambar 4.10 Flex Sensor ...................................................................................... 54
Gambar 4.11 TinkerCad ........................................................................................ 55
Gambar 4.12 create new circuit ............................................................................ 55
Gambar 4.13 nama project .................................................................................... 55

xi
Gambar 4.14 component basic .............................................................................. 55
Gambar 4.15 komponen yang dibutuhkan ............................................................ 55
Gambar 4.16 rangkaian percobaan 1 ..................................................................... 56
Gambar 4.17 tinkercad .......................................................................................... 56
Gambar 4.18 create new circuit ............................................................................ 56
Gambar 4.19 nama project .................................................................................... 57
Gambar 4.20 component basic .............................................................................. 57
Gambar 4.21 komponen yang dibutuhkan ............................................................ 57
Gambar 4.22 rangkaian percobaan 2 ..................................................................... 57
Gambar 4.23 hasil percobaan 1 ............................................................................. 59
Gambar 4.24 hasil percobaan 2 ............................................................................. 60
Gambar 4.25 LED RGB berwarna hijau ............................................................... 62
Gambar 4.26 berwarna merah ............................................................................... 63
Gambar 4.27 berwarna kuning .............................................................................. 63
Gambar 5.1 TinkerCad .......................................................................................... 66
Gambar 5.2 Arduino Uno...................................................................................... 66
Gambar 5.3 Sensor PING ...................................................................................... 67
Gambar 5.4 Sensor HC-SR04 ............................................................................... 68
Gambar 5.5 LED ................................................................................................... 68
Gambar 5.6 Arduino IDE ...................................................................................... 69
Gambar 5.7 Breadboard ........................................................................................ 70
Gambar 5.8 kabel jumper ...................................................................................... 70
Gambar 5.9 arduino uno ........................................................................................ 72
Gambar 5.10 Arduino IDE .................................................................................... 73
Gambar 5.11 Sensor PING .................................................................................... 75
Gambar 5.12 Sensor HC-SR04 ............................................................................. 76
Gambar 5.13 Tinkercad ......................................................................................... 77
Gambar 5.14 create new circuit ............................................................................ 77
Gambar 5.15 nama project .................................................................................... 77
Gambar 5.16 component basic .............................................................................. 78
Gambar 5.17 rangkaian percobaan 1 ..................................................................... 78

xii
Gambar 5.18 Tinkercad ......................................................................................... 79
Gambar 5.19 create new circuit ............................................................................ 79
Gambar 5.20 nama project .................................................................................... 79
Gambar 5.21 component basic .............................................................................. 79
Gambar 5.22 rangkaian percobaan 3 ..................................................................... 80
Gambar 5.23 hasil percobaan 1 ............................................................................. 81
Gambar 5.24 hasil percobaan 3 ............................................................................. 83
Gambar 5.25 hasil percobaan 2 ketika membaca sensor....................................... 83
Gambar 5.26 LED RGB berwarna hijau ............................................................... 86
Gambar 5.27 berwarna biru................................................................................... 87
Gambar 5.28 berwarna merah ............................................................................... 87
Gambar 6.1 Laptop................................................................................................ 90
Gambar 6.2 Tinkercad ........................................................................................... 90
Gambar 6.3 Arduino Uno...................................................................................... 91
Gambar 6.4 Breadboard ........................................................................................ 91
Gambar 6.5 Motor Servo....................................................................................... 92
Gambar 6.6 Potensiometer .................................................................................... 92
Gambar 6.7 kabel jumper ...................................................................................... 93
Gambar 6.8 Tinkercad ........................................................................................... 94
Gambar 6.9 Arduino.............................................................................................. 94
Gambar 6.10 motor servo...................................................................................... 95
Gambar 6.11 tinkercad .......................................................................................... 97
Gambar 6.12 create new circuit ............................................................................ 97
Gambar 6.13 nama proyek .................................................................................... 97
Gambar 6.14 komponen dasar............................................................................... 97
Gambar 6.15 rangkaian percobaan 1 ..................................................................... 98
Gambar 6.16 tinkercad .......................................................................................... 99
Gambar 6.17 membuat sirkuit baru ....................................................................... 99
Gambar 6.18 nama proyek .................................................................................... 99
Gambar 6.19 komponen dasar............................................................................... 99
Gambar 6.20 rangkaian percobaan 2 ................................................................... 100

xiii
Gambar 6.21 hasil rangkaian percobaan 1 .......................................................... 101
Gambar 6.22 hasil rangkaian percobaan 2 .......................................................... 103
Gambar 6.23 rangkaian tugas .............................................................................. 105
Gambar 6.24 uraian alat dan bahan ..................................................................... 105
Gambar 7.1 Proteus ............................................................................................. 110
Gambar 7.2 Arduino Uno.................................................................................... 110
Gambar 7.3 LED ................................................................................................. 111
Gambar 7.4 motor stepper ................................................................................... 112
Gambar 7.5 arduino uno ...................................................................................... 113
Gambar 7.6 motor stepper ................................................................................... 114
Gambar 7.7 extract library .................................................................................. 115
Gambar 7.8 Proteus 8 .......................................................................................... 115
Gambar 7.9 proyek baru ...................................................................................... 115
Gambar 7.10 nama proyek baru .......................................................................... 115
Gambar 7.11 ambil alat ....................................................................................... 115
Gambar 7.12 rangkaian percobaan 1 ................................................................... 116
Gambar 7.13 Arduino IDE .................................................................................. 116
Gambar 7.14 sketch ............................................................................................. 117
Gambar 7.15 edit properti ................................................................................... 117
Gambar 7.16 tambahkan file .hex ....................................................................... 117
Gambar 7.17 run ................................................................................................. 118
Gambar 7.18 ambil alat ....................................................................................... 118
Gambar 7.19 rangkaian percobaan 2 ................................................................... 118
Gambar 7.20 arduino IDE ................................................................................... 118
Gambar 7.21 sketch ............................................................................................. 119
Gambar 7.22 edit properti ................................................................................... 119
Gambar 7.23 tambahkan file .hex ....................................................................... 119
Gambar 7.24 run ................................................................................................. 119
Gambar 7.25 hasil percobaan 1 ........................................................................... 121
Gambar 7.26 rangkaian percobaan 2 ................................................................... 122
Gambar 7.27 rangkaian tugas .............................................................................. 124

xiv
Gambar 8.1 breadboard ....................................................................................... 129
Gambar 8.2 arduino uno ...................................................................................... 129
Gambar 8.3 kabel jumper .................................................................................... 130
Gambar 8.4 motor dc........................................................................................... 131
Gambar 8.5 IC L293D......................................................................................... 131
Gambar 8.6 tinkercad .......................................................................................... 132
Gambar 8.7 potensiometer .................................................................................. 132
Gambar 8.8 multimeter ....................................................................................... 133
Gambar 8.9 breadboard ....................................................................................... 134
Gambar 8.10 arduino uno.................................................................................... 135
Gambar 8.11 kabel jumper .................................................................................. 136
Gambar 8.12 motor dc......................................................................................... 136
Gambar 8.13 IC L293D....................................................................................... 137
Gambar 8.14 tinkercad ........................................................................................ 138
Gambar 8.15 potensiometer ................................................................................ 139
Gambar 8.16 multimeter ..................................................................................... 140
Gambar 8.17 tinkercad ........................................................................................ 142
Gambar 8.18 create new circuit .......................................................................... 142
Gambar 8.19 nama proyek .................................................................................. 142
Gambar 8.20 basic component ............................................................................ 142
Gambar 8.21 komponen yang dibutuhkan .......................................................... 143
Gambar 8.22 rangkaian percobaan 1 ................................................................... 143
Gambar 8.23 tinkercad ........................................................................................ 144
Gambar 8.24 create new circuit .......................................................................... 144
Gambar 8.25 basic component ............................................................................ 145
Gambar 8.26 komponen yang dibutuhkan .......................................................... 145
Gambar 8.27 rangkaian percobaan 2 ................................................................... 145
Gambar 8.28 rangkaian diberikan huruf z........................................................... 147
Gambar 8.29 rangkaian diberi masukan huruf s ................................................. 147
Gambar 8.30 rangkaian diberi huruf x ................................................................ 148
Gambar 8.31 rangkaian diberi masukan huruf c ................................................. 148

xv
Gambar 8.32 keadaan awal rangkaian ................................................................ 149
Gambar 8.33 kondisi pertama ............................................................................. 149
Gambar 8.34 kondisi kedua................................................................................. 150
Gambar 8.35 rangkaian tugas .............................................................................. 151
Gambar 9.1 breadboard ....................................................................................... 155
Gambar 9.2 arduino uno ...................................................................................... 155
Gambar 9.3 kabel jumper .................................................................................... 156
Gambar 9.4 motor dc........................................................................................... 157
Gambar 9.5 sensor hcsr ....................................................................................... 157
Gambar 9.6 sensor IR .......................................................................................... 158
Gambar 9.7 IR Remote ....................................................................................... 158
Gambar 9.8 IC l293D .......................................................................................... 159
Gambar 9.9 tinkercad .......................................................................................... 159
Gambar 9.10 tinkercad ........................................................................................ 164
Gambar 9.11 buat sirkuit baru ............................................................................. 164
Gambar 9.12 komponen yang dibutuhkan .......................................................... 164
Gambar 9.13 Rangkaian percobaan 1 ................................................................. 165
Gambar 9.14 tinkercad ........................................................................................ 166
Gambar 9.15 buat sirkuit baru ............................................................................. 166
Gambar 9.16 komponen yang dibutuhkan .......................................................... 167
Gambar 9.17 rangkaian percobaan 2 ................................................................... 167
Gambar 9.18 tampilan saat tombol 2 ditekan...................................................... 172
Gambar 9.19 saat 4 ditekan ................................................................................. 172
Gambar 9.20 saat 5 ditekan ................................................................................. 173
Gambar 9.21 saat 6 ditekan ................................................................................. 173
Gambar 9.22 saat 8 ditekan ................................................................................. 174
Gambar 9.23 kondisi 1 ........................................................................................ 177
Gambar 9.24 kondisi 2 ........................................................................................ 178
Gambar 9.25 kondisi 3 ........................................................................................ 178
Gambar 9.26 kondisi 4 ........................................................................................ 179

xvi
Daftar Tabel
Tabel 6.1 Tabel kondisi servo ..............................................................................102
Tabel 6.2 Arah gerak servo ..................................................................................104
Tabel 7.1 motor stepper........................................................................................121
Tabel 7.2 motor stepper........................................................................................122
Tabel 8.1 hasil tugas .............................................................................................152
Tabel 9.1 Tombol Remote dan Kondisi yang Dihasilkan ....................................171
Tabel 9.2 data jarak sensor dan kondisi yang dihasilkan .....................................177

xvii
ABSTRAK
Laporan akhir ini membahas tentang tujuan,dasar teori, hasil percobaan,
analisis percobaan, analisis tugas serta kesimpulan dari modul-modul Praktikum
Robotika yang telah dilakukan. Modul yang telah dilakukan praktikumnya
berjumlah 8 modul yaitu Modul 1 (Bab II) adalah Pengantar Robotika, Modul 2
(Bab III) adalah Pemrograman Arduino, Modul 3 (Bab IV) adalah Sensor Cahaya
dan Sensor Tekukan, Modul 4 (Bab V) adalah Sensor Deteksi Objek, Modul 5 (Bab
VI) adalah Aktuator Motor Servo, Modul 6 (Bab VII) adalah Aktuator Motor
Stepper, Modul 7 (Bab VIII) adalah Aktuator Motor DC dan H-Bridge, dan terakhir
Modul 8 (Bab IX) adalah Navigasi Robot Beroda.

Kata kunci: Robotika, Arduino Uno

xviii
BAB I
PENDAHULUAN
1.1 Latar Belakang
Praktikum berasal dari kata praktik yang artinya pelaksanaan secara nyata apa
yang disebut dalam teori. Sedangkan pratikum adalah bagian dari pengajaran yang
bertujuan agar siswa mendapat kesempatan untuk menguji dan melaksanakan di
keadaan nyata, apa yang diperoleh dari teori dan pelajaran praktik (KBBI,
2001:785).
Melalui praktikum, peserta didik dapat memiliki banyak pengalaman, baik
berupa pengamatan langsung atau bahkan melakukan percobaan sendiri dengan
objek tertentu. Tidak diragukan lagi bahwa melalui pengalaman langsung (first-
hand experiences), peserta didik dapat belajar lebih mudah dibandingkan dengan
belajar melalui sumber sekunder, misalnya buku. Hal tersebut sangat sesuai dengan
pendapat Bruner yang menyatakan bahwa anak belajar dengan pola inactive melalui
perbuatan (learning by doing) akan dapat 12 mentransfer ilmu pengetahuan yang
dimilikinya pada berbagai situasi (Tresna Sastrawijaya, 1998 : 17).
Praktikum Robotika merupakan salah satu mata praktikum yang ada di
program studi S1 Teknik Komputer Fakultas Teknik Universitas Diponegoro. Pada
praktikum ini mempelajari beberapa dasar pemrograman system tertanam yang
wajib diketahui oleh mahasiswa Teknik Komputer yang akan menjadi dasar untuk
memasuki dunia perangkat keras dan digital. Praktikum ini dilaksanakan sebanyak
8 kali pertemuan, pembahasan secara urut dari pertemuan pertama adalah sebagai
berikut Pengantar Robotika, Pemrograman Arduino, Sensor Cahaya dan Sensor
Tekukan, Sensor Deteksi Objek, Aktuator Motor Servo, Aktuator Motor Stepper,
Aktuator Motor DC dan H-Bridge, dan terakhir Navigasi Robot Beroda.Mahasiswa
juga diharuskan untuk membuat laporan praktikum dari tiap-tiap modul setelah
praktikum dijalankan yang kemudian akan dilakukan asistensi dan responsi kepada
asisten praktikum.

1
1.2 Tujuan Praktikum
Tujuan dari dilaksanakannya Praktikum Robotika adalah agar mahasiswa
Teknik Komputer mempunyai pengalaman dalam menyusun serta
mengimplementasikan suatu sistem digital secara langsung yang nantinya akan
menjadi dasar dalam menempuh jenjang S1- Teknik Komputer.

2
1.3 Batasan Masalah
Pembatasan suatu masalah digunakan untuk menghindari adanya
penyimpangan maupun pelebaran pokok masalah agar laporan ini lebih terarah dan
memudahkan dalam pembahasan sehingga tujuan laporan akan tercapai. Beberapa
batasan masalah dalam penelitian ini adalah sebagai berikut:
1. Luas lingkup hanya meliputi informasi seputar Praktikum Robotika pada S1
Teknik Komputer Universitas Diponegoro.
2. Informasi yang disajikan yaitu : tujuan praktikum tiap modul, alat dan bahan
tiap modul, dasar teori tiap modul, hasil percobaan serta analisis tiap modul,
tugas tiap modul, dan kesimpulan dari tiap modul praktikum.

3
1.4 Metode Penulisan
Dalam melakukan penulisan ini ada beberapa metode yang dilakukan yaitu:
1. Teknik Pengumpulan Data
a. Praktikum
Dilakukan dengan mengikuti praktikum yang telah dijadwalkan dan mencatat
data-data yang diperlukan untuk menyusun laporan.
b. Membaca
Penulis membaca modul-modul yang telah disediakan dan juga membaca
referensi lain yang berasal dari internet guna menunjang penyusunan laporan.
2. Data-data yang Dibutuhkan
Jenis data yang dikumpulkan dalam penulisan laporan ini adalah :
a. Data Primer
Berupa data yang diperoleh langsung dari praktikum yaitu keluaran atau hasil
dari rangkaian yang dibuat.
b. Data Sekunder
Berupa data-data pendukung yang dari sumber di luar praktikum yang
menjadi acuan atau dasar teori dalam laporan yang dibuat.

4
1.5 Sistematika Penulisan
Untuk mempermudah penyusunan dan pembahasan penjilidan akhir ini,
penulis akan menguraikan secara garis besarnya dalam beberapa bab dan sub-bab
penulisan dengan rincian sebagai berikut :
BAB I PENDAHULUAN
Pada bab ini penulis membahas latar belakang, tujuan praktikum, batasan masalah,
metode penulisan, dan sistematika penulisan penjilidan akhir ini.
BAB II PENGANTAR ROBOTIKA
Pada bab ini penulis membahas mengenai robotika secara mendasar.
BAB III PEMROGRAMAN ARDUINO
Pada bab ini penulis membahas dasar-dasar untuk melakukan pemrograman pada
Board Arduino Uno.
BAB IV SENSOR CAHAYA DAN SENSOR TEKUKAN
Pada bab ini penulis membahas tentang Sensor Cahaya dan Sensor Tekukan
BAB V SENSOR DETEKSI OBJEK
Pada bab ini penulis membahas tentang Sensor Deteksi Objek.
BAB VI AKTUATOR MOTOR SERVO
Pada bab ini penulis membahas tentang Motor Servo sebagai Aktuator.
BAB VII AKTUATOR MOTOR STEPPER
Pada bab ini penulis membahas Motor Stepper sebagai Aktuator.
BAB VIII AKTUATOR MOTOR DC DAN H-BRIDGE
Pada bab ini penulis membahas Motor DC dan H-Bridge
BAB IX NAVIGASI ROBOT BERODA
Pada bab ini penulis membahas Robot Beroda.
BAB X PENUTUP
Pada bab ini penulis membahas kesimpulan serta saran selama keberlangsungan
praktikum.

5
BAB II
PENGANTAR ROBOTIKA

2.1 Tujuan
1. Praktikan dapat mengerti fungsi board Arduino Uno
2. Praktikan dapat memahami fungsi dari komponen-komponen yang di gunakan
yaitu Arduino Uno , breadboard, LCD, Power Supply, dan Potensiometer.
3. Praktikan dapat memahami rangkaian sederhana dengan board Arduino Uno
4. Praktikan dapat membuat program sederhana yang diimplementasikan pada
rangkaian menggunakan Tinkercad
5. Praktikan dapat mengetahui fungsi/ bagian dari setiap instruksi yang digunakan
dalam membuat program

6
2.2 Alat dan Bahan
2.2.1 Tinkercad

Gambar 2.1 TinkerCad


TinkerCad adalah salah satu platform berupa web, yang menyediakan sarana
bagi pengguna untuk mempelajari, merangkai model 3D dan rangkaian elektronika,
menyusun codeblock, serta menguji rangkaian yang telah dibuat dalam bentuk
simulasi.
Tinkercad merupakan website besutan Autodesk yang merupakan produsen
aplikasi-aplikasi desain grafis seperti AutoCAD yang sudah sangat popular dan
menjadi standar industri manapun.
2.2.2 Arduino Uno R3

Gambar 2.2 Arduino Uno R3


Arduino Uno R3 adalah papan pengembangan (development board)
mikrokontroler yang berbasis chip ATmega328P. Arduino disebut sebgai papan
pengembangan karena board ini berfungsi sebagai media prototyping sirkuit
mikrokontroler.
Arduino Uno R3 berbasis IC ATmega328P, memiliki 14 pin I/O digital (6
pin PWM), 6 input analog, kristal kuarsa 16 MHz, koneksi USB, colokan listrik,
header ICSP dan tombol reset. Kata “Uno” memiliki makna “Satu” sedangkan R3

7
atau revR3 adalah pengembangan dari Arduino Uno sejak awal peluncuran hingga
sekarang.
2.2.3 Breadboard

Gambar 2.3 Breadboard


Breadboard merupakan sebuah papan yang berfungsi untuk merancang
sebuah elektronik sederhana. breadboard digunakan sebagai media untuk membuat
prototype, dan atau uji coba.
Salah satu keuntungan menggunakan breadboard adalah komponen-
komponen yang dirakit tidak akan mengalami kerusakan, sehingga dapat digunakan
lagi pada model rangkaian yang lain.
2.2.4 LCD 16x2

Gambar 2.4 LCD 16x2


LCD 16x2 adalah modul penampil data yang mempergunakan Kristal cair
sebagai bahan penampil datanya, baik berupa tulisan, maupun gambar.
16x2 merupakan jumlah kolom dan baris yang dimiliki oleh LCD untuk
menampilkan data, di mana 16 merupakan jumlah kolom, sedangkan 2 merupakan
jumlah baris. Dalam kehidupan sehari-hari ada banyak contoh implementasi dari
LCD, misalnya pada kalkulator, gamebot, televisi, layar komputer, dan running
text.

8
2.2.5 Power Supply

Gambar 2.5 Power Supply


Power Supply atau dalam bahasa Indonesia disebut dengan Catu Daya
adalah suatu alat listrik yang dapat menyediakan energi listrik untuk perangkat
listrik ataupun elektronika lainnya.
Pada dasarnya Power Supply atau Catu daya ini memerlukan sumber energi
listrik yang kemudian mengubahnya menjadi energi listrik yang dibutuhkan oleh
perangkat elektronika lainnya. Oleh karena itu, Power Supply kadang-kadang
disebut juga dengan istilah Electric Power Converter.
2.2.6 Potensiometer

Gambar 2.6 Potensiometer


Potensiometer (POT) adalah salah satu jenis Resistor yang Nilai
Resistansinya dapat diatur sesuai dengan kebutuhan Rangkaian Elektronika
ataupun kebutuhan pemakainya. Potensiometer merupakan Keluarga Resistor yang
tergolong dalam Kategori Variable Resistor. Secara struktur, Potensiometer terdiri

9
dari 3 kaki Terminal dengan sebuah shaft atau tuas yang berfungsi sebagai
pengaturnya.
2.3 Dasar Teori
2.3.1 Board Arduino Uno

Gambar 2.7 Arduino Uno


Arduino Uno adalah board mikrokontroler berbasis ATmega328
(datasheet). Memiliki 14 pin input dari output digital dimana 6 pin input tersebut
dapat digunakan sebagai output PWM dan 6 pin input analog, 16 MHz osilator
kristal, koneksi USB, jack power, ICSP header, dan tombol reset. Untuk
mendukung mikrokontroler agar dapat digunakan, cukup hanya menghubungkan
Board Arduino Uno ke komputer dengan menggunakan kabel USB atau listrik
dengan AC yang-ke adaptor-DC atau baterai untuk menjalankannya. Setiap 14 pin
digital pada arduino uno dapat digunakan sebagai input dan output, menggunakan
fungsi pinMode(), digitalwrite(), dan digitalRead(). Fungsi fungsi tersebut
beroperasi di tegangan 5 volt, Setiap pin dapat memberikan atau menerima suatu
arus maksimum 40 mA dan mempunyai sebuah resistor pull-up (terputus secara
default) 20-50 kOhm.
Arduino Uno dapat berkomunikasi dengan mikrokontroler lain
menggunakan UART TTL sebagai komunikasi serial yang tersedia pada pin digital
0 (RX) dan 1 (TX). Power supply Arduino Uno menggunakan adaptop DC yang
terhubung melalui jack adaptor pada koneksi port input supply. Arduino Uno
memiliki 32 flash memory4 untuk menyimpan kode dan 2KB yang di gunakan

10
untuk bootloader, Arduino Uno juga memiliki 2 KB untuk SRAM dan 1 KB untuk
EEPROM.
(sumber : https://eprints.akakom.ac.id/4940/3/3_143310018_BAB_II.pdf)

2.3.2 Tinkercad
Tinkercad adalah simulator elektronika berbasis web buatan Autodesk yang
di dalam nya menyediakan komponen Arduino UNO yang dapat diprogram.
Tinkercad tidak hanya dapat membuat project elektronik tetapi juga dapat
digunakan untuk membuat desain grafis lainnya seperti desain grafis 3D. adapun
Tinkercad ini biasa digunakan untuk media belajar untuk membangun suatu desain
elektronik tanpa menggunakan alat fisik.

Gambar 2.8 TinkerCad


(sumber: http://raywandaaffandi.blogspot.com)

11
2.4 Langkah Kerja
2.4.1 Percobaan 1
1. Buka Webside Tinkercad

Gambar 2.9 TinkeCad


2. Create New Circuit pada bagian Circuit

Gambar 2.10 Create New Circuit


3. Beri nama project dengan kel05_modul1_perc1

Gambar 2.11 Nama Project


4. Masukkan komponen yang dibutuhkan

Gambar 2.12 Component Basic

Gambar 2.13 Komponen yang dibutuhkan


5. Pasang rangkaian percobaan

12
Gambar 2.14 Gambar Rangkaian Percobaan 1
6. Masukkan Source Code
#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 4, 5, 6, 7);


float voltageInput = 0.0;
float voltageReading = 0.0;
float currentReading = 0.0;
float RA = 15000.0; //dalam ohm
float RB = 1500.0;

void setup()
{
lcd.begin(16, 2);
lcd.clear();
}

void loop ()
{
lcd.setCursor(0,0);
lcd.print("Tegangan");
lcd.setCursor(9, 0);
lcd.print(voltageReading);
lcd.setCursor(14, 0);
lcd.print("V");

lcd.setCursor(0,1);
lcd.print("Arus");
lcd.setCursor(9, 1);
lcd.print(currentReading);
lcd.setCursor(14, 1);
lcd.print("mA");

voltageInput = (analogRead(A0)*5.0)/1023.0;
voltageReading = voltageInput/(RB/(RA + RB));
currentReading = 1000*(voltageReading/(RA+RB));
}
2.4.2 Percobaan 2
1. Buka Webside Tinkercad

13
Gambar 2.15 TinkerCad

2. Create New Circuit pada bagian Circuit

Gambar 2.16 Create New Circuit

3. Beri nama project dengan kel05_modul1_perc2

Gambar 2.17 Nama Project


4. Masukkan komponen yang dibutuhkan

Gambar 2.18 Component Basic

Gambar 2.19 komponen yang dibutuhkan


5. Masukkan Source Code
int volt;
float voltage;
int led = 8;
int pot = A0;

void setup()

14
{
Serial.begin(9600);
pinMode(pot,INPUT);
pinMode(led, OUTPUT);
}

void loop()
{
volt=analogRead(A0);
voltage=(5./1023.)*(volt);

analogWrite(8, volt);

Serial.println(voltage);
delay(1000);

2.5 Hasil dan Analisa Percobaan


2.5.1 Percobaan 1

Gambar 2.20 hasil percobaan


Percobaan pertama kali ini membuat rangkaian berfungsi untuk mengetahui
arus dan tegangan pada power supply. Komponen yang dibutuhkan yaitu
breadboard, arduino uno, power supply, resistor, LCD 16x2, LED, serta kabel
jumper. Pada rangkaian ini digunakan pin 4, 5, 6, 7, 11 dan 12 yang terhubung ke
LCD 16x2, lalu pin A0 ke Arduino Uno untuk menerima masukan sinyal analog.
Cara kerjanya yaitu dimasukkan source code pada arduino uno yang akan berfungsi

15
untuk membaca tegangan dan arus yang dihasilkan oleh power supply, lalu hasilnya
ditampilkan melalui LCD.

Berikut source code pada percobaan 1


#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 4, 5, 6, 7);


float voltageInput = 0.0;
float voltageReading = 0.0;
float currentReading = 0.0;
float RA = 15000.0; //dalam ohm
float RB = 1500.0;

void setup()
{
lcd.begin(16, 2);
lcd.clear();
}

void loop ()
{
lcd.setCursor(0,0);
lcd.print("Tegangan");
lcd.setCursor(9, 0);
lcd.print(voltageReading);
lcd.setCursor(14, 0);
lcd.print("V");

lcd.setCursor(0,1);
lcd.print("Arus");
lcd.setCursor(9, 1);
lcd.print(currentReading);
lcd.setCursor(14, 1);
lcd.print("mA");

voltageInput = (analogRead(A0)*5.0)/1023.0;
voltageReading = voltageInput/(RB/(RA + RB));
currentReading = 1000*(voltageReading/(RA+RB));
}

Mula-mula kita masukkan library LiquidCrystal.h dimana berfungsi


untuk dapat menggunakan LCD. Kemudian inisialisasi pin 4, 5, 6, 7, 11 dan 12 pada
LCD. Lanjut mengetikkan perintah float voltageInput untuk mendeklarasikan
variabel tipe data float untuk voltageInput, currentReading, dan voltageReading.
Untuk variabel Resistor A nilai variabelnya sudah ditentukan yaitu 15000 Ohm,
dimana merupakan nilai resistansi dari resistor. Begitu juga dengan variabel
Resistor B yang nilai resistansinya 1500 Ohm. Lalu pada bagian void setup()

16
ada 2 perintah yakni lcd.begin (16, 2) yang merupakan inisialisasi dari LCD
yang dipakai. Selanjutnya perintah lcd.clear() agar ketika simulasi pertama kali
dijalankan LCD dalam keadaan bersih atau belum ada apapun yang ditampilkan.
Pada baris void loop() berfungsi untuk looping program. Perintah yang
pertama yaitu lcd.setCursor(0,0); untuk men-set cursor pada titik 0,0 atau
bagian pojok kiri atas. Untuk menampilkan teks tegangan perintah yang digunakan
yaitu lcd.print("Tegangan"); z . Selanjutnya set cursor lagi pada titik 9,0 atau
baris 1 kolom ke 10, pada bagian ini juga akan menampilkan hasil dari variabel
voltageReading. Pada titik 14,0 atau baris 1 kolom 15 kita set cursor lagi yang akan
menampilkan teks V ( Volt). Kemudian pada baris kedua akan menampikan nilai
arus dari Power Supply, yang pertama set cursor pada baris 2 kolom 0 ( 0, 1)
kemudian untuk menampilkan teks “Arus” diberikan perintah lcd.print
(“Arus”). Lalu untuk menampilkan hasil dari variabel currentReading
menggunakan perintah lcd.print(currentReading) yang akan ditampilkan
pada kolom ke 10 baris ke 2. Selanjutnya kita tampilkan juga satuan yang digunakan
yaitu mA pada kolom 15, baris ke 2.
Untuk menghasilkan nilai dari voltageReading dan currentReading
perlu dilakukan konversi nilai terlebih dahulu, karena nilai masukkan awalnya
berupa sinyal analog yang berasal dari A0. Rumus yang digunakan yaitu
voltageInput = (analogRead(A0)*5.0)/1023.0; jadi nilai analog yang masuk

dikalikan dengan 5 Volt yang merupakan tegangan acuan, kemudian hasilnya


dibagi dengan 1023 yang merupakan resolusi dari Arduino Uno. Kemudian untuk
voltageReading, nilai dari voltageInput dibagi dengan nilai resistansi Resitor
A dan Resistor B yang tersusun secara pararel sehingga akan didapatkan nilai
tegangannya. Kemudian untuk currentReading, hasilnya didapatkan dari nilai
voltageReading dibagi dengan resistansi lalu dikalikan dengan 1000 untuk
mendapatkan nilai miliAmpere.

17
2.5.2 Percobaan 2

Gambar 2.21 hasil percobaan 2


Selanjutnya untuk percobaan kedua membuat rangkaian dimmer yang
berfungsi untuk mengatur intensitas cahaya pada LED menggunakan
potensiometer. Komponen yang digunakan arduino uno, breadboard, LED,
potensiometer, resistor, dan kabel jumper. Rangkaian ini berfungsi untuk mengubah
tegangan resistansi menggunakan potensiometer dengan indikator LED. Resistansi
pada potensiometer akan mempengaruhi kecerahan pada LED. Semakin tinggi nilai
resistansi potensiometer, maka LED akan semakin terang. Dan sebaliknya apabila
nilai resistansi pada potensiometer semakin rendah, maka LED akan semakin
redup.
Berikut source code percobaan 2
int volt;
float voltage;
int led = 8;
int pot = A0;

void setup()
{
Serial.begin(9600);
pinMode(pot,INPUT);
pinMode(led, OUTPUT);
}

void loop()
{
volt=analogRead(A0);
voltage=( 5./1023.)*(volt);

analogWrite(8, volt);

Serial.println(voltage);

18
delay(1000);
}
Mula-mula membuat inisialisasi untuk tipe data tiap variabel yang
digunakan, untuk variabel volt menggunakan tipe data Integer, Variabel voltage
menggunakan tipe data float. Kemudian melakukan inisalisasi untuk pin yang
digunakan. Pada bagian void setup ( ) digunakan untuk mendeklarasikan pin
input dan juga ouput yang akan digunakan. Perintah serial.begin (9600) adalah
perintah yang digunakan untuk mendelkarasikan kecepatan transfer data, yaitu
9600 bit per detik. Perintah pinMode (pot, INPUT) adalah perintah untuk
mendeklarasikan bahwa variabel pot yang terhubung ke pin A0 sebagai input.
Selanjutnya perintah pinMode (led, OUTPUT) adalah perintah untuk
mendeklarasikan variabel led yang terhubung ke pin 8 sebagian ouput.
Perintah voltage=( 5./1023.)*(volt); akan mengkonversi nilai dari
input analog tadi, yaitu nilai input analog dikalikan dengan 5 Volt yang merupakan
tegangan acuan kemudian dibagi dengan 1023 yang merupakan nilai resolusi dari
Arduino Uno. Kemudian hasil dari konversi tersbut yang sudah tersimpan pada
variabel voltage, akan di tampilkan dengan media LED yang terhubung ke pin 8
Arduino Uno, perintah yang digunakan yaitu analogWrite(8, volt); . Perintah
Serial.println (voltage) akan menampilkan tegangan pada monitor , lalu
perintah delay (1000) yaitu antara nyala dan padamnya LED berjeda 1000 ms.

19
2.6 Tugas
Pada tugas modul 1 akan dibuat sebuah rangkaian yang terdiri dari Arduino
Uno, potensiometer, resistor, dan LCD. Rangkaian ini bekerja dengan menampilkan
tegangan yang dihasilkan oleh potensiometer dan menghitung kemudian
menampilkan juga arusnya dalam satuan nano ampere. Resistor yang digunakan
memiliki hambatan sebesar 220 Ohm, sehingga untuk menghitung arusnya
menggunakan rumus I(Arus) = V(Tegangan) x R(Hambatan). Berikut di bawah ini
adalah source codenya.
#include <LiquidCrystal.h>

// inisialisasi library dan pin yang digunakan serta variabel2nya


LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
int voltAnalog = 0;
float voltage = 0.0;
float nanoAmpere = 0.0;

void setup() {
Serial.begin(9600);
// set up the LCD's number of columns and rows:
lcd.begin(16, 2);
lcd.clear();
}

void loop() {
voltAnalog=analogRead(A0);

//konversi sinyal analog menjadi volt


voltage=(5./1023.)*voltAnalog;

//mencari nano ampere dikalikan 10^9


nanoAmpere = (voltage/220.)*1000000000;

//menampilkan nilainya
lcd.setCursor(0, 0);
lcd.print("Volt");
lcd.setCursor(5,0);
lcd.print(voltage);
lcd.setCursor(9,0);
lcd.print("V");
lcd.setCursor(0, 1);
lcd.print("nA");
lcd.setCursor(5,1);
lcd.print(nanoAmpere);
delay(1000);
}
Pada kode di atas yang pertama dilakukan adalah menginisialisasi library
yang digunakan serta variabel-variabelnya. Variabel yang digunakan adalah
tegangan dalam analog, tegangan sebenarnya, dan arus sebenarnya dalam satuan

20
nano. Setelah dihitung dengan rumus yang diimplementasikan dalam bentuk kode,
ditampilkan hasilnya pada LCD. Hasilnya seperti gambar di bawah ini.

Gambar 2.22 tugas modul 1

Pada gambar 2.1 di atas dapat diperhatikan bahwa pada LCD sudah
ditampilkan besar tegangan yang diberikan oleh potensiometer serta arusnya

21
2.7 Kesimpulan
1. Perintah void loop() berfungsi untuk looping program
2. Perintah delay (1000) bermakna jeda selama 1000ms
3. Perintah void setup ( ) digunakan untuk mendeklarasikan pin input dan juga
ouput yang akan digunakan.
4. Perintah serial.begin (9600) adalah perintah yang digunakan untuk
mendelkarasikan kecepatan transfer data, yaitu 9600 bit per detik.
5. Perintah pinMode (pot, INPUT) adalah perintah untuk mendeklarasikan
bahwa variabel pot yang terhubung ke pin A0 sebagai input.
6. Resistansi pada potensiometer akan mempengaruhi kecerahan pada LED.
Semakin tinggi nilai resistansi potensiometer, maka LED akan semakin terang.
Dan sebaliknya apabila nilai resistansi pada potensiometer semakin rendah,
maka LED akan semakin redup.
7. Untuk mengitung arus tegangan yaitu menggunakan rumus I(Arus) =
V(Tegangan) x R(Hambatan)

22
BAB III
PEMROGRAMAN ARDUINO

3.1 Tujuan
1. Praktikan dapat mengerti fungsi dari board Arduino Uno
2. Praktikan mampu memahami pemograman Arduino
3. Praktikan dapat melakukan implementasi pemograman kedalam rangkaian
arduino
4. Praktikan dapat memahami berbagai macam interupsi
5. Praktikan dapat melakukan implementasi interupsi kedalam rangkaian
sederhana yang dibuat

23
3.2 Alat dan Bahan
3.2.1 Tinkercad

Gambar 3.1 TinkerCad


TinkerCad adalah salah satu platform berupa web, yang menyediakan sarana
bagi pengguna untuk mempelajari, merangkai model 3D dan rangkaian elektronika,
menyusun codeblock, serta menguji rangkaian yang telah dibuat dalam bentuk
simulasi.
Tinkercad merupakan website besutan Autodesk yang merupakan produsen
aplikasi-aplikasi desain grafis seperti AutoCAD yang sudah sangat popular dan
menjadi standar industri manapun.
3.2.2 Arduino Uno R3

Gambar 3.2 Arduino Uno R3


Arduino Uno R3 adalah papan pengembangan (development board)
mikrokontroler yang berbasis chip ATmega328P. Arduino disebut sebgai papan
pengembangan karena board ini berfungsi sebagai media prototyping sirkuit
mikrokontroler.
Arduino Uno R3 berbasis IC ATmega328P, memiliki 14 pin I/O digital (6
pin PWM), 6 input analog, kristal kuarsa 16 MHz, koneksi USB, colokan listrik,

24
header ICSP dan tombol reset. Kata “Uno” memiliki makna “Satu” sedangkan R3
atau revR3 adalah pengembangan dari Arduino Uno sejak awal peluncuran hingga
sekarang.

3.2.3 Breadboard

Gambar 3.3 Breadboard


Breadboard merupakan sebuah papan yang berfungsi untuk merancang
sebuah elektronik sederhana. breadboard digunakan sebagai media untuk membuat
prototype, dan atau uji coba.
Salah satu keuntungan menggunakan breadboard adalah komponen-
komponen yang dirakit tidak akan mengalami kerusakan, sehingga dapat digunakan
lagi pada model rangkaian yang lain.

3.2.4 LED

Gambar 3.4 LED


Light Emitting Diode atau sering disingkat dengan LED adalah komponen
elektronika yang dapat memancarkan cahaya monokromatik ketika diberikan
tegangan maju. LED merupakan keluarga Dioda yang terbuat dari bahan

25
semikonduktor. Warna-warna Cahaya yang dipancarkan oleh LED tergantung pada
jenis bahan semikonduktor yang dipergunakannya. LED juga dapat memancarkan
sinar inframerah yang tidak tampak oleh mata seperti yang sering kita jumpai pada
Remote Control TV ataupun Remote Control perangkat elektronik lainnya.

3.2.5 Push Button

Gambar 3.5 Push Button


Push Button adalah saklar berupa tombol yang berfungsi sebagai pemutus
atau penyambung arus listrik dari sumber arus ke rangkaian elektronik.
Push button dapat dibedakan menjadi dua tipe, yaitu NC (normally close)
dan NO (normally open). NO adalah tipe push button yang akan menutup (closed
circuit) apabila ditekan dan terbuka (open circuit) apabila dilepas; NO adalah
kebalikannya, yaitu tertutup apabila dilepas dan terbuka apabila ditekan.

3.3 Dasar Teori


3.3.1 Board Arduino Uno

Gambar 3.6 Arduino Uno

26
Arduino Uno adalah board mikrokontroler berbasis ATmega328
(datasheet). Memiliki 14 pin input dari output digital dimana 6 pin input tersebut
dapat digunakan sebagai output PWM dan 6 pin input analog, 16 MHz osilator
kristal, koneksi USB, jack power, ICSP header, dan tombol reset. Untuk
mendukung mikrokontroler agar dapat digunakan, cukup hanya menghubungkan
Board Arduino Uno ke komputer dengan menggunakan kabel USB atau listrik
dengan AC yang-ke adaptor-DC atau baterai untuk menjalankannya. Setiap 14 pin
digital pada arduino uno dapat digunakan sebagai input dan output, menggunakan
fungsi pinMode(), digitalwrite(), dan digitalRead(). Fungsi fungsi tersebut
beroperasi di tegangan 5 volt, Setiap pin dapat memberikan atau menerima suatu
arus maksimum 40 mA dan mempunyai sebuah resistor pull-up (terputus secara
default) 20-50 kOhm.
Arduino Uno dapat berkomunikasi dengan mikrokontroler lain
menggunakan UART TTL sebagai komunikasi serial yang tersedia pada pin digital
0 (RX) dan 1 (TX). Power supply Arduino Uno menggunakan adaptop DC yang
terhubung melalui jack adaptor pada koneksi port input supply. Arduino Uno
memiliki 32 flash memory4 untuk menyimpan kode dan 2KB yang di gunakan
untuk bootloader, Arduino Uno juga memiliki 2 KB untuk SRAM dan 1 KB untuk
EEPROM.
(sumber : https://eprints.akakom.ac.id/4940/3/3_143310018_BAB_II.pdf)

3.3.2 Pemrograman pada Arduino UNO


Pemograman pada Arduino Uno menggunakan Bahasa C yang memiliki
struktur sederhana yaitu :
1. Void loop ()
Void loop () merupakan perintah dimana jika sebuah kode program yang
terdiri dari input dan output terdapat didalam void loop maka akan terjadi
perulangan atau akan di baca terus-menerus oleh Arduino.
void loop()
{
//statement
}
2. Void setup ()

27
Void setup () merupakan perintah dimana jika terdapat kode program input
dan output didalam nya maka kode tersebut hanya dibaca sekali.
void setup()
{
//statment
}
(sumber : https://www.bluino.com/2019/10/bahasa-pemrograman-arduino.html)
3.3.3 Interupsi
Interupsi adalah suatu perintah yang dimasukan kedalam kode program
untuk memicu program lain secara eksternal maupun internal. Pada Arduino sudah
disediakan fungsi khusus untuk menggunakan interupsi yaitu dengan menggunakan
perintah attachInterrupt. Interupsi ini berguna untuk membuat suatu pekerjaan /
pereintah / task bekerja secara otomatis misalnya untuk membaca data secara terus-
menerus. Arduino Uno memiliki 2 pin interupsi yaitu INT0 pada pin 2 digital dan
INT1 pada pin 3 digital. Ada beberapa mode penggunaan interupsi yaitu:
1. Mode LOW , pada mode ini interupsi akan diaktifkan saat pin INT memiliki
logika low dan akan aktif jika tetap berada di logika low.
2. Mode CHANGE, pada mode ini interupsi akan diaktifkan saat terjadi perubaan
logika baik dari low ke high atau sebaiknya.
3. Mode RISING, pada mode ini pengaktifan interupsi akan terjadi jika pin
mengalami perubahan logika baik dari low ke high. Adapun perbedaan dari
mode CHANGE yaitu ketika dari high ke low interupsi tidak akan aktif
4. Mode FALLING , pada mode ini perubahan logika pada pin INT dari high ke
low akan mengaktifkan fungsi interupsi.
(sumber : http://omelektro.blogspot.com/2019/02/fungsi-interrupt-pada-arduino)
3.3.4 Tinkercad
Tinkercad adalah simulator elektronika berbasis web buatan Autodesk yang
di dalam nya menyediakan komponen Arduino UNO yang dapat diprogram.
Tinkercad tidak hanya dapat membuat project elektronik tetapi juga dapat
digunakan untuk membuat desain grafis lainnya seperti desain grafis 3D. adapun
Tinkercad ini biasa digunakan untuk media belajar untuk membangun suatu desain
elektronik tanpa menggunakan alat fisik.

28
Gambar 3.7 TinkerCad
(sumber: http://raywandaaffandi.blogspot.com)

29
3.4 Langkah Kerja
3.4.1 Percobaan 1
6. Buka Webside Tinkercad

Gambar 3.8 TinkerCad

7. Create New Circuit pada bagian Circuit

Gambar 3.9 Create New Circuit


8. Beri nama project dengan kel05_modul2_perc1

Gambar 3.10 Nama Project


9. Masukkan komponen yang dibutuhkan

Gambar 3.11 component basic


Gambar 3. 1 Components Basic

30
Gambar 3.12 komponen yang dibutuhkan
10. Pasang rangkaian percobaan

Gambar 3.13 rangkaian percobaan 1


11. Masukkan Source Code
int led1 = 11;
int led2 = 12;
int led3 = 13;
int button = 2;

int state = 0; //current state


int old = 0; //last state
int buttonState = 0; //hold state

void setup()
{
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(button, INPUT);

digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
}

void loop()
{
buttonState = digitalRead(button);
if(buttonState == 1){ //button dah dipencet
delay(50);
buttonState = digitalRead(button); //if it is 0
considered one press
if(buttonState == 0){

31
state = old + 1;
}
}
else{
delay(100);//button not pressed
}

switch (state){
case 1:
digitalWrite(led1, HIGH);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
old = state;
break;
case 2:
digitalWrite(led1, LOW);
digitalWrite(led2, HIGH);
digitalWrite(led3, LOW);
old = state;
break;
case 3:
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, HIGH);
old = state;
break;
default:
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
old = 0;//reset
break;
}
}
3.4.2 Percobaan 2
1. Buka Webside Tinkercad

Gambar 3.14 TinkerCad


2. Create New Circuit pada bagian Circuit

Gambar 3.15 create new circuit


3. Beri nama project dengan kel05_modul2_perc2

32
Gambar 3.16 nama project
4. Masukkan komponen yang dibutuhkan

Gambar 3.17 component basic

Gambar 3.18 komponen yang dibutuhkan


5. Pasang rangkaian percobaan

Gambar 3.19 rangkaian percobaan 2


6. Masukkan Source Code
int state = 0;

void setup()
{

33
Serial.begin(9600);
for (int i=6; i<9; i++){
pinMode(i, OUTPUT);
}
//tambahkan kode external interrupt di bawah:
attachInterrupt(digitalPinToInterrupt(2), callint1, FALLING);
attachInterrupt(digitalPinToInterrupt(3), callint2, RISING);
}

void loop()
{
ledoff();
digitalWrite(7, HIGH);
ledoff();
digitalWrite(6, HIGH);
ledoff();
digitalWrite(7, HIGH);
digitalWrite(6, HIGH);
ledoff();
}

void ledoff(){
delay(1500);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
}

//tambahkan kode interrupt handler di bawah:


void callint1(){
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
cli();
nyala_terus();
}

void callint2(){
state = 1;
}

void nyala_terus(){
sei();
while (true) {
if (state == 1)
break;
}
state = 0;
1. }

34
3.5 Hasil dan Analisa Percobaan
3.5.1 Percobaan 1

Gambar 3.20 kondisi LED setelah Push Button ditekan pertama kali

Gambar 3.21 Kondisi LED ketika ditekan untuk kedua kali

Gambar 3.22 Kondisi LED ketika ditekan untuk ketiga kali

35
Percobaan pertama membuat rangkaian menggunakan komponen
breadboard, arduino uno, resistor, push button, LED, serta kabel jumper.
Rangkaian yang dibuat menggunakan konsep interrupt dengan push button sebagai
komponen yang menginterupsi.

Berikut source code percobaan 1


int state = 0;

void setup()
{
Serial.begin(9600);
for (int i=6; i<9; i++){
pinMode(i, OUTPUT);
}
//tambahkan kode external interrupt di bawah:
attachInterrupt(digitalPinToInterrupt(2), callint1, FALLING);
attachInterrupt(digitalPinToInterrupt(3), callint2, RISING);
}

void loop()
{
ledoff();
digitalWrite(7, HIGH);
ledoff();
digitalWrite(6, HIGH);
ledoff();
digitalWrite(7, HIGH);
digitalWrite(6, HIGH);
ledoff();
}

void ledoff(){
delay(1500);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
}

//tambahkan kode interrupt handler di bawah:


void callint1(){
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
cli();
nyala_terus();
}

void callint2(){
state = 1;
}

void nyala_terus(){

36
sei();
while (true) {
if (state == 1)
break;
}
state = 0;
1. }
Pertama kali dideklarasikan pin yang akan digunakan pada rangkaian.
Kemudian inisiasi kondisi state untuk awal dan akhir bernilai 0. Lalu buttonState
yang akan bernilai low sebelum ditekan. Pada void setup(), pertama menginisiasi
perintah pinMode untuk ketiga LED menjadi output, dan perintah pinMode untuk
push button menjadi input. Lalu inisiasi untuk ketiga LED diatur dalam keadaan
mati sebelum input dari push button. Kemudian pada bagian void loop(), dibuat
Switch case yang dengan push button membaca pengkondisian buttonState
apabila push button ditekan maka akan masuk ke buttonState == 1; yang
mempengaruhi nyala LED. Kemudian jika push button ditekan kembali maka nilai
buttonState akan ditambah dengan 1 berdasarkan nilai buttonState terakhir.
Dan apabila sampai di state terakhir yaitu LED terakhir menyala, jika push button
ditekan kembali maka case kembali menjadi default atau semua LED mati.
Cara kerja rangkaiannya yaitu apabila push button pertama kali ditekan,
yang terjadi adalah LED biru akan menyala. Push button ditekan untuk kedua
kalinya maka hanya LED hijau yang menyala. Lalu jika push button ditekan ketiga
kalinya maka hanya LED merah yang menyala. Selanjutnya apabila push button
ditekan untuk keempat kalinya maka semua LED akan mati. Proses ini akan
berulang terus apabila push button kembali ditekan. Kondisi LED, dieksekusi
berdasarkan nilai variabel “state” yang ada di pengkondisian switch case. Setiap
kali push button ditekan, maka akan menambah nilai dari state sebanyak 1, dan
merubah case yang terpilih pada pengkondisian tersebut.

37
3.5.2 Percobaan 2

Gambar 3.23 Kondisi default LED saat program dijalankan

Gambar 3.24 kondisi LED saat push button sebelah kiri ditekan

Percobaan kedua membuat rangkaian menggunakan komponen breadboard,


arduino uno, LED, push button, resistor, dan kabel jumper. Rangkaian ini sama
seperti pada percobaan pertama yaitu menggunakan konsep interupsi namun pada
percobaan kedua kali ini menggunakan dua buah push button yang menerapkan
mode FALLING dan RISING. Pada kondisi semula, LED biru dan LED merah
akan secara bergantian menyala. Kemudian apabila push button 1 ditekan yang

38
terjadi adalah kedua LED akan menyala terus menerus. Sedangkan jika push button
2 ditekan, maka kedua LED akan kembali pada kondisi semula.
Berikut source code percobaan 2
int state = 0;

void setup()
{
Serial.begin(9600);
for (int i=6; i<9; i++){
pinMode(i, OUTPUT);
}
//tambahkan kode external interrupt di bawah:
attachInterrupt(digitalPinToInterrupt(2), callint1, FALLING);
attachInterrupt(digitalPinToInterrupt(3), callint2, RISING);
}

void loop()
{
ledoff();
digitalWrite(7, HIGH);
ledoff();
digitalWrite(6, HIGH);
ledoff();
digitalWrite(7, HIGH);
digitalWrite(6, HIGH);
ledoff();
}

void ledoff(){
delay(1500);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
}

//tambahkan kode interrupt handler di bawah:


void callint1(){
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
cli();
nyala_terus();
}

void callint2(){
state = 1;
}

void nyala_terus(){
sei();
while (true) {
if (state == 1)
break;
}
state = 0;
1. }

39
Pertama mendeklarasikan state yang bernilai 0. Kemudian inisiasi
serial.begin(9600); yaitu kecepatan transfer data dengan nilai 9600 bit per
detik. Lalu mendeklarasikan perulangan for yang berjalan apabila i bernilai 6 dan
menggunakan increment hingga nilai i kurang dari 9. Lalu mengatur pinMode i agar
digunakan menjadi output. Kemudian terdapat perintah Interrupt, untuk pin 2
diberikan fungsi callint1 dengan tipe FALLING, dan untuk pin3 diberikan fungsi
callint3 dengan tipe RISING. Lalu pada bagian void loop() diatur urutan nyala
LED, yaitu ledoff() untuk mematikan semua LED kemudian perintah
digitalWrite(7,HIGH); yang berarti LED pada pin 7 atau LED sebelah kiri
menyala, kemudian LED tersebut mati dengan kode ledoff() lalu LED pada pin
6 atau LED sebelah kanan menyala karena bernilai high, dan akan menjalankan
perintah ledoff() lagi yang kemudian kedua LED akan menyala bersamaa karena
keduanya bernilai high. Selanjutnya pada bagian void ledoff() untuk mengatur
fungsi mematikan kedua LED karena kedua LED pada pin 6 dan pin 7 bernilai low
dengan delay 1500 ms. Kemudian pada bagian void callint2(),

mendeklarasikan nilai state berubah menjadi 1.Selanjutnya pada bagian void


nyala_terus() seperti pada perintah yang digunakan di bagian callint1. Pertama

mendeklarasikan perintah sei() akan mengaktifkan interrupt. Terdapat perulangan


while, apabila state bernilai 1 maka semua LED akan bernilai low atau mati,
sedangkan apabila state bernilai 0 maka semua LED akan bernilai high atau
menyala.
Selama program berjalan, nilai variabel state yaitu 0. Kemudian saat push
button sebelah kanan ditekan, maka akan mengatur nilai variabel state menjadi 1.
Ketika nilai variable state bernilai 1, maka program akan mengeksekusi perintah
“break” yang ada di dalam method void nyala_terus. Kemudian nilai variabel state
akan di set menjadi 0 kembali, dan program akan kembali ke kondisi default, yaitu
LED menyala bergantian sesuai pola yang sudah diatur.

40
3.6 Tugas
Pada tugas modul 2 akan dibuat rangkaian counter yang dibuat dengan
menggunakan Arduino Uno, 7-segment, dan Push Button. Counter akan
ditampilkan pada 7-segment. Fungsi dari push button adalah untuk me-reset
counter kembali menjadi 0.
int a1 = 0;//A
int b1 = 1;//B
int c1 = 8;//C
int d1 = 3;//D
int e1 = 4;//E
int f1 = 5;//F
int g1 = 6;//G
int buttonState = 0;
int hitungan = 0;

void setup(){
pinMode(a1, OUTPUT);
pinMode(b1, OUTPUT);
pinMode(c1, OUTPUT);
pinMode(d1, OUTPUT);
pinMode(e1, OUTPUT);
pinMode(f1, OUTPUT);
pinMode(g1, OUTPUT);

attachInterrupt(digitalPinToInterrupt(2),callinterrupt, RISING);
}

void displayDigit (int digit){


if (digit == 0){
digitalWrite(a1, LOW);
digitalWrite(b1, LOW);
digitalWrite(c1, LOW);
digitalWrite(d1, LOW);
digitalWrite(e1, LOW);
digitalWrite(f1, LOW);
digitalWrite(g1, HIGH);
}
else if (digit == 1){
digitalWrite(a1, HIGH);
digitalWrite(b1, LOW);
digitalWrite(c1, LOW);
digitalWrite(d1, HIGH);
digitalWrite(e1, HIGH);
digitalWrite(f1, HIGH);
digitalWrite(g1, HIGH);
}
else if (digit == 2){
digitalWrite(a1, LOW);
digitalWrite(b1, LOW);
digitalWrite(c1, HIGH);

41
digitalWrite(d1, LOW);
digitalWrite(e1, LOW);
digitalWrite(f1, HIGH);
digitalWrite(g1, LOW);
}
else if (digit == 3){
digitalWrite(a1, LOW);
digitalWrite(b1, LOW);
digitalWrite(c1, LOW);
digitalWrite(d1, LOW);
digitalWrite(e1, HIGH);
digitalWrite(f1, HIGH);
digitalWrite(g1, LOW);
}
else if (digit == 4){
digitalWrite(a1, HIGH);
digitalWrite(b1, LOW);
digitalWrite(c1, LOW);
digitalWrite(d1, HIGH);
digitalWrite(e1, HIGH);
digitalWrite(f1, LOW);
digitalWrite(g1, LOW);
}
else if (digit == 5){
digitalWrite(a1, LOW);
digitalWrite(b1, HIGH);
digitalWrite(c1, LOW);
digitalWrite(d1, LOW);
digitalWrite(e1, HIGH);
digitalWrite(f1, LOW);
digitalWrite(g1, LOW);
}
else if (digit == 6){
digitalWrite(a1, LOW);
digitalWrite(b1, HIGH);
digitalWrite(c1, LOW);
digitalWrite(d1, LOW);
digitalWrite(e1, LOW);
digitalWrite(f1, LOW);
digitalWrite(g1, LOW);
}
else if (digit == 7){
digitalWrite(a1, LOW);
digitalWrite(b1, LOW);
digitalWrite(c1, LOW);
digitalWrite(d1, HIGH);
digitalWrite(e1, HIGH);
digitalWrite(f1, HIGH);
digitalWrite(g1, HIGH);
}
else if (digit == 8){
digitalWrite(a1, LOW);
digitalWrite(b1, LOW);
digitalWrite(c1, LOW);
digitalWrite(d1, LOW);
digitalWrite(e1, LOW);

42
digitalWrite(f1, LOW);
digitalWrite(g1, LOW);
}
else if (digit == 9){
digitalWrite(a1, LOW);
digitalWrite(b1, LOW);
digitalWrite(c1, LOW);
digitalWrite(d1, LOW);
digitalWrite(e1, HIGH);
digitalWrite(f1, LOW);
digitalWrite(g1, LOW);
}
}

void loop () {
counting();
}

void counting() {
displayDigit(hitungan);
delay(1000);
hitungan += 1;
displayDigit(hitungan);
if(hitungan == 10){
hitungan = 0;
displayDigit(hitungan);
delay(1000);
}
}

void callinterrupt(){
hitungan = 0;
displayDigit(hitungan);
}

Pada kode di atas yang pertama dilakukan adalah menginisialisasi variabel-


variabel yang digunakan adalah pin-pin yang merepresentasikan tiap pin 7-segment
juga untuk menghitung hitungannya. Fungsi displayDigit() berfungsi untuk
menampilkan hitungan di 7-segment. Fungsi loop() akan mengulang fungsi
counting() yang berfungsi untuk menghitung setiap 1 detik lalu memanggil fungsi
displayDigit(). Kemudian fungsi callinterrupt() berfungsi untuk me-reset hitungan
yang di-trigger oleh push button yang dihubungkan dengan pin 2 pada Arduino.

43
Gambar 3.25 Hitungan 2 detik
Pada gambar 3.1 di atas counter sedang pada hitungan 2 sehingga 7-segment
menampilkan angka 2.

Gambar 3.26 Hitungan ketika di-reset


Pada gambar 3.2 di atas counter sedang pada hitungan 0 karena reset sudah
push button sudah ditekan.

44
3.7 Kesimpulan
1. Perintah callinterrupt() berfungsi untuk melakukan reset
2. Untuk melakukan perulangan pada sebuah kondisi atau kode program maka
menggunakan perintah loop()
3. Fungsi displayDigit() pada tugas berfungsi untuk menampilkan hitungan di
7-segment
4. Mode LOW, CHANGE, RISING, FALLING merupakan perintah interupsi.
5. Push button pada modul 2 praktikum Robotika digunakan sebagai input-an
interupsi untuk reset

45
BAB IV
SENSOR CAHAYA DAN SENSOR TEKUKAN

4.1 Tujuan
1. Praktikan dapat memahami fungsi dari sensor cahaya
2. Praktikan dapat memahami prinsip kerja cahaya dan sensor tekukan
3. Praktikan dapat menjelaskan prinsip kerja sensor cahaya pada Praktikum
Robotika modul 3
4. Praktikan dapat mengimplementasikan pengkodean pada rangkaian Arduino
5. Praktikan dapat mengimplementasikan sensor cahaya pada sebuah rangkaian
6. Praktikan dapat mengimplementasikan sensor tekukan pada sebuah rangkaian

46
4.2 Alat dan Bahan
4.2.1 Tinkercad

Gambar 4.1 TinkerCad


TinkerCad adalah salah satu platform berupa web, yang menyediakan sarana
bagi pengguna untuk mempelajari, merangkai model 3D dan rangkaian elektronika,
menyusun codeblock, serta menguji rangkaian yang telah dibuat dalam bentuk
simulasi.
Tinkercad merupakan website besutan Autodesk yang merupakan produsen
aplikasi-aplikasi desain grafis seperti AutoCAD yang sudah sangat popular dan
menjadi standar industri manapun.
Pada praktikum ini, tinkercad digunakan sebagai media simulator untuk
menyusun dan menguji coba rangkaian.
4.2.2 Board Arduino Uno

Gambar 4.2 Board Arduino uno


Arduino Uno adalah papan pengembangan (development board)
mikrokontroler yang berbasis chip ATmega328P. Arduino disebut sebgai papan
pengembangan karena board ini berfungsi sebagai media prototyping sirkuit
mikrokontroler.

47
Arduino Uno berbasis IC ATmega328P, memiliki 14 pin I/O digital (6 pin
PWM), 6 input analog, kristal kuarsa 16 MHz, koneksi USB, colokan listrik, header
ICSP dan tombol reset.
Pada praktikum ini, board arduino uno digunakan sebagai komponen utama
peyusun rangkaian elektronika, menerima masukan dan menjalankan program yang
telah diberikan.
4.2.3 Breadboard

Gambar 4.3 Breadboard


Breadboard merupakan sebuah papan yang berfungsi untuk merancang
sebuah elektronik sederhana. breadboard digunakan sebagai media untuk membuat
prototype, dan atau uji coba.
Salah satu keuntungan menggunakan breadboard adalah komponen-
komponen yang dirakit tidak akan mengalami kerusakan, sehingga dapat digunakan
lagi pada model rangkaian yang lain.
Pada praktikum ini, breadboard digunakan sebagai media wiring untuk
menghubungkan tiap komponen elektronika.
4.2.4 Photoresistor Sensor

Gambar 4.4 Photoresistor Sensor

48
Light Dependent Resistor atau disingkat dengan LDR adalah jenis Resistor
yang nilai hambatan atau nilai resistansinya tergantung pada intensitas cahaya yang
diterimanya. Nilai Hambatan LDR akan menurun pada saat cahaya terang dan nilai
Hambatannya akan menjadi tinggi jika dalam kondisi gelap.
Naik turunnya nilai Hambatan akan sebanding dengan jumlah cahaya yang
diterimanya. Pada umumnya, Nilai Hambatan LDR akan mencapai 200 Kilo Ohm
(kΩ) pada kondisi gelap dan menurun menjadi 500 Ohm (Ω) pada Kondisi Cahaya
Terang.
Pada praktikum ini, photoresistor digunakan untuk mengubah besar
tegangan keluaran pin digital I/O berdasarkan banyaknya cahaya yang ditangkap
oleh photoresistor.
4.2.5 Resistor

Gambar 4.5 Resistor


Resistor adalah komponen Elektronika Pasif yang memiliki nilai resistansi
atau hambatan tertentu yang berfungsi untuk membatasi dan mengatur arus listrik
dalam suatu rangkaian Elektronika. Resistor atau dalam bahasa Indonesia sering
disebut dengan Hambatan atau Tahanan dan biasanya disingkat dengan Huruf “R”.
Satuan Hambatan atau Resistansi Resistor adalah OHM (Ω).
Pada praktikum ini, resistor digunakan untuk membentuk rangkaian
pembagi tegangan, sekaligus untuk mengatur jumlah arus yang mengalir pada
rangkaian.

49
4.2.6 Sensor Tekukan (Flex Sensor)

Gambar 4.6 Flex Sensor


Flex Sensor adalah sensor yang digunakan untuk mengukur besar tekukan
atau belokan. Resistansi yang dihasilkan oleh flex sensor bervariasi tergantung
tekukannya. Jika sensor semakin ditekuk, maka resesistansinya akan semakin
besar, dan sebaliknya semakin kecil tekukan pada sensor, maka semakin kecil pula
resistansinya.
Sensor ini umumnya digunakan sebagai goniometer (pengukur sudut) dan
digunakan untuk mendeteksi apakah robot perlu belok atau tidak. Pada praktikum
ini, flex sensor digunakan untuk menunjukkan pengaruh tekukan sensor pada besar
tegangan yang diterima oleh LED.
4.2.7 LED

Gambar 4.7 LED


Light Emitting Diode atau sering disingkat dengan LED adalah komponen
elektronika yang dapat memancarkan cahaya monokromatik ketika diberikan

50
tegangan maju. LED merupakan keluarga Dioda yang terbuat dari bahan
semikonduktor. Warna-warna Cahaya yang dipancarkan oleh LED tergantung pada
jenis bahan semikonduktor yang dipergunakannya. LED juga dapat memancarkan
sinar inframerah yang tidak tampak oleh mata seperti yang sering kita jumpai pada
Remote Control TV ataupun Remote Control perangkat elektronik lainnya.
Pada praktikum ini, LED digunakan sebagai indikator, yang menunjukkan
besar arus yang mengalir. Semakin terang LED maka arus yang mengalir semakin
besar, sebaliknya semakin redup LED maka arus yang mengalir semakin kecil.

51
4.3 Dasar Teori
4.3.1 Board Arduino Uno

Gambar 4.8 Arduino Uno


Arduino Uno adalah board mikrokontroler berbasis ATmega328
(datasheet). Memiliki 14 pin input dari output digital dimana 6 pin input tersebut
dapat digunakan sebagai output PWM dan 6 pin input analog, 16 MHz osilator
kristal, koneksi USB, jack power, ICSP header, dan tombol reset. Untuk
mendukung mikrokontroler agar dapat digunakan, cukup hanya menghubungkan
Board Arduino Uno ke komputer dengan menggunakan kabel USB atau listrik
dengan AC yang-ke adaptor-DC atau baterai untuk menjalankannya. Setiap 14 pin
digital pada arduino uno dapat digunakan sebagai input dan output, menggunakan
fungsi pinMode(), digitalwrite(), dan digitalRead(). Fungsi fungsi tersebut
beroperasi di tegangan 5 volt, Setiap pin dapat memberikan atau menerima suatu
arus maksimum 40 mA dan mempunyai sebuah resistor pull-up (terputus secara
default) 20-50 kOhm.
Arduino Uno dapat berkomunikasi dengan mikrokontroler lain
menggunakan UART TTL sebagai komunikasi serial yang tersedia pada pin digital
0 (RX) dan 1 (TX). Power supply Arduino Uno menggunakan adaptop DC yang
terhubung melalui jack adaptor pada koneksi port input supply. Arduino Uno
memiliki 32 flash memory4 untuk menyimpan kode dan 2KB yang di gunakan
untuk bootloader, Arduino Uno juga memiliki 2 KB untuk SRAM dan 1 KB untuk
EEPROM.
(sumber : https://eprints.akakom.ac.id/4940/3/3_143310018_BAB_II.pdf)

52
4.3.2 Photoresistor Sensor

Gambar 4.9 Photoresistor sensor


Photoresistor Sensor adalah komponen yang sensitif terhadap cahaya ,
ketika cahaya mengenai sensor maka akan terjadi perubahan resistensi dimana Nilai
Hambatan LDR akan menurun pada saat cahaya terang dan nilai Hambatannya akan
menjadi tinggi jika dalam kondisi gelap. Naik turunnya nilai Hambatan akan
sebanding dengan jumlah cahaya yang diterimanya. Pada umumnya, Nilai
Hambatan LDR akan mencapai 200 Kilo Ohm (kΩ) pada kondisi gelap dan
menurun menjadi 500 Ohm (Ω) pada Kondisi Cahaya Terang. Adapun komponen
ini biasa digunakan pada rangkaian elektronika sebagai sensor pada lampu
penerang jalan, lampu kamar tidur, shutter kamera dan lain-lain. Untuk mengukur
nilai hambatan Photoresistor ini menggunakan alat yaitu multimeter dengan fungsi
pengukuran Ohm (Ω).
(sumber: https://teknikelektronika.com/pengertian-ldr-light-dependent-resistor-cara-mengukur-
ldr/)

53
4.3.3 Sensor Tekukan (Flex Sensor)

Gambar 4.10 Flex Sensor


Flex Sensor adalah sensor yang memiliki perubahan resistansi akibat adanya
perubahan lekukan pada bagian sensor. Sensor ini memiliki output berupa
resistansi. Sensor ini membutuhkan tegangan sebesar +5V agar bisa bekerja. Output
resistansi ini akan diberikan tegangan yang nantinya akan dibaca oleh
mikrokontroler. Sensor ini digunakan untuk mendeteksi pergerakan lari tangan
pada manusia / bagian lekukan lainya. Mikrokontroler mengkonversi data
menggunakan ADC (analog to digital converter), dimana data masukkannya
didapat dari tegangan yang sudah terkena resistansi.
(Sumber: https://core.ac.uk/download/pdf/35319351.pdf)

54
4.4 Langkah Kerja
4.4.1 Percobaan 1
1. Buka webside Tinkercad

Gambar 4.11 TinkerCad


2. Create New Circuit pada bagian Circuit

Gambar 4.12 create new circuit


3. Beri nama project dengan Photoresistor

Gambar 4.13 nama project


4. Masukkan komponen yang dibutuhkan

Gambar 4.14 component basic

Gambar 4.15 komponen yang dibutuhkan


5. Rangkaian percobaan 1

55
Gambar 4.16 rangkaian percobaan 1
6. Masukkan Source Code
const int inPin=A1;
void setup()
{
Serial.begin(9600);
pinMode(inPin, INPUT);
}
void loop()
{
int value=analogRead(inPin);
float volt = value/1023.0 * 5.0;
float persen = map(value, 0, 1023, 0, 100);
Serial.print("analog value: ");
Serial.print(value);
Serial.print("\tVolt: ");
Serial.print(volt);
Serial.print("\tPersen: ");
Serial.println(persen);
delay(1000);
}
4.4.1. Percobaan 2
1. Buka webside Tinkercad

Gambar 4.17 tinkercad


2. Create New Circuit pada bagian Circuit

Gambar 4.18 create new circuit


3. Beri nama project dengan Flex Sensor

56
Gambar 4.19 nama project
4. Masukkan komponen yang dibutuhkan

Gambar 4.20 component basic

Gambar 4.21 komponen yang dibutuhkan


Gambar 4. 1 Gambar Komponen yang dibutuhkan

5. Rangkaian percobaan 2

Gambar 4.22 rangkaian percobaan 2


6. Masukkan Source Code
const int flexPin = A2;
const int ledPin = 9;
int nilai;
int value;
void setup()
{
Serial.begin(9600);
pinMode(ledPin, OUTPUT);
}
void loop()
{

57
value = analogRead(flexPin);
nilai = map(value, 59, 256, 0, 255);
analogWrite(ledPin, nilai); Serial.println(value);
delay(1000);
}

58
4.5 Hasil dan Analisa Percobaan
4.5.1 Percobaan 1

Gambar 4.23 hasil percobaan 1


Komponen yang digunakan pada percobaan ini yaitu Arduino Uno,
Breadboard, Photoresistor, dan Resistor 5K Ohm. Photoresistor disini sebagai
output yang dimana bekerja sesuai dengan pembacaan cahaya sekitar. Apabila
photoresistor digeser ke kanan yang berarti intensitas cahaya semakin tinggi
(terang) maka output sensor atau nilai resistansinya akan semakin kecil, dan
sebaliknya apabila photoresistor digeser ke kiri yang berarti intensitas cahaya
semakin rendah (redup) maka output sensor atau nilai resistansinya akan semakin
besar.
Pada source code dideklarasikan variabel inPin yaitu pin A1 yang terhubung
ke terminal 1 dari photoresistor. Selanjutnya pada void setup (), pertama terdapat
perintah Serial.begin(94600); untuk memulai programnya. Lalu pinMode(inPin,
INPUT) ini berarti A1 sebagai input ke arduino uno. Pada void loop () dibuat
variabel integer value yang merupakan pembacaan dari A1, kemudian dibuat
variabel float bernama volt yang merupakan perhitungan tegangan yang diterima
oleh photoresistor sesuai dengan resistansi yang ada. Lalu ada variabel float persen
untuk maping seberapa besar presentase tegangan yang berhasil dilewati dan
besarnya tergantung dari masukan analog dengan range 0-1023, keluarannya 0-100.
Selanjutnya untuk Serial.print digunakan untuk mengecek hasil dari variabel yang
sudah dideklarasikan pada void loop (). Yang terakhir diberikan perintah

59
delay(1000) supaya update keluaran tidak terlalu cepat agar kita bisa melihat
perbandingannya.
4.5.2 Percobaan 2

Gambar 4.24 hasil percobaan 2


Komponen yang digunakan pada percobaan kedua yakni Arduino Uno,
Breadboard, Resistor, LED, dan Flex Sensor. Sama seperti percoban pertama tadi
namun ditambahkan LED untuk mengecek keluarannya. Dan juga flex sensor
sebagai masukkannya yang dimana bekerja sesuai dengan pembacaan tekukan
sudutnya. Ketika resistansi dari flex sensor paling kecil yaitu di 0o, maka nilai
keluarannya maksimal sehingga nyala LED sangat terang. Kemudian apabila flex
sensor dibengkokkan maka nilai resistansinya akan semakin besar sehingga nyala
LED akan semakin redup sampai pada 180o maka LED akan mati.
Pada source code dideklarasikan 2 konstanta integer yaitu flexPin= A2 dan
ledPin=9. Kemudian terdapat 2 variabel integer nilai dan value. Lalu pada void setup ()
memulai serial dengan Serial.begin(9600). PinMode(ledPin, OUTPUT) untuk men set pin
9 sebagai output. Selanjutnya pada bagian void loop () untuk variabel value digunakan
untuk pembacaan dari flexPin. Pada nilai=map(value, 59, 256, 0, 255) dibuat maping
menggunakan parameter value yang di mana pembacaan dari nilai flex sensor
dengan range masukan 59-256 dan range keluaran 0-255. Untuk analogWrite(ledPin,
nilai) ini berarti memberikan output pada LED senilai variabel nilai. Setelah itu
untuk mendiagnosa apakah sudah sesuai konsep digunakan perintah Serial.print().
Lalu perintah delay(1000) digunakan untuk memberi jarak update.

60
4.6 Tugas
Pada tugas modul 3 akan dibuat sebuah rangkaian dengan alat antara lain,
Sensor Cahaya, Sensor Tekukan, LED RGB, dan Arduino Uno. Rangkaian ini akan
bekerja dengan menghidupkan lampu LED RGB dengan warna merah, hijau, atau
kuning, sesuai dengan kondisi tertentu. Kondisi yang dimaksud adalah ketika
masukan pada Sensor Cahaya atau Sensor Tekukan mencapai nilai tertentu, maka
lampu akan hidup sesuai dengan nilai tersebut. Berikut di bawah ini adalah kode
konfigurasi rangkaian.
const int flexPin = A2;
const int inPin = A1;
const int redPin = 11;
const int bluePin = 9;
const int greenPin = 10;
//Variabel flexsensor
int nilai;
int value;

//Variabel photoresistor
int valueP;
int volt;

void setup()
{
Serial.begin(9600);
pinMode(inPin, INPUT);
pinMode(redPin, OUTPUT);
pinMode(bluePin, OUTPUT);
pinMode(greenPin, OUTPUT);
}

void loop()
{
valueP = analogRead(inPin);
value = analogRead(flexPin);

Serial.print("ValueP: ");
Serial.println(valueP);
Serial.print("Value: ");
Serial.println(value);

//kondisi hidup mati warna merah


if(valueP>=500){
analogWrite(redPin, 255);
}else if(valueP<500){
analogWrite(redPin, 0);
}

//kondisi hidup mati warna hijau


if(value>=500){
analogWrite(greenPin,255);

61
}else if(value<500){
analogWrite(greenPin,0);
}

//jika merah dan hijau hidup maka kuning akan hidup

delay(1000);

}
Pada kode di atas, kondisi dan tanggapan dari lampu LED RGB diuraikan
menjadi seperti di bawah ini,
 Jika nilai masukan analog dari sensor cahaya lebih sama dengan 500, maka
warna merah yang akan hidup.
 Jika nilai masukan analog dari sensor tekukan lebih sama dengan 500, maka
warna hijau yang akan hidup.
 Jika nilai masukan analog dari sensor cahaya dan tekukan lebih sama dengan
500, maka warna kuning yang akan hidup.

Gambar 4.25 LED RGB berwarna hijau


Pada gambar 4.25 dapat diperhatikan bahwa LED RGB menyala warna hijau
karena masukan dari sensor tekukan bernilai 511.

62
Gambar 4.26 berwarna merah
Pada gambar 4.26 nilai masukan analog sensor tekukan diubah menjadi 159
dan sensor cahaya menjadi 929, menghasilkan LED menyala warna merah.

Gambar 4.27 berwarna kuning


Pada gambar 4.27 nilai masukan analog sensor tekukan diubah menjadi 511
dan sensor cahaya menjadi 929, menghasilkan LED menyala warna kuning.
(Sumber: https://www.tinkercad.com/things/1ju4txx2ySO)

63
4.7 Kesimpulan
1. Photoresistor merupakan keluaran yang bekerja sesuai dengan keadaan
cahaya disekitarnya
2. Nilai resistansi photoresistor bergantung pada intensitas cahaya , jika
intensitas cahaya semakin tinggi maka nilai resistansinya semakin kecil,
jika intensitas cahaya semakin rendah maka nilai resistansinya semakin
besar.
3. Variable inPin untuk mendeklarasikan pin A1 yang terhubung pada
terminal 1 pada photoresistor.
4. Variable float persen digunakan untuk maping seberapa besar
presentasi tegangan tergantung dari masukan analog.
5. Serial print digunakan untuk mengecek hasil dari variable yang sudah
dideklarasikan.
6. Flex sensor digunakan sebagai masukan dimana dia akan bekerja sesuai
tekukannya.
7. Cara kerja flex sensor yaitu ketika resistansi flex sensor paling kecil yaitu
di 0o, maka nilai keluarannya maksimal sehingga nyala LED sangat terang
dan jika flex sensor dibengkokkan maka nilai resistansinya akan semakin
besar sehingga nyala LED akan semakin redup sampai pada 180o maka
LED akan mati.

64
BAB V
SENSOR DETEKSI OBJEK
5.1 Tujuan

1. Praktikan dapat memahami fungsi dari sensor deteksi objek

2. Praktikan dapat memahami prinsip kerja sensor deteksi objek

3. Praktikan dapat menjelaskan prinsip kerja sensor deteksi objek

4. Praktikan dapat mengimplementasikan pengkodean pada Arduino

5. Praktikan dapat mengimplementasikan sensor deteksi objek pada sebuah


rangkaian

6. Praktikan dapat membuat rangkaian sederhana menggunakan Arduino

65
5.2 Alat dan Bahan
5.2.1 Tinkercad

Gambar 5.1 TinkerCad


TinkerCad adalah salah satu platform berupa web, yang menyediakan
sarana bagi pengguna untuk mempelajari, merangkai model 3D dan rangkaian
elektronika, menyusun codeblock, serta menguji rangkaian yang telah dibuat
dalam bentuk simulasi.
Tinkercad merupakan website besutan Autodesk yang merupakan
produsen aplikasi-aplikasi desain grafis seperti AutoCAD yang sudah sangat
popular dan menjadi standar industri manapun.
Pada praktikum ini, tinkercad digunakan sebagai simulator untuk
menyusun dan menguji coba rangkaian.
5.2.2 Board Arduino Uno

Gambar 5.2 Arduino Uno


Arduino Uno adalah papan pengembangan (development board)
mikrokontroler yang berbasis chip ATmega328P. Arduino disebut sebgai
papan pengembangan karena board ini berfungsi sebagai media prototyping
sirkuit mikrokontroler.

66
Arduino Uno berbasis IC ATmega328P, memiliki 14 pin I/O digital
(6 pin PWM), 6 input analog, kristal kuarsa 16 MHz, koneksi USB, colokan
listrik, header ICSP dan tombol reset.
Pada praktikum ini, board arduino uno digunakan sebagai komponen
utama peyusun rangkaian elektronika, menerima masukan dan menjalankan
program yang telah diberikan.

5.2.3 Sensor PING

Gambar 5.3 Sensor PING


Sensor PING merupakan sensor ultrasonik yang berfungsi untuk
mengubah besaran bunyi menjadi besaran listrk dan sebaliknya. Sensor PING
dapat mendeteksi jarak dari suatu obyek dengan cara memancarkan
gelombang ultrasonik dengan frekuensi 40 KHz dan kemudian mendeteksi
pantulannya.
Sensor ini dapat mengukur jarak antara 3 cm sampai 300 cm. Keluaran
dari sensor ini berupa pulsa yang lebarnya merepresentasikan jarak. Lebar
pulsanya bervariasi dari 115 us sampai 18,5 ms.
Pada praktikum ini, sensor PING digunakan untuk mengukur jarak
dari suatu objek yang berada pada jangkauan gelombang ultrasonik yang
dipancarkan oleh sensor ini.

67
5.2.4 Sensor Jarak PING (HC-SR04)

Gambar 5.4 Sensor HC-SR04


HC-SR04 merupakan sebuah sensor ultrasonik yang berfungsi untuk
besaran fisis (bunyi) menjadi besaran listrik dan sebaliknya. Cara kerja sensor
ultrasonik ini didasarkan pada prinsip dari pantulan suatu gelombang suara
sehingga dapat dipakai untuk menafsirkan eksistensi (jarak) suatu benda
dengan frekuensi tertentu. Disebut sebagai sensor ultrasonik karena sensor ini
menggunakan gelombang ultrasonik (bunyi ultrasonik).
Pada praktikum ini, sensor HC-SR04 memiliki fungsi yang mirip
dengan sensor PING, yaitu untuk mengukur jarak dari suatu objek yang
berada dalam jangkauan bunyi ultrasonik yang dipancarkan oleh sensor ini.
5.2.5 LED

Gambar 5.5 LED


Light Emitting Diode atau sering disingkat dengan LED adalah
komponen elektronika yang dapat memancarkan cahaya monokromatik
ketika diberikan tegangan maju. LED merupakan keluarga Dioda yang terbuat
dari bahan semikonduktor. Warna-warna Cahaya yang dipancarkan oleh LED
tergantung pada jenis bahan semikonduktor yang dipergunakannya. LED juga
dapat memancarkan sinar inframerah yang tidak tampak oleh mata seperti

68
yang sering kita jumpai pada Remote Control TV ataupun Remote Control
perangkat elektronik lainnya.
Pada praktikum ini, LED digunakan sebagai indikator yang
menunjukkan sumber energi panas yang ditangkap oleh PIR sensor.
5.2.6 Arduino IDE

Gambar 5.6 Arduino IDE


Arduino IDE (Integrated Development Environment) adalah software
yang di gunakan untuk membuat program di arduino atau dengan kata lain
Arduino IDE digunakan sebagai text editor, compiler, dan uploader untuk
menyusun program board Arduino. Arduino IDE bisa di-download secara
gratis di website resmi Arduino IDE dan dapat digunakan untuk semua
keluarga board arduino, kecuali board arduino yang tidak menggunakan
mikrokontroler seri AVR.
Pada praktikum ini, Arduino IDE digunakan sebagai text editor yang
digunakan untuk menuliskan kode program yang akan dijalankan pada
percobaan-percobaan yang ada di dalam praktikum.

69
5.2.7 Breadboard

Gambar 5.7 Breadboard


Breadboard merupakan sebuah papan yang berfungsi untuk
merancang sebuah elektronik sederhana. breadboard digunakan sebagai
media untuk membuat prototype, dan atau uji coba.
Salah satu keuntungan menggunakan breadboard adalah komponen-
komponen yang dirakit tidak akan mengalami kerusakan, sehingga dapat
digunakan lagi pada model rangkaian yang lain.
Pada praktikum ini, breadboard digunakan sebagai media wiring
untuk menghubungkan tiap komponen elektronika.
5.2.8 Kabel Jumper

Gambar 5.8 kabel jumper


Kabel jumper adalah kabel penghubung yang digunakan dalam proses
wiring antar komponen. Kabel wiring lebih sering digunakan bersamaaan
dengan breadboard karena kabel wiring mempermudah penyusunan dan
pembongkaran rangkaian.
Dari bentuk ujung kabelnya, kabel jumper dapat dibedakan menjadi
Male dan Female. Male ditunjukkan oleh ujung berupa batang konduktor

70
yang dapat ditancapkan, sedangkan female ditunjukkan oleh ujung berupa
lubang soket.
Pada praktikum ini, kabel jumper digunakan sebagai penghubung
antar komponen pada rangkaian dengan bantuan breadboard.

71
5.3 Dasar Teori
5.3.1 Board Arduino Uno

Gambar 5.9 arduino uno


Arduino Uno adalah board mikrokontroler berbasis ATmega328
(datasheet). Memiliki 14 pin input dari output digital dimana 6 pin input
tersebut dapat digunakan sebagai output PWM dan 6 pin input analog, 16
MHz osilator kristal, koneksi USB, jack power, ICSP header, dan tombol
reset. Untuk mendukung mikrokontroler agar dapat digunakan, cukup hanya
menghubungkan Board Arduino Uno ke komputer dengan menggunakan
kabel USB atau listrik dengan AC yang-ke adaptor-DC atau baterai untuk
menjalankannya. Setiap 14 pin digital pada arduino uno dapat digunakan
sebagai input dan output, menggunakan fungsi pinMode(), digitalwrite(), dan
digitalRead(). Fungsi fungsi tersebut beroperasi di tegangan 5 volt, Setiap pin
dapat memberikan atau menerima suatu arus maksimum 40 mA dan
mempunyai sebuah resistor pull-up (terputus secara default) 20-50 kOhm.
Arduino Uno dapat berkomunikasi dengan mikrokontroler lain
menggunakan UART TTL sebagai komunikasi serial yang tersedia pada pin
digital 0 (RX) dan 1 (TX). Power supply Arduino Uno menggunakan adaptop
DC yang terhubung melalui jack adaptor pada koneksi port input supply.
Arduino Uno memiliki 32 flash memory4 untuk menyimpan kode dan 2KB
yang di gunakan untuk bootloader, Arduino Uno juga memiliki 2 KB untuk
SRAM dan 1 KB untuk EEPROM.
(sumber : https://eprints.akakom.ac.id/4940/3/3_143310018_BAB_II.pdf)

72
5.3.2 Arduino IDE

Gambar 5.10 Arduino IDE

Arduino IDE (Integrated Development Environment) adalah software


yang di gunakan untuk memprogram di arduino. Arduino IDE ini berguna
sebagai text editor untuk membuat, mengedit, dan juga mevalidasi kode
program. bisa juga digunakan untuk meng-upload ke board Arduino. pada
Arduino IDE. Pada bagian keterangan aplikasi memberikan pesan balik saat
menyimpan dan mengekspor serta sebagai tempat menampilkan
kesalahan. Konsol log menampilkan teks log dari aktifitas Arduino IDE,
termasuk pesan kesalahan yang lengkap dan informasi lainnya. Pojok kanan
bawah menampilkan port serial yang di gunakan. Tombol toolbar terdapat

73
ikon tombol pintas untuk memverifikasi dan meng-upload program,
membuat, membuka, dan menyimpan sketch, dan membuka monitor serial.
Pada arduino bahasa pemrograman yang digunakan adalah bahasa
C/C++. Program pada Arduino terbagi menjadi tiga bagian utama
yaitu Structure, Values (berisi variable dan konstantata) dan yang
terakhir function. Structure-struktur kode pada arduino yaitu berisi
fungsi setup() dan loop().
a. Setup()
fungsi ini dipanggil pertama kali ketika menjalankan sketch.
digunakan sebagai tempat inisialisai variable, pin mode,
penggunaan library dan lainnya. fungsi ini dijalankan sekali
ketika board dinyalakan atau di reset.
b. loop()
Setelah membuat fungsi setup() sebagai tempat inisialisai variabel
dan menetapkan nilai maka selanjutnya fungsi loop() seperti namanya fungsi
ini akan melakukan perulangan berturu-turut, memungkina program untuk
mengubah dan menanggapi. digunakan untuk mengontrol board Arduino.
c. Values.
Berisi variable atau konstanta sesuai dengan type data yang didukung
oleh Arduino.
d. Function.
Segmentasi kode ke fungsi memungkinkan programmer untuk
membuat potongan-potongan modular kode yang melakukan tugas yang
terdefinisi dan kemudian kembali ke asal kode dari mana fungsi itu
“dipanggil”. Umumnya menggunakan fungsi adalah ketika salah satu
kebutuhan untuk melakukan tindakan yang sama beberapa kali dalam sebuah
program.
(Sumber : http://allgoblog.com/apa-itu-arduino-ide-dan-arduino-sketch/)

74
5.3.3 Sensor PING

Gambar 5.11 Sensor PING

Sensor PING merupakan sensor ultrasonik yang dapat mendeteksi


jarak obyek dengan cara memancarkan gelombang ultrasonik dengan
frekuensi 40 KHz dan kemudian mendeteksi pantulannya.

Sensor ini dapat mengukur jarak antara 3 cm sampai 300 cm. keluaran
dari sensor ini berupa pulsa yang lebarnya merepresentasikan jarak. Lebar
pulsanya bervariasi dari 115 uS sampai 18,5 mS. Pada dasanya, Ping))) terdiri
dari sebuah chip pembangkit sinyal 40KHz, sebuah speaker ultrasonik dan
sebuah mikropon ultrasonik. Speaker ultrasonik mengubah sinyal 40 KHz
menjadi suara sementara mikropon ultrasonik berfungsi untuk mendeteksi
pantulan suaranya.

Pin signal dapat langsung dihubungkan dengan mikrokontroler tanpa


tambahan komponen apapun. Ping hanya akan mengirimkan suara ultrasonik
ketika ada pulsa trigger dari mikrokontroler (Pulsa high selama 5uS). Suara
ultrasonik dengan frekuensi sebesar 40KHz akan dipancarkan selama 200uS.
Suara ini akan merambat di udara dengan kecepatan 344.424m/detik (atau
1cm setiap 29.034uS), mengenai objek untuk kemudian terpantul kembali ke
Ping. Selama menunggu pantulan, Ping akan menghasilkan sebuah pulsa.
Pulsa ini akan berhenti (low) ketika suara pantulan terdeteksi oleh Ping. Oleh
karena itulah lebar pulsa tersebut dapat merepresentasikan jarak antara Ping
dengan objek.

75
(Sumber : https://fahmizaleeits.wordpress.com/tag/cara-kerja-sensor-ping/)

5.3.4 Sensor HC-SR04

Gambar 5.12 Sensor HC-SR04


HC-SR04 adalah sebuah modul sensor ultrasonik yang biasanya digunakan
untuk alat pengukur jarak. Pada artikel ini kita akan mempelajari bagaimana cara
kerja dari sensor HC-SR04 dan berikut contoh programnya dengan menggunakan
Arduino.
Pada HC-SR04 terdapat sepasang transducer ultrasonik yang satu berfungsi
sebagai transmitter yang bertugas untuk mengubah sinyal elektrik menjadi sinyal
pulsa gelombang suara ultrasonik dengan frekuensi 40KHz, dan satunya berfungsi
sebagai receiver yang bertugas untuk menerima sinyal gelombang suara ultrasonik.

(Sumber:https://www.nn-digital.com/blog/2019/07/31/cara-kerja-sensor-hc-sr04-dan-contoh-
program-dengan-arduino/)

76
5.4 Langkah Kerja
5.4.1 Percobaan 1
1. Buka webside Tinkercad

Gambar 5.13 Tinkercad

2. Create New Circuit pada bagian Circuit

Gambar 5.14 create new circuit


Gambar 5. 1 Gambar Create New Circuit

3. Beri nama project dengan HC-SR04

Gambar 5.15 nama project


4. Masukkan komponen yang dibutuhkan
 Siapkan Semua alat dan bahan yang dibutuhkan
 Sambungkan Vcc (5V) pada board arduino dengan pin Vcc pada sensor
 Sambungkan Ground (GND) pada board arduino dengan pin ground pada
sensor
 Sambungkan pin digital 9 pada board arduino dengan pin trig pada sensor
 Sambungkan pin digital 10 pada board arduino dengan pin echo pada
sensor

77
Gambar 5.16 component basic

Gambar 5.17 rangkaian percobaan 1

5. Masukkan Source Code


const int trigPin = 9;
const int echoPin = 10;
long duration;
int distance;

void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
Serial.begin(9600);
}

void loop() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance= duration*0.034/2;
Serial.print("Distance: ");
Serial.print(distance);
Serial.println(" cm");
}
5.4.2 Percobaan 2

78
1. Buka webside Tinkercad

Gambar 5.18 Tinkercad

2. Create New Circuit pada bagian Circuit

Gambar 5.19 create new circuit

3. Beri nama project dengan Sensor PIR

Gambar 5.20 nama project

4. Masukkan komponen yang dibutuhkan


 Siapkan Semua alat dan bahan yang dibutuhkan
 Sambungkan pin Digital pada board arduino dengan pin data output pada
sensor(Paling kiri Pin Signal)
 Sambungkan Vcc (5V) pada board arduino dengan pin Vcc pada sensor
 Sambungkan Ground (GND) pada board arduino dengan pin ground pada
sensor
 Sambungkan PIN LED RGB Sesuai dengan gambar dibawah

Gambar 5.21 component basic

79
Gambar 5.22 rangkaian percobaan 3

5. Masukkan Source Code


Tabel 5. 2 Source Code Sensor PIR
void setup()
{
Serial.begin(9600);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
attachInterrupt(digitalPinToInterrupt(2), callint0,
CHANGE);
attachInterrupt(digitalPinToInterrupt(3), callint1,
CHANGE);
}

void loop()
{
digitalWrite(6, HIGH);
}
void callint0(){
if (digitalRead(2)){
digitalWrite(4, HIGH);
Serial.println("int0 nyala");
}
else{
digitalWrite(4, LOW);
Serial.println("int0 mati");
}
}

void callint1(){
if (digitalRead(3)){
digitalWrite(5, HIGH); Serial.println("int1 nyala");
}
else{
digitalWrite(5, LOW);
Serial.println("int1 mati");
}

80
}

5.5 Hasil dan Analisa Percobaan


5.5.1 Percobaan 1

Gambar 5.23 hasil percobaan 1

Komponen yang digunakan pada percobaan ini yaitu Arduino Uno,


Breadboard, dan sensor HCSR04. Sensor HCSR04 digunakan sebagai sebagai
pembaca gerak yang berada di depan sensor. Sensor kiri atau Transmitter akan
memancarkan sinyal ultrasonik yang akan mendeteksi benda di depan, kemudian
sinyal akan kembali diterima oleh sensor kanan atau Reciever. Apabila waktu sinyal
diterima lama maka benda di depan sensor dinyatakan jauh, dan sebaliknya jika
sinyal diterima cepat maka benda di depan sensor dinyatakan dekat.

Pada source code pertama dideklarasikan pin yang digunakan dalam


rangkaian. Terdapat trigPin = 9 yaitu pin trigger yang terhubung pada pin 9
arduino uno, echoPin = 10 yaitu pin echo yang terhubung ke pin 10 arduino uno.
Terdapat variabel duration untuk menyimpan durasi antara pengiriman dan

81
penerimaan gelombang ultrasonik. Dideklarasikan juga variabel distance
dengan tipe data integer yang digunakan untuk menyimpan jarak yang terbaca
antara sensor dengan benda. Lalu pada bagian void setup () mendefinisikan
mode pinnya, yang pertama pinMode(trigPin, OUTPUT) yakni difungsikan
sebagai output, yang kedua pinMode(echoPin, INPUT) yakni difungsikan sebagai
input. Kemudian untuk inisiasi pada serial monitor digunakan perintah
Serial.begin(9600). Selanjutnya pada void loop () yang pertama terdapat
digitalWrite(trigPin, LOW) yang berarti di awal pin trigger dari HCSR
diberikan nilai low, setelah itu diberi delay. Lalu digitalWrite(trigPin, HIGH)
yang berarti diberikan nilai high yaitu pin HCSR akan mengirimkan gelombang
ultrasonik, dan diberi delay lagi. Kemudian di set low lagi. Pada duration =
pulseIn(echoPin, HIGH) yaitu berdasarkan gelombang masukan yang diperoleh
dari pin echo. Lalu diberikan perintah distance= duration*0.034/2 bahwa
distance dihitung dengan rumus pembacaan durasi waktu dikalikan dengan
kecepatan bunyi dikonversikan ke cm/s jadinya hanya tinggal 0,034 cm/s lalu
dibagi 2 karena gelombang bolak balik yakni pengiriman dan penerimaan. Yang
terakhir Serial.print untuk menampilkan pada monitor agar kita bisa mengamati.

82
5.5.2 Percobaan 2

Gambar 5.24 hasil percobaan 3

Gambar 5.25 hasil percobaan 2 ketika membaca sensor


Komponen yang digunakan yakniArduino Uno, Breadboard, Resistor,
LED RGB, dan Sensor PIR. Sensor PIR digunakan sebagai input dan lampu
LED RGB sebagai output. Sensor PIR membaca sinar inframerah pasif yang
dimiliki benda hidup atau mati yang berada di depannya. Digunakan 2 buah
sensor PIR, jika sensor PIR kiri mendeteksi sinar inframerah maka LED akan
menyala warna biru, dan jika sensor PIR kanan mendeteksi sinar inframerah

83
maka LED akan menyala warna kuning. Sedangkan apabila kedua sensor PIR
mendeteksi sinar inframerah bersamaan maka LED akan menyala warna
putih, dan jika kedua sensor PIR tidak mendeteksi sinar inframerah maka LED
akan menyala warna hijau.

84
5.6 Tugas
Pada tugas Bab 5 akan dibuat sebuah rangkaian dengan alat antara
lain, Sensor HCSR, LED RGB, dan Arduino Uno. Rangkaian ini akan bekerja
dengan mendeteksi objek sekitar Sensor dan LED RGB akan bertindak sesuai
kondisi dari posisi objek.
// C++ code
//
const int trigPin = 6;
const int echoPin = 5;
const int redPin = 11;
const int bluePin = 10;
const int greenPin = 9;

long duration;
int distance;

void setup()
{
Serial.begin(9600);
pinMode(redPin, OUTPUT);
pinMode(bluePin, OUTPUT);
pinMode(greenPin, OUTPUT);

pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
}

void loop()
{
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);

delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance= duration*0.034/2; //(cm/mikrosekon)

if(distance < 50){


analogWrite(redPin, 255);
analogWrite(bluePin, 0);
analogWrite(greenPin, 0);
}else if(50 <= distance && distance <=100){
analogWrite(redPin, 0);
analogWrite(bluePin, 255);
analogWrite(greenPin, 0);
}else if(distance > 100){
analogWrite(redPin, 0);
analogWrite(bluePin, 0);
analogWrite(greenPin, 255);
}

85
Serial.print("Distance: ");
Serial.print(distance);
Serial.println(" cm");
}
Pada kode di atas, kondisi dan tanggapan dari lampu LED RGB
diuraikan menjadi seperti di bawah ini,
 Jika objek berada kurang dari 50cm dari sensor, maka LED akan menyala
warna merah.
 Jika objek berada di antara 50cm sampai 100cm dari sensor, maka LED
akan menyala warna biru.
 Jika objek berada lebih dari 100cm sensor, maka LED akan menyala
warna hijau.

Gambar 5.26 LED RGB berwarna hijau


Pada gambar 5.56 dapat diperhatikan bahwa LED RGB menyala warna
hijau karena objek berada 130cm dari sensor.

86
Gambar 5.27 berwarna biru
Pada gambar 5.27 objek berada di jarak 75cm dari sensor, menghasilkan
LED menyala warna biru.

Gambar 5.28 berwarna merah


Pada gambar 5.28 objek berada di jarak 40cm dari sensor, menghasilkan
LED menyala warna merah.
(Sumber: https://www.tinkercad.com/things/1ju4txx2ySO)

87
5.7 Kesimpulan

1. Sensor PIR dapat membaca sinar inframerah pasif yang dimiliki oleh
benda hidup maupun mati yang berada di depannya.

2. Sensor HCSR04 digunakan sebagai pembaca pergerakan.

3. Cara kerja sensor PING yaitu memancarkan sinyal ultrasonik disekitarnya


dan sinyal yang terpantulkan kembali akan di tangkap oleh sensor lalu
sensor akan menghitung interval waktu pengiriman dan penerimaan
gelombang.

4. variabel duration digunakan untuk menyimpan durasi pengiriman dan


penerimaan gelombang ultrasonic pada sensor PING

5. variabel distance digunakan untuk menyimpan jarak yang terbaca


antara sensor dengan benda yang terdeteksi.

6. Perintah distance= duration merupakan perintah dimana jarak dihitung


dengan rumus pembacaan durasi waktu dikalikan dengan kecepatan bunyi
lalu dikonversikan kedalam cm/s

7. Perintah Serial.print digunakan untuk menampilkan hasil akhir dari


pemrosesan pada rangkaian agar dapat kita amati.

88
BAB VI
AKTUATOR MOTOR SERVO

6.1 Tujuan
1. Praktikan dapat memahami dan menjelaskan prinsip kerja motor servo
2. Praktikan dapat membuat rangkaian sederhana menggunakan Arduino
3. Praktikan dapat melakukan implementasi motor servo kedalam rangkaian
4. Praktikan dapat memahami fungsi setiap komponen yang digunakan pada
rangkaian
5. Praktikan dapat memahami dan melakukan pengkodean pada Arduino
6. Praktikan dapat membangkitkan sinyal PWM yang berfungsi untuk mengatur
sudut motor servo

89
6.2 Alat dan Bahan
6.2.1 Laptop/PC

Gambar 6.1 Laptop


Laptop atau biasa kita sebut sebagai PC (Personal Computer) merupakan
suatu perangkat yang digunakan untuk membantu tugas-tugas manusia terutama
dalam hal digital. Laptop/PC adalah peralatan elektronik yang digunakan untuk
menjalankan tinkercad, sebagai media simulasi dan penyusun rangkaian elektronik

6.2.2 TinkerCad

Gambar 6.2 Tinkercad


TinkerCad adalah salah satu platform berupa web, yang menyediakan sarana
bagi pengguna untuk mempelajari, merangkai model 3D dan rangkaian elektronika,
menyusun codeblock, serta menguji rangkaian yang telah dibuat dalam bentuk
simulasi.
Tinkercad merupakan website besutan Autodesk yang merupakan produsen
aplikasi-aplikasi desain grafis seperti AutoCAD yang sudah sangat popular dan
menjadi standar industri manapun.
Pada praktikum ini, tinkercad digunakan sebagai simulator untuk menyusun
dan menguji coba rangkaian.

90
6.2.3 Arduino UNO

Gambar 6.3 Arduino Uno


Arduino UNO adalah papan pengembangan (development board)
mikrokontroler yang berbasis chip ATmega328P. Arduino disebut sebgai papan
pengembangan karena board ini berfungsi sebagai media prototyping sirkuit
mikrokontroler.
Arduino UNO berbasis IC ATmega328P, memiliki 14 pin I/O digital (6 pin
PWM), 6 input analog, kristal kuarsa 16 MHz, koneksi USB, colokan listrik, header
ICSP dan tombol reset.
Pada praktikum ini, board arduino UNO digunakan sebagai komponen
utama peyusun rangkaian elektronika, menerima masukan dan menjalankan
program yang telah diberikan.

6.2.4 Breadboard

Gambar 6.4 Breadboard

91
Breadboard merupakan sebuah papan yang berfungsi untuk merancang
sebuah elektronik sederhana. breadboard digunakan sebagai media untuk membuat
prototype, dan atau uji coba.
Salah satu keuntungan menggunakan breadboard adalah komponen-
komponen yang dirakit tidak akan mengalami kerusakan, sehingga dapat digunakan
lagi pada model rangkaian yang lain.
Pada praktikum ini, breadboard digunakan sebagai media wiring untuk
menghubungkan tiap komponen elektronika.
6.2.5 Motor Servo

Gambar 6.5 Motor Servo


Motor Servo merupakan motor listrik dengan menggunakan sistem closed
loop. Sistem tersebut digunakan untuk mengendalikan akselerasi dan kecepatan
pada sebuah motor listrik dengan keakuratan yang tinggi.

6.2.6 Potensiometer

Gambar 6.6 Potensiometer


Potensiometer (POT) adalah salah satu jenis Resistor yang Nilai
Resistansinya dapat diatur sesuai dengan kebutuhan Rangkaian Elektronika
ataupun kebutuhan pemakainya. Potensiometer merupakan Keluarga Resistor yang

92
tergolong dalam Kategori Variable Resistor. Secara struktur, Potensiometer terdiri
dari 3 kaki Terminal dengan sebuah shaft atau tuas yang berfungsi sebagai
pengaturnya.

6.2.7 Kabel Jumper

Gambar 6.7 kabel jumper


Kabel jumper adalah kabel penghubung yang digunakan dalam proses
wiring antar komponen. Kabel wiring lebih sering digunakan bersamaaan dengan
breadboard karena kabel wiring mempermudah penyusunan dan pembongkaran
rangkaian.
Dari bentuk ujung kabelnya, kabel jumper dapat dibedakan menjadi Male
dan Female. Male ditunjukkan oleh ujung berupa batang konduktor yang dapat
ditancapkan, sedangkan female ditunjukkan oleh ujung berupa lubang soket.
Pada praktikum ini, kabel jumper digunakan sebagai penghubung antar
komponen pada rangkaian dengan bantuan breadboard.

93
6.3 Dasar Teori
6.3.1 TinkerCad

Gambar 6.8 Tinkercad


Tinkercad buatan AutoDesk, adalah simulator elektronika berbasis web.
Tinkercad ini menyediakan komponen Arduino UNO yang bisa diprogram
langsung. Autodesk, Inc. adalah perusahaan perangkat lunak multinasional
Amerika yang membuat perangkat lunak untuk industri arsitektur, teknik,
konstruksi, manufaktur, media, dan hiburan. Autodesk berkantor pusat di San
Rafael, California, dan menampilkan galeri karya pelanggannya di gedung San
Fransisco. Perusahaan ini memiliki kantor di seluruh dunia, dengan lokasi AS di
California Utara, Oregon, Colorado, Texas dan di New England di New Hampshire
dan Massachusetts, serta lokasi Kanada di Ontario, Quebec, dan Alberta.
(Sumber: http://raywandaaffandi.blogspot.com)
6.3.2 Arduino

Gambar 6.9 Arduino


Arduino adalah kit elektronik atau papan rangkaian elektronik open sorce
yang di dalamnya terdapat komponen utama, yaitu sebuah chip mikrokontroler

94
dengan jenis AVR dari perusahaan Atmel. Mikrokontroler itu sendiri adalah chip
atau IC (integrated circuit) yang bisa diprogram menggunakan komputer. Tujuan
menanamkan program pada mikrokontroler adalah agar rangkaian elektronik dapat
membaca input, memproses input tersebut dan kemudian menghasilkan output
sesuai yang diinginkan. Jadi mikrokontroler bertugas sebagai „otak‟ yang
mengendalikan input, proses dan output sebuah rangkaian elektronik. Salah satu
jenis arduino yang sering digunakan yaitu jenis Arduino Uno. Secara umu m
arduino terdiri dari dua bagian, yaitu:
1. Hardware berupa papan input/output (I/O) yang open source.
2. Software arduino yang juga open source, meliputi software arduino IDE untuk
menulis program dan driver untuk koneksi dengan komputer.
(Sumber: http://repositori.unsil.ac.id)
6.3.3 Motor Servo

Gambar 6.10 motor servo


Motor servo adalah akuator putar yang dirancang dengan sistem umpan balik
loop tertutup (servo) sehingga dapat di set-up atau di atur untuk menentukan dan
memastikan posisi sudut dari poros output motor. motor servo merupakan
perangkat yang terdiri dari motor DC, serangkaian gear, rangkaian kontrol dan
potensiometer. Serangkaian gear yang melekat pada poros motor DC akan
memperlambat putaran poros dan meningkatkan torsi motor servo, sedangkan
potensiometer dengan perubahan resistansinya saat motor berputar berfungsi
sebagai penentu batas posisi putaran poros motor servo.
Penggunaan sistem kontrol loop tertutup pada motor servo berguna untuk
mengontrol gerakan dan posisi akhir dari poros motor servo. Penjelasan
sederhananya begini, posisi poros output akan di sensor untuk mengetahui posisi

95
poros sudah tepat seperti yang di inginkan atau belum, dan jika belum, maka kontrol
input akan mengirim sinyal kendali untuk membuat posisi poros tersebut tepat pada
posisi yang diinginkan. Untuk lebih jelasnya mengenai sistem kontrol loop tertutup,
perhatikan contoh sederhana beberapa aplikasi lain dari sistem kontrol loop
tertutup, seperti penyetelan suhu pada AC, kulkas, setrika dan lain sebagainya.
Ada dua jenis motor servo yaitu servo AC dan DC yang dimana motor servo
AC menangani arus yang tinggi sedangkan motor servo DC digunakan pada
rangkaian dengan tegangan/ arus yang kecil. Motor servo juga di bedakan
berdasarkan rotasi nya , yaitu motor servo rotation 180⁰ dan servo rotation
continuous.
(Sumber : http://trikueni-desain-sistem.blogspot.com)

96
6.4 Langkah Kerja
6.4.1 Percobaan 1
1. Buka webside Tinkercad

Gambar 6.11 tinkercad

2. Create New Circuit pada bagian Circuit

Gambar 6.12 create new circuit

3. Beri nama project dengan Modul5_perc1

Gambar 6.13 nama proyek

4. Masukkan komponen yang dibutuhkan

Gambar 6.14 komponen dasar

5. Rangkaian percobaan 1

97
Gambar 6.15 rangkaian percobaan 1

6. Masukkan Source Code


#include <Servo.h>
int pos = 0;
Servo myservo;
void setup()
{
Serial.begin(9600);
//servo di pin 9, posisi minimal 500 (0 derajat), posisi max 2500
(180 derajat)
myservo.attach(9, 500, 2500);
}
void loop()
{
for (pos = 0; pos <= 180; pos += 1) {
myservo.write(pos);
Serial.println(pos);
delay(15); // Wait for 15 millisecond(s)
}
delay(1000);
for (pos = 180; pos >= 0; pos -= 1) {
myservo.write(pos);
Serial.println(pos);
delay(15); // Wait for 15 millisecond(s)
}26.
}
7. Amati hasil

6.4.2 Percobaan 2
1. Buka webside Tinkercad

98
Gambar 6.16 tinkercad

2. Create New Circuit pada bagian Circuit

Gambar 6.17 membuat sirkuit baru

3. Beri nama project dengan Modul5_perc2

Gambar 6.18 nama proyek

4. Masukkan komponen yang dibutuhkan

Gambar 6.19 komponen dasar


5. Rangkaian percobaan 2

99
Gambar 6.20 rangkaian percobaan 2

6. Masukkan Source Code


#include <Servo.h>

Servo myservo;
int value;
double angle;
const int pin_servo = 13;
const int pin_potensio = A0;

void setup()
{
Serial.begin(9600);
myservo.attach(pin_servo);
}

void loop()
{
value = analogRead(pin_potensio);
Serial.println(value);
angle = map(value, 0, 1023, 0, 180);
Serial.println(angle);
myservo.write(angle);
delay(15);
}
7. Amati hasil

100
6.5 Hasil dan Analisa Percobaan
6.5.1 Percobaan 1

Gambar 6.21 hasil rangkaian percobaan 1


Pada percobaan pertama dibuat rangkaian menggunakan komponen arduino
uno, micro servo, dan kabel jumper. Saat program dimulai micro servo akan
memutar ke sudut paling besar yaitu 180 derajat. Tetapi sebelum itu micro servo
akan melalui sudut 0 derajat terlebih dahulu. Agar mencapai sudut 180 derajat
micro servo harus menunggu 15 milisekon. Setelah itu servo akan berputar kembali
ke sudut 0 derajat.
Berikut source code percobaan 1.
#include <Servo.h>

int pos = 0;
Servo myservo;

void setup()
{
Serial.begin(9600);
//servo di pin 9, posisi minimal 500 (0 derajat), posisi max 2500
(180 derajat)
myservo.attach(9, 500, 2500);
}

void loop()
{
for (pos = 0; pos <= 180; pos += 1) {
myservo.write(pos);
Serial.println(pos);
delay(15); // Wait for 15 millisecond(s)
}
delay(1000);
for (pos = 180; pos >= 0; pos -= 1) {
myservo.write(pos);
Serial.println(pos);
delay(15); // Wait for 15 millisecond(s)

101
}
}
Berdasarkan source code diatas mula-mula ditambahkan library #include
<Servo.h> untuk dapat menggunakan motor servo. Selanjutnya dideklarasikan
variabel pos dengan tipe data integer bernilai 0 dan variabel myservo. Pada bagian
void setup() pertama terdapat perintah Serial.begin(9600); yang digunakan
untuk memulai programnya. Kemudian myservo.attach(9, 500, 2500); untuk
mendeklarasikan pin 9 arduino sebagai pin input dengan range 500 sampai 2500
yang berarti 0 derajat sampai 180 derajat. Selanjutnya pada bagian void loop(),
terdapat pengkondisian for sebagai increment nilai pos yang memiliki nilai awal 0
akan di increment hingga 180. Lalu terdapat myservo.write(pos) yang berfungsi
sebagai penggerak motor sesuai nilai pos. Kemudian Serial.println(pos);
untuk mencetak nilai pos pada serial monitor. Untuk memberikan jeda setiap
perubahan nilai sebanyak 15 milisekon digunakan perintah delay(15);.
Terdapat pengkondisian for lagi yang digunakan untuk decrement dari nilai
pos tertinggi yaitu 180 sampai 0. Kemudian akan digerakkan juga dengan perintah
myservo.write(pos);. Setelah itu akan ditampilkan pada serial monitor dan
diberikan delay selama 15 milisekon.
Tabel 6.1 Tabel kondisi servo
No Kondisi Keterangan
1 Nilai pos = 0 Motor servo berada di posisi awal 0°
2 Nilai pos = 180 Motor servo berada pada sudut 180° setelah
berputar berlawanan arah jarum jam dari posisi
awal 0°.
3 Nilai pos = 180 Motor servo berada di posisi awal 180°
4 Nilai pos = 0 Motor servo berada pada sudut 0° setelah berputar
searah jarum jam dari posisi awal 180°.

102
6.5.2 Percobaan 2

Gambar 6.22 hasil rangkaian percobaan 2


Pada percobaan kedua dibuat rangkaian menggunakan komponen micro
servo, breadboard, potensiometer dan kabel jumper. Program yang dijalankan akan
ditampilkan nilai dari potensiometer berupa nilai analog. Dengan range nilai analog
potensiometer 0-1023 dan sudut servo 0-180 derajat. Potensiometer di sini
dirangkai terbalik sehingga hasil percobaannya saat memutar potensiometer ke kiri,
nilai analognya tinggi dan membentuk sudut <=180 derajat, dan sebaliknya saat
memutar potensiometer ke kanan, nilainya akan rendah sehingga sudut yang
terbentuk akan mendekati 0 derajat.
#include <Servo.h>

Servo myservo;
int value;
double angle;
const int pin_servo = 13;
const int pin_potensio = A0;

void setup()
{
Serial.begin(9600);
myservo.attach(pin_servo);
}

void loop()
{
value = analogRead(pin_potensio);
Serial.println(value);
angle = map(value, 0, 1023, 0, 180);
Serial.println(angle);

103
myservo.write(angle);
delay(15);
}
Berdasarkan source code diatas mula-mula ditambahkan library #include
<Servo.h> untuk dapat menggunakan motor servo. Selanjutnya dideklarasikan
variabel value dengan tipe data integer, variabel angle dengan tipe data double, dan
variabel myservo. const int pin_servo = 13; const int pin_potensio =
A0; lalu dilakukan inisiasi pin 13 dan A0 yang nantinya akan digunakan motor
servo dan potensiometer. Pada bagian void setup() pertama terdapat perintah
Serial.begin(9600); yang digunakan untuk memulai programnya. Kemudian
myservo.attach(pin_servo); untuk mendeklarasikan pin servo. Selanjutnya
pada bagian void loop(), value = analogRead(pin_potensio); untuk
mengatur value supaya bernilai sama dengan pin analog yang terhubung ke
potensiometer. Untuk dapat dimunculkan paa serial monitor digunakan perintah
Serial.println(value); Perintah angle = map(value, 0, 1023, 0, 180);
berfungsi mengubah nilai masukan dari potensiometer dengan range nilai 0-1023
menjadi 0-180. Serial.println(angle); untuk menampilkan nilai angle pada
serial monitor. delay(15); untuk memberikan jeda selama 15 milisekon.

Tabel 6.2 Arah gerak servo


No Nilai Analog Nilai Sudut Arah Gerak Servo
1 1023 180 Berlawanan arah jarum jam
2 143 25 Berlawanan arah jarum jam
3 532 93 Berlawanan arah jarum jam
4 818 143 Berlawanan arah jarum jam

104
6.6 Tugas
Pada tugas Bab 6 akan dibuat sebuah rangkaian seperti pada gambar 6.23 di
bawah ini. Rangkaian tersebut akan dianalisis perilakunya sesuai dengan logika
yang diterapkan pada source code.

Gambar 6.23 rangkaian tugas


Berikut di bawah ini adalah alat dan bahan yang digunakan pada uraian
rangkaian tersebut.

Gambar 6.24 uraian alat dan bahan


Di bawah ini adalah kode logika yang akan diterapkan pada rangkaian.
#include <Servo.h>

int m = 0;
Servo lengan1;
Servo lengan2;
Servo jari1;
Servo jari2;

105
Servo jari3;

void setup()
{
Serial.begin(9600);
lengan1.attach(8, 500, 2500);
lengan2.attach(9, 500, 2500);
jari1.attach(5);
jari2.attach(6);
jari3.attach(7);
attachInterrupt(0, genggamObjek, RISING);
}

void loop()
{
int pot1 = analogRead(A0);
int pot2 = analogRead(A1);
int sudut1 = map(pot1, 0, 1023, 0, 180);
int sudut2 = map(pot2, 0, 1023, 0, 180);
lengan1.write(sudut1);
lengan2.write(sudut2);
Serial.print("Analog1= ");
Serial.println(pot1);
Serial.print("Analog2= ");
Serial.println(pot2);
Serial.print("Sudut1= ");
Serial.println(sudut1);
Serial.print("Sudut2= ");
Serial.println(sudut2);
}

void genggamObjek()
{
if(m) {
jari1.write(90);
jari2.write(90);
jari3.write(90);
m = 0;
}
else{
jari1.write(0);
jari2.write(0);
jari3.write(0);
m = 1;
}
}
Tabel 6.3 Tabel analisis dari microservo
No Servo Nilai Analog Nilai Sudut Arah Gerakan Servo
1 Servo Biru 1 0 0 -
2 Servo Biru 1 246 43 Counter clock-wise
3 Servo Biru 1 655 115 Counter clock-wise
4 Servo Biru 2 0 0 Counter clock-wise

106
5 Servo Biru 2 246 43 Counter clock-wise
6 Servo Biru 2 675 118 Counter clock-wise
Pada tabel 6.3 adalah hasil dari percobaan rangkaian. Kesimpulan yang
didapat dari percobaan tersebut adalah potensiometer 1 dan 2 berfungsi sebagai
pemberi arah untuk servo. Servo bergerak sesuai dengan besar tegangan analog
yang diberikan oleh potensiometer. Semakin besar tegangan analog yang diberikan,
semakin mendekati 180 derajat sudut pada Servo.

Tabel 6.4 Tabel analisis positional microservo


No Servo Keadaan Tombol Nilai Sudut
1 Servo Hitam 1 Ditekan 1x 90
2 Servo Hitam 2 Ditekan 1x 90
3 Servo Hitam 3 Ditekan 1x 90
4 Servo Hitam 1 Ditekan 2x 0
5 Servo Hitam 2 Ditekan 2x 0
6 Servo Hitam 3 Ditekan 2x 0
Pada Tabel 6.4 adalah hasil dari percobaan rangkaian terhadap positional
microservo (Servo yang berwarna hitam). Dari tabel tersebut, servo bergerak ketika
tombol ditekan. Ketika tombol ditekan saat servo berada di sudut 0 derajat, maka
servo akan bergerak ke arah 90 derajat, dan ketika tombol ditekan saat servo berada
di 90 derajat, maka servo akan bergerak kembali ke arah 0 derajat, begitu
seterusnya.

107
6.7 Kesimpulan
1. PWM adalah hasil dari pengaruh masukan potensiometer yang digunakan untuk
mengatur rotasi motor servo
2. myservo.write(pos) berfungsi sebagai penggerak motor sesuai nilai pos
3. Perintah Serial.println(pos); untuk mencetak nilai pos pada serial monitor
4. Pada percobaan 1 perintah myservo.attach(9, 500, 2500); untuk
mendeklarasikan pin 9 arduino sebagai pin input dengan range 500 sampai 2500
yang berarti 0 derajat sampai 180 derajat
5. Perintah myservo.write(pos) yang berfungsi sebagai penggerak motor sesuai
nilai pos
6. Pengkondisian for digunakan untuk decrement dari nilai pos tertinggi
7. Pada tugas , positional microservo (Servo yang berwarna hitam) bergerak ketika
tombol ditekan
8. Jika nilai potensiometer besar maka sudut yang dihasilkan juga besar.

108
BAB VII
AKTUATOR MOTOR STEPPER
7.1 Tujuan
1. Praktikan dapat memahami fungsi dari motor stepper
2. Praktikan dapat memahami prinsip kerja motor stepper
3. Praktikan dapat membuat rangkaian sederhana menggunakan Arduino
4. Praktikan dapat mengimplementasikan motor stepper kedalam rangkaian
5. Praktikan dapat melakukan analisa dari rangkaian yang telah di buat

109
7.2 Alat dan Bahan
7.2.1 Proteus

Gambar 7.1 Proteus


Software Proteus merupakan salah satu software elektronik yang digunakan
untuk membantu para designer dalam merancang dan mensimulasikan suatu
rangkaian elektronik. Software ini memiliki dua fungsi sekaligus dalam satu paket,
yaitu sebagai software untuk menggambar skematik dan digunakan sebagai
merancang gambar Printed Circuit Board (PCB).
Pada praktikum ini, proteus digunakan untuk menyusun rangkaian
elektronik dan menjalankan simulasi program.

7.2.2 Arduino UNO

Gambar 7.2 Arduino Uno


Arduino UNO adalah papan pengembangan (development board)
mikrokontroler yang berbasis chip ATmega328P. Arduino disebut sebagai papan

110
pengembangan karena board ini berfungsi sebagai media prototyping sirkuit
mikrokontroler.
Arduino UNO berbasis IC ATmega328P, memiliki 14 pin I/O digital (6 pin
PWM), 6 input analog, kristal kuarsa 16 MHz, koneksi USB, colokan listrik, header
ICSP dan tombol reset.
Pada praktikum ini, board arduino UNO digunakan sebagai komponen
utama peyusun rangkaian elektronika, menerima masukan dan menjalankan
program yang telah diberikan.

7.2.3 LED

Gambar 7.3 LED


Light Emitting Diode atau sering disingkat dengan LED adalah komponen
elektronika yang dapat memancarkan cahaya monokromatik ketika diberikan
tegangan maju. LED merupakan keluarga Dioda yang terbuat dari bahan
semikonduktor. Warna-warna Cahaya yang dipancarkan oleh LED tergantung pada
jenis bahan semikonduktor yang dipergunakannya. LED juga dapat memancarkan
sinar inframerah yang tidak tampak oleh mata seperti yang sering kita jumpai pada
Remote Control TV ataupun Remote Control perangkat elektronik lainnya.
Pada praktikum ini, LED digunakan sebagai indikator yang menunjukkan
sinyal masukan yang diberikan pada motor stepper. Jika LED menyala, maka sinyal
masukan adalah 1 dan jika mati, maka sinyal masukan adalah 0.

111
7.2.4 Motor Stepper

Gambar 7.4 motor stepper


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.
Pada praktikum ini, motor stepper merupakan komponen utama yang
diamati cara kerjanya.

112
7.3 Dasar Teori (Sertakan sumber dan gambar)
7.3.1 Arduino UNO

Gambar 7.5 arduino uno


Arduino Uno adalah board mikrokontroler berbasis ATmega328
(datasheet). Memiliki 14 pin input dari output digital dimana 6 pin input tersebut
dapat digunakan sebagai output PWM dan 6 pin input analog, 16 MHz osilator
kristal, koneksi USB, jack power, ICSP header, dan tombol reset. Untuk
mendukung mikrokontroler agar dapat digunakan, cukup hanya menghubungkan
Board Arduino Uno ke komputer dengan menggunakan kabel USB atau listrik
dengan AC yang-ke adaptor-DC atau baterai untuk menjalankannya. Setiap 14 pin
digital pada arduino uno dapat digunakan sebagai input dan output, menggunakan
fungsi pinMode(), digitalwrite(), dan digitalRead(). Fungsi fungsi tersebut
beroperasi di tegangan 5 volt, Setiap pin dapat memberikan atau menerima suatu
arus maksimum 40 mA dan mempunyai sebuah resistor pull-up (terputus secara
default) 20-50 kOhm.
Arduino Uno dapat berkomunikasi dengan mikrokontroler lain
menggunakan UART TTL sebagai komunikasi serial yang tersedia pada pin digital
0 (RX) dan 1 (TX). Power supply Arduino Uno menggunakan adaptop DC yang
terhubung melalui jack adaptor pada koneksi port input supply. Arduino Uno
memiliki 32 flash memory4 untuk menyimpan kode dan 2KB yang di gunakan
untuk bootloader, Arduino Uno juga memiliki 2 KB untuk SRAM dan 1 KB untuk
EEPROM.
(sumber : https://eprints.akakom.ac.id/4940/3/3_143310018_BAB_II.pdf)

113
7.3.2 Motor Stepper

Gambar 7.6 motor stepper


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. motor
stepper mengubah pulsa-pulsa input menjadi gerakan mekanis diskrit. Oleh karena
itu untuk menggerakkan motor stepper diperlukan pengendali motor stepper yang
membangkitkan pulsa-pulsa periodik.
Berdasarkan struktur rotor dan stator pada motor stepper, maka motor
stepper dapat dikategorikan dalam 3 jenis sebagai berikut :

1. Motor stepper Variable Reluctance (VR)


2. Motor Stepper Permanent Magnet (PM)
3. Motor Stepper Hybrid (HB)

Berdasarkan metode perancangan rangkain pengendalinya, motor stepper


dapat dibagi menjadi 2 jenis yaitu motor stepper unipolar dan motor stepper
bipolar.

(sumber: http://zonaelektro.net)

114
7.4 Langkah Kerja
7.4.1 Percobaan 1
1. Extract library dan copy file ke Proteus 8 Professional\DATA\LIBRARY

Gambar 7.7 extract library


2. Buka aplikasi Proteus 8

Gambar 7.8 Proteus 8


3. Klik New Project->Beri nama Modul6_kel05.pdsprj -> Create a schematic,
DEFAULT ->Do not create a PCB Layout-> No Firmware -> Finish

Gambar 7.9 proyek baru

Gambar 7.10 nama proyek baru


4. Masukan Devices yang dibutuhkan

Gambar 7.11 ambil alat

115
5. Buatlah rangkaian

Gambar 7.12 rangkaian percobaan 1


6. Buka Arduino IDE

Gambar 7.13 Arduino IDE


7. Masukkan Source Code
//Pin Motor Stepper
const int A = 8;
const int B = 9;
const int C = 10;
const int D = 11;

void setup() {
pinMode(A,OUTPUT);pinMode(B,OUTPUT);
pinMode(C,OUTPUT);pinMode(D,OUTPUT);
delay(1000);

}
void step_1(){
digitalWrite(A,1);digitalWrite(B,0);
digitalWrite(C,0);digitalWrite(D,0);
delay(1000);
}
void step_2(){
digitalWrite(A,0);digitalWrite(B,1);
digitalWrite(C,0);digitalWrite(D,0);
delay(1000);
}
void step_3(){
digitalWrite(A,0);digitalWrite(B,0);
digitalWrite(C,1);digitalWrite(D,0);

116
delay(1000);
}
void step_4(){
digitalWrite(A,0);digitalWrite(B,0);
digitalWrite(C,0);digitalWrite(D,1);
delay(1000);
}
void CW(){
step_2();
step_3();
step_4();
step_1();
}
void CCW(){
step_4();
step_3();
step_2();
step_1();
}
void loop() {
CW();
CCW();
}
8. Klik menu Sketch, lalu tekan “Export Compiled Binary”

Gambar 7.14 sketch


9. Pada Arduino Uno klik kanan pilih “Edit Properties”

Gambar 7.15 edit properti


10. Tambahkan file .hex pada Arduino UNO yang telah dibuat pada Arduino IDE

Gambar 7.16 tambahkan file .hex

117
11. Run simulation

Gambar 7.17 run


7.4.2 Percobaan 2
1. Masukkan komponen yang dibutuhkan

Gambar 7.18 ambil alat


2. Buatlah rangkaian

Gambar 7.19 rangkaian percobaan 2


3. Buka Arduino IDE

Gambar 7.20 arduino IDE


4. Masukkan Source Code
void setup() {
// put your setup code here, to run once:
for(int i = 2; i <= 5; i++){
pinMode(i, OUTPUT);
}
}

void loop() {

118
// put your main code here, to run repeatedly:
move_stepper(1,0,0,0);
move_stepper(1,1,0,0);
move_stepper(0,1,0,0);
move_stepper(0,1,1,0);
move_stepper(0,0,1,0);
move_stepper(0,0,1,1);
move_stepper(0,0,0,1);
move_stepper(1,0,0,1);
}

void move_stepper(bool a2, bool a1, bool b1, bool b2){


digitalWrite(2, a1);
digitalWrite(3, a2);
digitalWrite(4, b1);
digitalWrite(5, b2);
delay(1000);
}
5. Klik menu Sketch, lalu tekan “Export Compiled Binary”

Gambar 7.21 sketch


6. Pada Arduino Uno klik kanan pilih “Edit Properties”

Gambar 7.22 edit properti


7. Tambahkan file .hex pada Arduino UNO yang telah dibuat pada Arduino IDE

Gambar 7.23 tambahkan file .hex


8. Run simulation

Gambar 7.24 run

119
120
7.5 Hasil Percobaan dan Analisa
7.5.1 Percobaan 1

Gambar 7.25 hasil percobaan 1


Pada percobaan pertama dibuat rangkaian menggunakan komponen arduino
uno, motor stepper, dan LED. Pada rangkain ini terdapat 4 step, yang pertama LED
pertama menyala sebab nilai dari pin A yang terhubung ke pin 8 arduino bernilai 1.
Step kedua LED 2 menyala sebab pin B yang terhubung ke pin 9 arduino bernilai
1. Step ketiga LED 3 menyala karena pin C yang terhubung ke pin 10 arduino
bernilai 1. Lalu step terakhir LED 4 menyala karena pin D yang terhubung ke pi 11
arduino bernilai 1.
Tabel 7.1 motor stepper
No. Step Sudut LED
1. step_2 90o LED2 menyala
2. step_3 180o LED3 menyala
3. step_4 270o LED4 menyala
4. step_1 360 o
LED1 menyala
5. step_4 270o LED4 menyala
6. step_3 180 o
LED3 menyala
7. step_2 90 o
LED2 menyala
8. step_1 0o LED1 menyala
Berdasarkan source code pada percobaan 1 pertama dinisiasikan terlebih
dahulu untuk pin-pin yang akan digunakan yaitu pin 8, 9, 10, dan 10. Pada bagian
void setup() diset semua pin output. Pada void step_1() pin A bernilai 1, pin
B bernilai 0, pin C bernilai 0, pin D bernilai 0. void step_2() pin A, C, D bernilai
0, pin B bernilai 1. void step_3() pin C bernilai 1, pin A, B, D bernilai 0. void
step_4() pin A, B, C bernilai 0, pin D bernilai 1. Pada void CW() step 2-3-4-1
berputar searah jarum jam. void CCW() step 4-3-2-1 berputar berlawanan arah

121
jarum jam. void loop() memutar sekali searah jarum jam kemudian memutar
berlawanan arah jarum jam.

7.5.2 Percobaan 2

Gambar 7.26 rangkaian percobaan 2


Selanjutnya pada percobaan kedua dibuat rangkaian menggunakan
komponen arduino uno dan motor bistepper. Rangkaian kedua ini dibuat untuk
menunjukkan sudut putaran motor stepper dan pin mana yang menyala saat motor
stepper membentuk sudut tertentu. Hasil simulasi programnya yaitu saat pin A1
menyala sudut yang terbentuk sebesar 135 derajat, pin A1 dan A2 menyala sudut
yang terbentuk sebesar 90 derajat, pin A2 menyala sudut yang terbentuk 45 derajat,
pin A1 dan B1 menyala sudut yang terbentuk sebesar 180 derajat, pin B1 menyala
sudut yang terbentuk 225 derajat, pin B1 dan B2 menyala sudut yang terbentuk 270
derajat, pin B2 menyala sudut yang terbentuk 315 derajat, dan saat pin B2 dan A2
menyala sudut yang terbentuk sebesar 260 derajat. Proses tersebut akan berulang
selama program berjalan.
Tabel 7.2 motor stepper
No. Step Sudut
1. move_stepper(1,0,0,0); 45o
2. move_stepper(1,1,0,0); 90o
3. move_stepper(0,1,0,0); 135o
4. move_stepper(0,1,1,0); 180o
5. move_stepper(0,0,1,0); 225o
6. move_stepper(0,0,1,1); 270o
7. move_stepper(0,0,0,1); 315o
8. move_stepper(1,0,0,1); 360o

122
Berdasarkan source code pada percobaan 2 pertama pada void
setup()terdapat pengkondisian for untuk memberi masukan pulsa ke motor
stepper. Kemudian pada void loop()terdapat 8 step yang pertama
move_stepper(1,0,0,0) sehingga motor stepper akan berada di sudut 45 derajat.
Step berikutnya akan bertambah sebesar 45 derajat sampai pada step ke 8 motor
stepper berada di sudut 360 derajat.

123
7.6 Tugas
Pada tugas Bab 7 akan dibuat sebuah rangkaian Arduino Uno dengan
menggunakan motor stepper. Cara kerja dari rangkaian ini adalah akan disediakan
2 buah push-button yang dimana tombol pertama akan membuat motor bergerak ke
arah jarum jam dan motor dan tombol kedua akan motor bergerak ke arah
berlawanan jarum jam.

Gambar 7.27 rangkaian tugas


Pada gambar 7.24 terdapat LED berwarna biru untuk membantu
mengidentifikasi tombol mana yang sedang hidup.
const int A = 8;
const int B = 9;
const int C = 10;
const int D = 11;
const int buttonA = 6;
const int buttonB = 7;

void setup() {

124
pinMode(A,OUTPUT);pinMode(B,OUTPUT);
pinMode(C,OUTPUT);pinMode(D,OUTPUT);
pinMode(buttonA, INPUT);
pinMode(buttonB, INPUT);

delay(1000);

}
void step_1(){
digitalWrite(A,1);digitalWrite(B,0);
digitalWrite(C,0);digitalWrite(D,0);
delay(500);
}
void step_2(){
digitalWrite(A,0);digitalWrite(B,1);
digitalWrite(C,0);digitalWrite(D,0);
delay(500);
}
void step_3(){
digitalWrite(A,0);digitalWrite(B,0);
digitalWrite(C,1);digitalWrite(D,0);
delay(500);
}
void step_4(){
digitalWrite(A,0);digitalWrite(B,0);
digitalWrite(C,0);digitalWrite(D,1);
delay(500);
}
void CW(){
step_1();
step_2();
step_3();
step_4();
}
void CCW(){
step_4();
step_3();
step_2();
step_1();
}
void loop() {
if(digitalRead(buttonA) && digitalRead(buttonB)){
delay(1000);
}else if(digitalRead(buttonA)){
CW();
delay(1000);
}else if(digitalRead(buttonB)){
CCW();
delay(1000);
}
}
Rangkaian di atas dikonfigurasikan menggunakan logika yang terdapat pada
source code. Cara kerja dari kodenya adalah setelah setup dan inisiasi pin
menggunakan variabel, terdapat 4 buah fungsi yang masing-masing akan membuat

125
motor berputar ke arah 0, 90, 180, 270 derajat. Kemudian akan diurutkan sesuai
arah jarum jam pada fungsi “CW()” dan berlawanan jarum jam pada fungsi
“CCW()”. Lalu tinggal ditambahkan pengondisian dimana tombol A akan
mengaktifkan clock wise dan tombol B mengaktifkan counter clock wise.

126
7.7 Kesimpulan
1. Fungsi CW membuat pergerakan searah jarum jam
2. Fungsi CCW membuat pergerakan berlawanan jarum jam
3. Pengkondisian for pada percobaan 2 berfungsi untuk memberi masukan pulsa
ke motor stepper
4. Pada percobaan 1 , void loop() memutar sekali searah jarum jam (CW)
kemudian memutar berlawanan arah jarum jam (CCW) sehingga membuat
lampu menyala secara bergantian berdasarkan urutan pada void CW dan void
CCW dengan rentang waktu / delay 1000ms
5. Pada percobaan 2 membuat rangkaian yang dimana rangkaian tersebut untuk
menunjukan sudut putaran motor stepper dan pin akan menyala pada sudut
tertentu sebagai indikator sudut yang dihasilkan

127
BAB VIII
AKTUATOR MOTOR DC DAN H-BRIDGE

8.1 Tujuan
1. Praktikan memahami fungsi dari akuator motor DC
2. Praktikan memahami prinsip kerja H-Bridge
3. Praktikan dapat membuat rangkaian sederhana menggunakan akuator motor
dc dan menerapkan H-Bridge pada rangkaian
4. Praktikan dapat melakukan analisis rangkaian yang telah dibuat

128
8.2 Alat dan Bahan
8.2.1 Breadboard

Gambar 8.1 breadboard


Breadboard merupakan sebuah papan yang berfungsi untuk merancang
sebuah elektronik sederhana. breadboard digunakan sebagai media untuk membuat
prototype, dan atau uji coba.
Salah satu keuntungan menggunakan breadboard adalah komponen-
komponen yang dirakit tidak akan mengalami kerusakan, sehingga dapat digunakan
lagi pada model rangkaian yang lain.
Pada praktikum ini, breadboard digunakan sebagai media wiring untuk
menghubungkan tiap komponen elektronika.

8.2.2 Arduino Uno

Gambar 8.2 arduino uno


Arduino Uno adalah papan pengembangan (development board)
mikrokontroler yang berbasis chip ATmega328P. Arduino disebut sebgai papan

129
pengembangan karena board ini berfungsi sebagai media prototyping sirkuit
mikrokontroler.
Arduino Uno berbasis IC ATmega328P, memiliki 14 pin I/O digital (6 pin
PWM), 6 input analog, kristal kuarsa 16 MHz, koneksi USB, colokan listrik, header
ICSP dan tombol reset.
Pada praktikum ini, board arduino uno digunakan sebagai komponen utama
peyusun rangkaian elektronika, menerima masukan dan menjalankan program yang
telah diberikan.

8.2.3 Kabel jumper

Gambar 8.3 kabel jumper


Kabel jumper adalah kabel penghubung yang digunakan dalam proses
wiring antar komponen. Kabel wiring lebih sering digunakan bersamaaan dengan
breadboard karena kabel wiring mempermudah penyusunan dan pembongkaran
rangkaian.
Dari bentuk ujung kabelnya, kabel jumper dapat dibedakan menjadi Male
dan Female. Male ditunjukkan oleh ujung berupa batang konduktor yang dapat
ditancapkan, sedangkan female ditunjukkan oleh ujung berupa lubang soket.
Pada praktikum ini, kabel jumper digunakan sebagai penghubung antar
komponen pada rangkaian dengan bantuan breadboard.

130
8.2.4 Motor DC

Gambar 8.4 motor dc


Motor Listrik DC atau DC Motor adalah suatu perangkat yang mengubah
energi listrik menjadi energi kinetik atau gerakan (motion). Motor DC ini juga dapat
disebut sebagai Motor Arus Searah. Seperti namanya, DC Motor memiliki dua
terminal dan memerlukan tegangan arus searah atau DC (Direct Current) untuk
dapat bergerak

8.2.5 IC L293D

Gambar 8.5 IC L293D


IC L293D adalah sirkuit terpadu (IC) dual H-Bridge driver untuk rangkaian
motor DC. Driver motor ini bertindak sebagai penguat arus dengan mengambil
sinyal kontrol arus rendah dan memberikan output ke sinyal kontrol arus yang lebih
tinggi.

131
8.2.6 TinkerCad

Gambar 8.6 tinkercad


TinkerCad adalah salah satu platform berupa web, yang menyediakan sarana
bagi pengguna untuk mempelajari, merangkai model 3D dan rangkaian elektronika,
menyusun codeblock, serta menguji rangkaian yang telah dibuat dalam bentuk
simulasi.
Tinkercad merupakan website besutan Autodesk yang merupakan produsen
aplikasi-aplikasi desain grafis seperti AutoCAD yang sudah sangat popular dan
menjadi standar industri manapun.
Pada praktikum ini, tinkercad digunakan sebagai simulator untuk menyusun
dan menguji coba rangkaian.

8.2.7 Potensiometer

Gambar 8.7 potensiometer


Potensiometer (POT) adalah salah satu jenis Resistor yang Nilai
Resistansinya dapat diatur sesuai dengan kebutuhan Rangkaian Elektronika
ataupun kebutuhan pemakainya. Potensiometer merupakan Keluarga Resistor yang
tergolong dalam Kategori Variable Resistor. Secara struktur, Potensiometer terdiri
dari 3 kaki Terminal dengan sebuah shaft atau tuas yang berfungsi sebagai
pengaturnya.

132
8.2.8 Multimeter

Gambar 8.8 multimeter


Multimeter adalah suatu alat ukur listrik yang digunakan untuk mengukur
tiga jenis besaran listrik yaitu arus listrik, tegangan listrik, dan hambatan listrik.
Sebutan lain untuk multimeter adalah AVO-meter yang merupakan singkatan dari
satuan Ampere, Volt, dan Ohm

133
8.3 Dasar Teori
8.3.1 Breadboard

Gambar 8.9 breadboard


Breadboard merupakan sebuah board atau papan yang berfungsi untuk
merancang sebuah rangkaian elektronik sederhana. Breadboard tersebut nantinya
akan dilakukan prototipe atau uji coba tanpa harus melakukan solder. breadboard
memiliki prinsip kerja sebagai berikut:
2 pasang pada jalur bawah dan atas terkoneksi secara horizontal sampai
menuju ke bagian tengah pada breadboard. Biasanya, ia akan difungsikan sebagai
jalur dari tombol power maupun juga jalur sinyal. Beberapa contohnya adalah
digunakan untuk jalur komunikasi maupun clock.
5 lubang yang terdapat di komponen bagian tengah digunakan sebagai lokasi
untuk melakukan perakitan komponen. Jalur kelima tersebut terkoneksi secara
vertikal sampai menuju ke bagian tengah pada breadboard.
Pembatasan pada bagian tengah breadboard biasanya akan difungsikan
sebagai tempat untuk menancapkan IC component.
(Sumber : https://www.nesabamedia.com/pengertian-breadboard/)

134
8.3.2 Arduino Uno

Gambar 8.10 arduino uno


Arduino Uno adalah board mikrokontroler berbasis ATmega328
(datasheet). Memiliki 14 pin input dari output digital dimana 6 pin input tersebut
dapat digunakan sebagai output PWM dan 6 pin input analog, 16 MHz osilator
kristal, koneksi USB, jack power, ICSP header, dan tombol reset. Untuk
mendukung mikrokontroler agar dapat digunakan, cukup hanya menghubungkan
Board Arduino Uno ke komputer dengan menggunakan kabel USB atau listrik
dengan AC yang-ke adaptor-DC atau baterai untuk menjalankannya. Setiap 14 pin
digital pada arduino uno dapat digunakan sebagai input dan output, menggunakan
fungsi pinMode(), digitalwrite(), dan digitalRead(). Fungsi fungsi tersebut
beroperasi di tegangan 5 volt, Setiap pin dapat memberikan atau menerima suatu
arus maksimum 40 mA dan mempunyai sebuah resistor pull-up (terputus secara
default) 20-50 kOhm.
Arduino Uno dapat berkomunikasi dengan mikrokontroler lain
menggunakan UART TTL sebagai komunikasi serial yang tersedia pada pin digital
0 (RX) dan 1 (TX). Power supply Arduino Uno menggunakan adaptop DC yang
terhubung melalui jack adaptor pada koneksi port input supply. Arduino Uno
memiliki 32 flash memory4 untuk menyimpan kode dan 2KB yang di gunakan
untuk bootloader, Arduino Uno juga memiliki 2 KB untuk SRAM dan 1 KB untuk
EEPROM.
(sumber : https://eprints.akakom.ac.id/4940/3/3_143310018_BAB_II.pdf)

135
8.3.3 Kabel jumper

Gambar 8.11 kabel jumper


Kabel jumper adalah kabel elektrik yang memiliki pin konektor di setiap
ujungnya dan memungkinkan untuk menghubungkan dua komponen yang
melibatkan Arduino tanpa memerlukan solder. Dapat disimpulkan fungsi dari kabel
ini yaitu sebagai konduktor listrik untuk menyambungkan rangkaian listrik.
(Sumber : https://www.aldyrazor.com/)

8.3.4 Motor DC

Gambar 8.12 motor dc


Motor Listrik DC atau DC Motor adalah suatu perangkat yang mengubah
energi listrik menjadi energi kinetik atau gerakan (motion). Motor DC ini juga dapat
disebut sebagai Motor Arus Searah. Motor Listrik DC atau DC Motor ini
menghasilkan sejumlah putaran per menit atau biasanya dikenal dengan istilah
RPM (Revolutions per minute) dan dapat dibuat berputar searah jarum jam maupun
berlawanan arah jarum jam apabila polaritas listrik yang diberikan pada Motor DC
tersebut dibalikan.

136
Apabila tegangan yang diberikan ke Motor Listrik DC lebih rendah dari
tegangan operasionalnya maka akan dapat memperlambat rotasi motor DC tersebut
sedangkan tegangan yang lebih tinggi dari tegangan operasional akan membuat
rotasi motor DC menjadi lebih cepat. Namun ketika tegangan yang diberikan ke
Motor DC tersebut turun menjadi dibawah 50% dari tegangan operasional yang
ditentukan maka Motor DC tersebut tidak dapat berputar atau terhenti. Sebaliknya,
jika tegangan yang diberikan ke Motor DC tersebut lebih tinggi sekitar 30% dari
tegangan operasional yang ditentukan, maka motor DC tersebut akan menjadi
sangat panas dan akhirnya akan menjadi rusak.
Motor listrik DC menggunakan fenomena elektromagnet untuk bergerak,
ketika arus listrik diberikan ke kumparan, permukaan kumparan yang bersifat utara
akan bergerak menghadap ke magnet yang berkutub selatan dan kumparan yang
bersifat selatan akan bergerak menghadap ke utara magnet. Saat ini, karena kutub
utara kumparan bertemu dengan kutub selatan magnet ataupun kutub selatan
kumparan bertemu dengan kutub utara magnet maka akan terjadi saling tarik
menarik yang menyebabkan pergerakan kumparan berhenti. Untuk
menggerakannya lagi, tepat pada saat kutub kumparan berhadapan dengan kutub
magnet, arah arus pada kumparan dibalik.
(Sumber : https://teknikelektronika.com/pengertian-motor-dc-prinsip-kerja-dc-motor/)

8.3.5 IC L293D

Gambar 8.13 IC L293D


IC L293D biasanya digunakan untuk mengendalikan motor DC. IC ini juga
sering disebut driver motor. L293D dirancang untuk mengendalikan 2 motor DC.

137
Motor DC yang dikontrol dengan driver IC L293D dapat dihubungkan ke ground
maupun ke sumber tegangan positif karena di dalam driver L293D sistem driver
yang digunakan adalah totem pool.Pada dasarnya motor DC harus dapat mengatur
kecepatan dan arah putar dari motor DC itu sendiri. Pada awalnya untuk dapat
melakukan pengaturan kecepatan motor DC dapat menggunakan metode PWM
(Pulse Width Modulation) sedangkan untuk mengatur arah putarannya dapat
menggunakan rangkaian H-bridge yang tersusun dari 4 buah transistor. IC L293D
sebagai driver motor DC dapat mengatur arah putar dan disediakan pin untuk input
yang berasal dari PWM untuk mengatur kecepatan motor DC.
(Sumber : https://danoyostasia141009.wordpress.com/2016/11/24/prinsip-kerja-driver-l293d/)

8.3.6 TinkerCad

Gambar 8.14 tinkercad


Tinkercad adalah aplikasi yang berbasis WEB (aplikasi dijalankan secara
Online menggunakan Browser) dibuat oleh perusahaan Software yang sudah cukup
terkenal yaitu Autodesk. Seperti yang kita ketahui Autodesk ini yang memproduksi
software Desain Grafis AutoCAD yang sudah sangat populer dan sudah menjadi
standar industri apapun. Selain AutoCAD, Autodesk juga memproduksi 3D Studio
(pembuat animasi 3 dimensi yang juga sangat terkenal.
Tinkercad adalah aplikasi Simulator untuk pembuatan proyek-proyek
Elektronika maupun proyek-proyek Desain 3 Dimensi, seperti model-model
bangunan dan lain-lain. Tinkercad dapat dimanfaatkan sebagai alat atau media
belajar bagi yang ingin membangun sebuah proyek elektronika namun secara
simulasi (tanpa menggunakan alat fisik).
(Sumber: Modul 2 Praktikum TM 2020)

138
8.3.7 Potensiometer

Gambar 8.15 potensiometer


Potensiometer (POT) adalah salah satu jenis Resistor yang Nilai
Resistansinya dapat diatur sesuai dengan kebutuhan Rangkaian Elektronika
ataupun kebutuhan pemakainya. Potensiometer merupakan Keluarga Resistor yang
tergolong dalam Kategori Variable Resistor. Secara struktur, Potensiometer terdiri
dari 3 kaki Terminal dengan sebuah shaft atau tuas yang berfungsi sebagai
pengaturnya. Sebuah Potensiometer (POT) terdiri dari sebuah elemen resistif yang
membentuk jalur (track) dengan terminal di kedua ujungnya. Sedangkan terminal
lainnya (biasanya berada di tengah) adalah Penyapu (Wiper) yang dipergunakan
untuk menentukan pergerakan pada jalur elemen resistif (Resistive). Pergerakan
Penyapu (Wiper) pada Jalur Elemen Resistif inilah yang mengatur naik-turunnya
Nilai Resistansi sebuah Potensiometer. Elemen Resistif pada Potensiometer
umumnya terbuat dari bahan campuran Metal (logam) dan Keramik ataupun Bahan
Karbon (Carbon). Berdasarkan Track (jalur) elemen resistif-nya, Potensiometer
dapat digolongkan menjadi 2 jenis yaitu Potensiometer Linear (Linear
Potentiometer) dan Potensiometer Logaritmik (Logarithmic Potentiometer).
(Sumber : https://teknikelektronika.com/pengertian-fungsi-potensiometer/)

139
8.3.8 Multimeter

Gambar 8.16 multimeter


Alat yang juga dikenal dengan istilah multitester ini adalah sebuah peralatan
khusus yang digunakan untuk mengukur komponen listrik. Mulai dari mengukur
hubungan Arus litrik (Ampere), Tegangan listrik (Voltage), Hambatan listrik
(Ohm), hingga Resistansi dari suatu rangkaian listrik. Berdasarkan fungsi dasarnya
tersebut, alat ini sering disebut dengan AVO meter (Ampere, Voltage, Ohm). Alat
ukur rangkaian listrik ini terdiri dari 2 jenis yaitu kategori Analog dan Digital.
beberapa fungsi utama dari alat ukur ini antara lain:
1. Mengukur Arus Listrik.
Fungsi utama AVO meter yang pertama adalah mengukur Arus listrik atau
Ampere. Terdapat dua jenis Ampere yang ada di sebuah alat ukur yaitu arus
AC (Alternating Current) dan arus DC (Direct Current). Demi menghindari
kerusakan yang terjadi, maka dihimbau untuk memperhatikan arus listrik yang
akan diukur. Jangan sampai diluar jangkauan batas ukur maksimum.
2. Mengukur Tegangan Listrik.
Fungsi utama yang kedua adalah mengukur Tegangan atau tingkat Voltase
dari komponen listrik. Pada setiap Multitester terdapat saklar selector yang
nantinya berfungsi untuk menentukan batas ukur maksimum. Oleh karenanya,
prediksi terlebih dahulu level tegangan dari rangkaian listrik yang akan
diukur.
3. Mengukur Hambatan Listrik.
Fungsi yang ketiga yaitu mengukur tingkat Hambatan atau Resistensi dari
suatu komponen listrik atau resistor yang memiliki unsur resistansi. Penting
pula untuk memperhatikan batas ukur resistensi saat akan menggunakannya.

140
4. Fungsi Hfe.
Tidak semua alat ukur memiliki fungsi Hfe. Fungsi tersebut digunakan untuk
mengetahui nilai dari faktor penguatan transistor. Fungsi Hfe ini biasanya
digunakan untuk mengukur penguatan transistor yang terdapat pada tipe NPN
dan PNP.
5. Mengukur Nilai Kapasitansi.
Fungsi lain yang belum tentu ada pada setiap Multitester adalah mengukur
nilai kapasitansi dari suatu kapasitor. Baik pada tipe Analog maupun Digital,
keduanya memiliki batas ukur tingkat resistansi yang harus diperhatikan.
6. Mengukur Frekuensi Sinyal.
Fungsi yang terakhir adalah untuk mengetahui nilai Frekuensi dari suatu
isyarat atau sinyal pada komponen elektronika.
Alat ukur Multimeter ini memiliki cara kerja yang cukup unik. Di dalam
alat ini terdapat sebuah kumparan yang terbuat dari bahan tembaga. Kumparan
tersebut diletakkan di antara dua kutub yaitu Utara dan Selatan. Pada kumparan
tersebut terdapat sebuah jarum ukur atau jarum meter sebagai penunjuk skala.
Apabila dua ujung kumparan tersebut dialiri oleh arus lisrik, maka jarum jam akan
bergerak menuju skala tertentu.

Multimeter memiliki peran yang sangat penting karena dapat mengecek


kondisi suatu rangkaian listrik. Kesalahan yang terjadi dapat diketahui dengan
tingkat akurasi yang tinggi. Oleh karena itu, keberadaan alat ini begitu berharga
bagi para ahli elektronika. Alat ini sangat ringan dan mudah untuk dibawa kemana-
mana.

(Sumber : https://www.pengelasan.net/multimeter/)

141
8.4 Langkah Kerja
8.4.1 Percobaan 1
1. Buka webside Tinkercad

Gambar 8.17 tinkercad


2. Create New Circuit pada bagian Circuit

Gambar 8.18 create new circuit


3. Beri nama project dengan Modul7_per1

Gambar 8.19 nama proyek


4. Masukkan komponen yang dibutuhkan

Gambar 8.20 basic component

142
Gambar 8.21 komponen yang dibutuhkan
5. Rangkaian percobaan 1

Gambar 8.22 rangkaian percobaan 1


6. Masukkan Source Code

int enM = 5;
int m1 = 3;
int m2 = 4;
int getIn;

void setup()
{
pinMode(enM,OUTPUT); //pin enable sebagai output
pinMode(m1,OUTPUT); //pin m1 sebagai output
pinMode(m2,OUTPUT); //pin m2 sebagai output
Serial.begin(9600);
digitalWrite(enM,HIGH); //mengaktifkan pin enable
}

void loop()
{
getIn = Serial.read();
if (getIn == 's'){
analogWrite(enM,255);

143
digitalWrite(m1,HIGH);
digitalWrite(m2,LOW);
}
if (getIn == 'z'){
analogWrite(enM,255);
digitalWrite(m1,LOW);
digitalWrite(m2,HIGH);
}
if (getIn == 'x'){
analogWrite(enM,255);
digitalWrite(m1,LOW);
digitalWrite(m2,LOW);
}
if (getIn == 'c'){
analogWrite(enM,255);
digitalWrite(m1,HIGH);
digitalWrite(m2,HIGH);
}
}
7. Amati hasil
8.4.2 Percobaan 2
1. Buka webside Tinkercad

Gambar 8.23 tinkercad


8. Create New Circuit pada bagian Circuit

Gambar 8.24 create new circuit


9. Masukkan komponen yang dibutuhkan

144
Gambar 8.25 basic component

Gambar 8.26 komponen yang dibutuhkan

2. Rangkaian percobaan 2

Gambar 8.27 rangkaian percobaan 2

145
3. Masukkan Source Code

int enM = 5;
int m1 = 3;
int m2 = 4;
int i = 0;

void setup()
{
Serial.begin(9600);
pinMode(enM,OUTPUT);
pinMode(m1,OUTPUT);
pinMode(m2,OUTPUT);
analogWrite(enM, 0);
attachInterrupt(0, arahputar, RISING);
}

void loop()
{
int pot1 = analogRead(A0);
int outputValue = map(pot1, 0, 1023, 0, 255);
analogWrite(enM, outputValue);
}

void arahputar(){
if (i == 0){
digitalWrite(m1, LOW);
digitalWrite(m2, HIGH);
i = 1;
}
else{
digitalWrite(m1, HIGH);
digitalWrite(m2, LOW);
i = 0;
}
}
7. Amati hasil

146
8.5 Hasil dan Analisa Percobaan
8.5.1 Percobaan 1
Percobaan pertama yaitu membuat rangkaian yang menampilkan tegangan.
Komponen yang digunakan pada percobaan ini yaitu Motor DC, Arduino Uno, H-
Bridge dan Multimeter. Motor DC disini akan bergerak jika mendapat suplai
tegangan.

Gambar 8.28 rangkaian diberikan huruf z


Motor DC disini akan bergerak jika mendapat suplai tegangan. H-bridge
disini berfungsi membuat motor DC bergerak searah jarum jam ataupun berlawanan
arah. Program ketika dijalankan akan meminta masukkan, disini memakai huruf
z/s/x/c dimana dideklarasikan pada kode untuk pengkondisian if, jika ketik z maka
muncul besar tegangan 4,7 Volt dan kecepatan yang terukur di motor DC 9393 rpm,
motor Dc berputar CW karena nilai pin 3 low dan pin 4 high.

Gambar 8.29 rangkaian diberi masukan huruf s

147
Apabila diketik huruf s maka muncul tegangan sebesar -4,7 Volt dan
kecepatan yang terukur pada motor DC sebesar -9393, motor DC berputar CCW
karena nilai pin 3 high dan pin 4 low.

Gambar 8.30 rangkaian diberi huruf x


Saat diketik huruf x tegangan yang muncul sebesar 0 Volt dan kecepatan
yang terukur pada motor DC diam karena nilai pin 3 low dan pin 4 low.

Gambar 8.31 rangkaian diberi masukan huruf c


Saat diketik huruf c tegangan yang muncul sebesar 0 Volt dan kecepatan
yang terukur pada motor DC diam karena nilai pin 3 low dan pin 4 low, pada kondisi
ini motor DC dalam keadaan overheat, karena semua masukkannya bernilai high.

8.5.2 Percobaan 2
Komponen yang digunakan pada percobaan kedua yakni Arduino Uno,
Hobby Gearmotor, H-Bridge, Potensiometer, Push Button, dan Resistor. Fungsi
Gearmotor untuk melihat gerak putaran yang berasal dari nilai analog

148
Potensiometer. Kemudian fungsi Push Button di sini untuk merubah apakah
putarannya searah jarum jam atau berlawanan dengan arah jarum jam.

Gambar 8.32 keadaan awal rangkaian


Pada saat kondisi awal rangkaian dijalankan hobby gearmotor menunjukkan
angka 0 RPM karena potensiometer belum diubah-ubah atau digeser yang berarti
motor tidak mengalami pergerakan.

Gambar 8.33 kondisi pertama


Ketika push button ditekan pertama kali maka Gearmotor akan berputar
searah jarum jam. Potensiometer digeser maksimal maka akan menghasilkan angka
143 RPM pada gearmotor.

149
Gambar 8.34 kondisi kedua
Kemudian jika push button ditekan kedua kali maka Gearmotor akan
berputar berlawanan arah jarum jam. Potensiometer digeser ke nilai maksimal maka
akan menghasilkan nilai -143 RPM pada gearmotor.

150
8.6 Tugas
Pada tugas bab 8 akan dibuat sebuah rangkaian dengan alat dan bahan terdiri
dari, Arduino Uno, DC Motor, IC L293, dan Breadboard. Alat ini akan berfungsi
menyerupai sebuah mobil yang dimana mobil yang dapat bergerak maju atau
mundur sesuai dengan masukan.

Gambar 8.35 rangkaian tugas


Pada gambar 8.31 dapat dilihat adalah rangkaian dari tugas yang dibuat dalam
aplikasi TinkerCad. Sepasang roda yang berada di atas memiliki konfigurasi
masukan yang sama begitu juga sepasang roda atas. Tetapi roda atas dan bawah
memiliki konfigurasi yang berbeda karena posisinya berlawanan, artinya jika atas
berputar searah jarum jam maka yang bawah akan berputar berlawanan arah jarum
jam, begitu sebaliknya. Berikut di bawah ini adalah kode konfigurasi yang
digunakan.
const int enM = 5;
const int input1 = 8;
const int input2 = 9;
void setup()
{
Serial.begin(9600);
pinMode(enM, OUTPUT);
pinMode(input1, OUTPUT);
pinMode(input2, OUTPUT);

digitalWrite(enM, HIGH);
}

151
void loop()
{
digitalWrite(input1, LOW);
digitalWrite(input2, HIGH);
delay(10000);
digitalWrite(input1, HIGH);
digitalWrite(input2, LOW);
delay(10000);
}
Hasil dari percobaannya dapat dilihat pada tabel di bawah ini.
Tabel 8.1 hasil tugas
INPUT OUTPUT HASIL
Input Input Input Input Atas Atas bawah Bawah
1 2 3 4 1 2 2 2
HIGH LOW HIGH LOW CCW CCW CW CW Reverse
LOW HIGH LOW HIGH CW CW CCW CCW Forward
HIGH HIGH HIGH HIGH - - - - Stop
LOW LOW LOW LOW - - - - Stop
Dari hasil di atas dapat disimpulkan bahwa dari kode di atas, dapat dilihat
bahwa masukan hanya dua, jika masukan enable tidak dihitung. Ini dikarenakan,
masukan 1 atau input1 itu berfungsi untuk mengendalikan input 1 dan 3 dari
masing-masing IC, dan masukan 2 berfungsi untuk mengendalikan input 2 dan 4
dari masing-masing IC. Pada fungsi loop dilakukan delay selama 10 detik untuk
mengganti arah gerak dari roda.

152
8.7 Kesimpulan
1. Rotasi motor DC akan lamban jika tegangan nya lebih rendah dari tegangan
operasionalnya, jika tegangan nya lebih tinggi maka rotasi motor DC akan
meningkat.
2. Fungsi loop pada tugas berfungsi untuk mengubah arah gerak roda
3. Pada percobaan 1, H-bridge berfungsi membuat motor DC bergerak searah
jarum jam ataupun berlawanan arah
4. Pada percoban 1 terdapat 4 pengkondisian if yang di inputkan menggunakan
kode z/s/x/c.
5. Pada percobaan kedua , gearmotor bergerak searah jarum jam dengan nilai
143 RPM ketika pushbutton di tekan sekali dan akan bergerak berlawanan
jarum jam dengan nilai -146 RPM ketika pushbutton ditekan dua kali.

153
BAB IX
NAVIGASI ROBOT BERODA

9.1 Tujuan
1. Praktikan dapat memahami prinsip kerja dari robot beroda
2. Praktikan dapat memahami dan melakukan navigasi pada robot beroda
3. Praktikan dapat mengimplementasikan robot beroda pada rangkaian
4. Praktikan dapat mengimplementasikan kemudi differensial pada rangkaian
yang di buat
5. Praktikan dapat mengimplementasikan sistem navigasi pada rangkaian

154
9.2 Alat dan Bahan
9.2.1 Breadboard

Gambar 9.1 breadboard


Breadboard merupakan sebuah papan yang berfungsi untuk merancang
sebuah elektronik sederhana. breadboard digunakan sebagai media untuk membuat
prototype, dan atau uji coba.
Salah satu keuntungan menggunakan breadboard adalah komponen-
komponen yang dirakit tidak akan mengalami kerusakan, sehingga dapat digunakan
lagi pada model rangkaian yang lain.
Pada praktikum ini, breadboard digunakan sebagai media wiring untuk
menghubungkan tiap komponen elektronika.

9.2.2 Board Arduino Uno

Gambar 9.2 arduino uno


Arduino Uno adalah papan pengembangan (development board)
mikrokontroler yang berbasis chip ATmega328P. Arduino disebut sebgai papan

155
pengembangan karena board ini berfungsi sebagai media prototyping sirkuit
mikrokontroler.
Arduino Uno berbasis IC ATmega328P, memiliki 14 pin I/O digital (6 pin
PWM), 6 input analog, kristal kuarsa 16 MHz, koneksi USB, colokan listrik, header
ICSP dan tombol reset.
Pada praktikum ini, board arduino uno digunakan sebagai komponen utama
peyusun rangkaian elektronika, menerima masukan dan menjalankan program yang
telah diberikan.

9.2.3 Kabel Jumper

Gambar 9.3 kabel jumper


Kabel jumper adalah kabel penghubung yang digunakan dalam proses
wiring antar komponen. Kabel wiring lebih sering digunakan bersamaaan dengan
breadboard karena kabel wiring mempermudah penyusunan dan pembongkaran
rangkaian.
Dari bentuk ujung kabelnya, kabel jumper dapat dibedakan menjadi Male
dan Female. Male ditunjukkan oleh ujung berupa batang konduktor yang dapat
ditancapkan, sedangkan female ditunjukkan oleh ujung berupa lubang soket.
Pada praktikum ini, kabel jumper digunakan sebagai penghubung antar
komponen pada rangkaian dengan bantuan breadboard.

156
9.2.4 Motor DC

Gambar 9.4 motor dc


Motor Listrik DC atau DC Motor adalah suatu perangkat yang mengubah
energi listrik menjadi energi kinetik atau gerakan (motion). Motor DC ini juga dapat
disebut sebagai Motor Arus Searah. Seperti namanya, DC Motor memiliki dua
terminal dan memerlukan tegangan arus searah atau DC (Direct Current) untuk
dapat bergerak.
Pada praktikum ini, motor DC berperan sebagai roda penggerak pada
rangkaian robot beroda.

9.2.5 Sensor HC-SR04

Gambar 9.5 sensor hcsr


HC-SR04 merupakan sebuah sensor ultrasonik yang berfungsi untuk
besaran fisis (bunyi) menjadi besaran listrik dan sebaliknya. Cara kerja sensor
ultrasonik ini didasarkan pada prinsip dari pantulan suatu gelombang suara
sehingga dapat dipakai untuk menafsirkan eksistensi (jarak) suatu benda dengan
frekuensi tertentu. Disebut sebagai sensor ultrasonik karena sensor ini
menggunakan gelombang ultrasonik (bunyi ultrasonik).

157
Pada praktikum ini, sensor HC-SR04 berfungsi sebagai sensor jarak untuk
mengukur jarak antara dinding dan robot wall follower, sehingga robot tidak
menabrak dinding

9.2.6 Sensor IR

Gambar 9.6 sensor IR


Sensor Infra Red (IR) adalah komponen elektronika yang dapat
mengidentifikasi cahaya infra merah. Sensor infra merah atau detektor infra merah
saat ini ada yang dibuat khusus dalam satu module dan dinamakan sebagai IR
Detector Photomodules. IR Detector Photomodules merupakan sebuah chip
detektor infra merah digital yang di dalamnya terdapat fotodiode dan penguat
(amplifier).
Pada praktikum ini, sensor IR digunakan untuk menangkap pancaran sinar
infra merah yang berasal dari IR remote.

9.2.7 IR Remote

Gambar 9.7 IR Remote

158
IR remote adalah alat pengendali jarak jauh yang digunakan untuk
mengendalikan kerja suatu perangkat elektronik. IR remote bekerja dengan cara
menekan salah satu tombol, lalu remote akan memancarkan sinar infra merah yang
kemudian akan ditangkap oleh sensor IR pada perangkat yang dituju/diarahkan.
Pada praktikum ini, IR remote berfungsi sebagai alat pengendali untuk
mengatur arah gerak robot (maju, mundur, diam, belok kanan, atau belok kiri).

9.2.8 IC L293D

Gambar 9.8 IC l293D


IC L293D adalah sirkuit terpadu (IC) dual H-Bridge driver untuk rangkaian
motor DC. Driver motor ini bertindak sebagai penguat arus dengan mengambil
sinyal kontrol arus rendah dan memberikan output ke sinyal kontrol arus yang lebih
tinggi.
Pada praktikum ini, IC L293D berfungsi sebagai pengendali kecepatan dan
arah putaran dari motor DC.

9.2.9 TinkerCad

Gambar 9.9 tinkercad


TinkerCad adalah salah satu platform berupa web, yang menyediakan sarana
bagi pengguna untuk mempelajari, merangkai model 3D dan rangkaian elektronika,

159
menyusun codeblock, serta menguji rangkaian yang telah dibuat dalam bentuk
simulasi.
Tinkercad merupakan website besutan Autodesk yang merupakan produsen
aplikasi-aplikasi desain grafis seperti AutoCAD yang sudah sangat popular dan
menjadi standar industri manapun.
Pada praktikum ini, tinkercad digunakan sebagai simulator untuk menyusun
dan menguji coba rangkaian.

160
9.3 Dasar Teori
9.3.1 Robot Beroda
Robot beroda daah robot yang bergerak menggunakan roda untuk
berpindah tempat. Adapun robot beroda ini di kasifikasikan berdasarkan jenis dan
jumlah rodanya. Roda seringkali dipilih, karena memberikan traction yang bagus,
mudah diperoleh dan dipakai, dan juga mudah untuk memasangnya pada robot.
Traction merupakan variabel dari material roda dan permukaan yang dilintasi oleh
roda. Material roda yang lebih lembut memiliki koefisien traction yang besar, dan
koefisien traction yang besar ini member gesekan (friction) yang besar pula, dan
memperbesar daya yang dibutuhkan untuk menggerakkan motor.
(Sumber: http://eprints.undip.ac.id/)
9.3.2 Kemudi Differensial
Sistem kemudi pada robot beroda disebut differential steering yaitu
selisih kecepatan antara masing-masing rodanya, dan hal ini memerlukan setiap
roda memiliki motor yang independen. Untuk merubah pergerakan posisi robot
beroda dua tersebut, perlu mengatur kecepatan masing-masing roda Jika robot
bergerak kearah kiri, maka roda kanan diberikan kecepatan berdasarkan nilai PWM
yang lebih besar dari roda kiri. Diperlukan perhitungan untuk memperkirakan
pergerakan dan posisi robot. Beberapa kasus dalam memperhitungkan posisi dan
jarak tempuh robot terdapat sebuah permasalahan terkait baik / buruknya lintasan.
Perhitungan tersebut akan mendekati nilai yang diinginkan apabila lintasan tersebut
berada pada bidang datar.
(Sumber : https://senter.ee.uinsgd.ac.id/)
9.3.3 Navigasi Robot Beroda
Navigasi robot merupakan kemampuan robot untul menentukan
posisinya dalam kerangka acuannya dan kemudian merencanakan jalur menuju ke
beberapa lokasi tujuan dengan melakukan representasi lingkungan agar dapat
meakukan navigasi pada lingkungannya. Ada tiga navigasi robot beroda yaitu
1. Navigasi pengikut garis adalah sebuah robot pengikut garis yang didukang oleh
rangkaian komponen elektronika dan mekanik yang dilengkapi roda dan
digerakan oleh actuator. Pengendalian kecepatansangat bergantung pada
perputaran sebuah actuator yaitu motor dc. Robot dirancang untuk dapat

161
bernavigasi dan bergerak secara otomatismengkitu garis yang telah ditentukan.
Utntuk dapat mengikuti garis robot di lengkapi oleh sensor optic pada bagian
depan robot tersebut.robot dilengkapi sebuah aktuatoor untuk dapat bergerak
dan sebuah mickrokontroler. Robot pengikut garis banyak jenis dan berbagai
bentuk sesuai dengan kreatifitas.
2. Navigasi pengikut dinding Sistem adalah suatu aksi robot untuk mengikuti
dinding dan berada tidak jauh dari dinding, wall following bekerja berdasarkan
prinsip mengikuti suatu objek, dalam hal ini objek tersebut adalah dinding. Wall
following dapat di implementasikan pada beberapa kasus dalam kehidupan kita
sehari – hari dengan menggunakan beberapa algoritma di dalamnya
3. Navigasi deteksi tepi adalah suatu proses yang menghasilkan tepi-tepi dari
obyek-obyek citra, tujuannya adalah untuk memperbaiki detail dari citra yang
kabur, yang terjadi karena error atau adanya efek dari proses akuisisi citra. Suatu
titik (x,y) dikatakan sebagai tepi (edge) dari suatu citra bila titik tersebut
mempunyai perbedaan yang tinggi dengan tetangganya, ketika terdeteksi
perbedaan ketinggian maka robot akan berjalan menjauhi tepi yang memiliki
tinggi yang berbeda dan terus berjalan kearah dimana tinggi tepi sama.
(Sumber : https://elibrary.unikom.ac.id/id/eprint/2837/ , https://media.neliti.com/ , dan
http://repository.uin-suska.ac.id/)

9.3.4 Robot Pengikut Dinding


Robot bergerak atau mobile robot adalah robot yang dapat bergerak atau
berpindah tempat dengan menggunakan roda atau tiruan bentuk kaki. Pengunaan
roda atau tiruan bentuk kaki pada robot bergerak, mempunyai keuntungan sendiri-
sendiri sesuai dengan tujuannya. Pada penggerak dengan roda akan memberikan
kecepatan dalam melintasi bidang yang rata, dan kemudahan dalam desain serta
implementasi, sedangkan penggerak pada robot dengan tiruan bentuk kaki akan
memudahkan robot untuk bergerak di daerah yang halus atau kasar, memanjat
tangga, menghindar, dan melangkah di atas halangan. Robot Wall Follower
termasuk dalam robot yang bergerak, yaitu robot dengan roda sebagai alat geraknya
dan sensor ultrasonik sebagai indra penunjuk jalan dalam menelusuri dinding.
Robot berjalan dengan pembacaan jarak antara dinding ke sensor ultrasonik pada

162
robot, oleh sebab itulah dinamakan Robot Wall Follower atau robot pengikut
dinding
(Sumber: http://eprints.polsri.ac.id/)

163
9.4 Langkah Kerja
9.4.1 Percobaan Robot Manual: Robot Remote Control
1. Buka webside Tinkercad

Gambar 9.10 tinkercad

2. Create New Circuit pada bagian Circuit

Gambar 9.11 buat sirkuit baru

3. Masukkan komponen yang dibutuhkan

Gambar 9.12 komponen yang dibutuhkan

4. Rangkaian percobaan 1

164
Gambar 9.13 Rangkaian percobaan 1
5. Amati hasil dan isi tabelnya

#include <IRremote.h>
int in[4] = {2, 3, 4, 5};
int en[2] = {6,7};
int RECV_PIN = 8;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup()
{
for(int i=0; i<4; i++){
pinMode(in[i], OUTPUT);
}
for(int i=0; i<2; i++){
pinMode(en[i], OUTPUT); }
Serial.begin(9600);
irrecv.enableIRIn(); // Start the receiver
}
void loop() {
if (irrecv.decode(&results)) {
Serial.println(results.value, HEX);
irrecv.resume();
if(results.value==0xFD8877){
analogWrite(en[0],255);
analogWrite(en[1],255);
digitalWrite(in[0],HIGH);
digitalWrite(in[1],LOW);
digitalWrite(in[2],HIGH);
digitalWrite(in[3],LOW);
}
else if(results.value==0xFD28D7){
analogWrite(en[0],255);
analogWrite(en[1],255);
digitalWrite(in[0],LOW);
digitalWrite(in[1],LOW);
digitalWrite(in[2],HIGH);
digitalWrite(in[3],LOW);
}

165
else if(results.value==0xFDA857){
analogWrite(en[0],255);
analogWrite(en[1],255);
digitalWrite(in[0],LOW);
digitalWrite(in[1],LOW);
digitalWrite(in[2],LOW);
digitalWrite(in[3],LOW);
}
else if(results.value==0xFD6897){
analogWrite(en[0],255);
analogWrite(en[1],255);
digitalWrite(in[0],HIGH);
digitalWrite(in[1],LOW);
digitalWrite(in[2],LOW);
digitalWrite(in[3],LOW);
}
else if(results.value==0xFD9867){
analogWrite(en[0],255);
analogWrite(en[1],255);
digitalWrite(in[0],LOW);
digitalWrite(in[1],HIGH);
digitalWrite(in[2],LOW);
digitalWrite(in[3],HIGH);
}
}
delay(100);
}
9.4.2 Percobaan Robot Otonom: Robot Pengikut Dinding
1. Buka webside Tinkercad

Gambar 9.14 tinkercad

2. Create New Circuit pada bagian Circuit

Gambar 9.15 buat sirkuit baru

3. Masukkan komponen yang dibutuhkan

166
Gambar 9.16 komponen yang dibutuhkan

1. Rangkaian percobaan 2

Gambar 9.17 rangkaian percobaan 2

2. Masukkan Source Code


#define tINT 2 // Total number of interrupts
#define triggerPin 4 // Pin number for the common trigger
#define pingDelay 50 // How many milliseconds between each
measurement;
#define debugDelay 200 // How many milliseconds between each
Serial.print;
#define soundSpeed 343.0 // Speed of sound in m/s
volatile unsigned long travelTime[tINT]; // Place to store
traveltime of the pusle
volatile unsigned long startTime[tINT]; // Place to store ping times
(interrupt)

167
volatile float leftwall, frontwall;
unsigned long lastPollMillis;
unsigned long lastDebugMillis;
int in[4] = {5, 6, 7, 8};
int en[2] = {9,10};
void setup()
{
Serial.begin(9600);
Serial.println("--- Serial monitor started ---");
pinMode(triggerPin, OUTPUT);
pinMode(2, INPUT);
pinMode(3, INPUT);
attachInterrupt(0, call_INT0, CHANGE );
attachInterrupt(1, call_INT1, CHANGE );
lastPollMillis = millis();
lastDebugMillis = millis();
}void loop()
{
if (millis() - lastPollMillis >= pingDelay)
{
doMeasurement();
lastPollMillis = millis();
}
if (millis() - lastDebugMillis >= debugDelay)
{
Serial.print("left:");
Serial.print(leftwall);
Serial.print("\tfront:");
Serial.print(frontwall);
Serial.println();
lastDebugMillis = millis();
}

if(frontwall <= 40 && leftwall <= 30){


move_robot(1,0,0,0);
}
else if(frontwall <= 40 && leftwall > 30){
move_robot(0,0,1,0);
}
else if(frontwall > 40 && leftwall <= 30){
move_robot(1,0,1,0);
}
else if(frontwall > 40 && leftwall > 30){
move_robot(0,0,1,0);
}
}
void move_robot(bool in0, bool in1, bool in2, bool in3){
analogWrite(en[0],255);
analogWrite(en[1],255);
digitalWrite(in[0],in0);
digitalWrite(in[1],in1);
digitalWrite(in[2],in2);
digitalWrite(in[3],in3);
delay(1500);
}
void doMeasurement()

168
{
noInterrupts();
frontwall = travelTime[0] / 2.0 * (float)soundSpeed / 10000.0; //
in cm
leftwall = travelTime[1] / 2.0 * (float)soundSpeed / 10000.0; //
in cm
interrupts();

digitalWrite(triggerPin, HIGH);
delayMicroseconds(10);
digitalWrite(triggerPin, LOW);
}
void call_INT0()
{
byte pinRead;
pinRead = digitalRead(2);
interruptHandler(pinRead, 0);
}
void call_INT1()
{
byte pinRead;
pinRead = digitalRead(3);
interruptHandler(pinRead, 1);
}
void interruptHandler(bool pinState, int nIRQ)
{
unsigned long currentTime = micros();
if (pinState)
{
startTime[nIRQ] = currentTime;
}
else
{
travelTime[nIRQ] = currentTime - startTime[nIRQ];
}
}
3. Amati hasil dan isi tabelnya

169
9.5 Hasil Percobaan dan Analisis
9.5.1 Percobaan Robot Manual: Robot Remote Control
Source Code rangkaian percobaan 1
#include <IRremote.h>
int in[4] = {2, 3, 4, 5};
int en[2] = {6,7};
int RECV_PIN = 8;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup()
{
for(int i=0; i<4; i++){
pinMode(in[i], OUTPUT);
}
for(int i=0; i<2; i++){
pinMode(en[i], OUTPUT);
}
Serial.begin(9600);
irrecv.enableIRIn(); // Start the receiver
}
void loop() {
if (irrecv.decode(&results)) {
Serial.println(results.value, HEX);
irrecv.resume();
if(results.value==0xFD8877){
analogWrite(en[0],255);
analogWrite(en[1],255);
digitalWrite(in[0],HIGH);
digitalWrite(in[1],LOW);
digitalWrite(in[2],HIGH);
digitalWrite(in[3],LOW);
}
else if(results.value==0xFD28D7){
analogWrite(en[0],255);
analogWrite(en[1],255);
digitalWrite(in[0],LOW);
digitalWrite(in[1],LOW);
digitalWrite(in[2],HIGH);
digitalWrite(in[3],LOW);
}
else if(results.value==0xFDA857){
analogWrite(en[0],255);
analogWrite(en[1],255);
digitalWrite(in[0],LOW);
digitalWrite(in[1],LOW);
digitalWrite(in[2],LOW);
digitalWrite(in[3],LOW);
}
else if(results.value==0xFD6897){
analogWrite(en[0],255);
analogWrite(en[1],255);
digitalWrite(in[0],HIGH);
digitalWrite(in[1],LOW);
digitalWrite(in[2],LOW);

170
digitalWrite(in[3],LOW);
}
else if(results.value==0xFD9867){
analogWrite(en[0],255);
analogWrite(en[1],255);
digitalWrite(in[0],LOW);
digitalWrite(in[1],HIGH);
digitalWrite(in[2],LOW);
digitalWrite(in[3],HIGH);
}
}
delay(100);
}
Berdasarkan source code diatas terlebih dahulu dideklarasikan library
#include <IRremote.h>. Kemudian int in[4] = {2, 3, 4, 5};
untuk membuat array nilai input yang berasal dari IC L2930 dengan pin 2, 3, 4, 5
arduino. en[2] = {6,7}; untuk pin enable yaitu pin 6 dan 7. Pada bagian void
setup(),pin 2 sampai pin 7, dibuat mode OUTPUT.
Serial.begin(9600);untuk kecepatan pengiriman data pada port serial
sebesar 9600 bps. irrecv.enableIRIn(); digunakan untuk memulai
komponen IR reciever.
Pada bagian Void loop() membaca nilai hex dari IR remote. Terdapat
pengkondisian if, yang pertama yaitu kode if (results.value
==0xFD8877){…}, yang berrti apabila variabel results bernilai 0xFD8877
program akan mengeksekusi. Sehingga robot akan bergerak maju dengan kecepatan
roda kiri sebesar -143RPM dan roda kanan sebesar -143RPM.
Tabel 9.1 Tombol Remote dan Kondisi yang Dihasilkan
Kecepatan Kecepatan Gerak yang
Tombol Kode Hexa
Roda Kiri Roda Kanan dihasilkan
2 0xFD8877 -143RPM -143RPM Maju
4 0xFD28D7 0RPM -143RPM Belok Kiri
5 0xFDA857 0RPM 0RPM Diam
6 0xFD6897 -143RPM 0RPM Belok Kanan
8 0xFD9867 143RPM 143RPM mundur

171
Gambar 9.18 tampilan saat tombol 2 ditekan
Berdasarkan gambar diatas Gearmotor kiri menunjukkan angka kecepatan
-143RPM, sedangkan yang kanan menunjukkan kecepatan -143RPM. Hasilnya
robot akan bergerak kedepan.

Gambar 9.19 saat 4 ditekan


Berdasarkan gambar diatas Gearmotor kiri menunjukkan angka kecepatan
0RPM, sedangkan yang kanan menunjukkan kecepatan -143RPM. Hasilnya robot
akan bergerak kearah kiri.

172
Gambar 9.20 saat 5 ditekan
Gambar 9. 1 Tampilan saat tombol remote nomor “5” ditekan.
Berdasarkan gambar diatas Gearmotor kiri menunjukkan angka kecepatan
0RPM, sedangkan yang kanan menunjukkan kecepatan 0RPM. Hasilnya robot akan
berhenti.

Gambar 9.21 saat 6 ditekan


Berdasarkan gambar diatas Gearmotor kiri menunjukkan angka kecepatan
-143RPM, sedangkan yang kanan menunjukkan kecepatan 0RPM. Hasilnya robot
akan bergerak kearah kanan.

173
Gambar 9.22 saat 8 ditekan
Berdasarkan gambar diatas Gearmotor kiri menunjukkan angka kecepatan
143RPM, sedangkan yang kanan menunjukkan kecepatan 143RPM. Hasilnya robot
akan bergerak kedepan.

9.5.2 Percobaan Robot Otonom: Robot Pengikut Dinding


#define tINT 2 // Total number of interrupts
#define triggerPin 4 // Pin number for the common trigger
#define pingDelay 50 // How many milliseconds between each
measurement;
#define debugDelay 200 // How many milliseconds between each
Serial.print;
#define soundSpeed 343.0 // Speed of sound in m/s
volatile unsigned long travelTime[tINT]; // Place to store
traveltime of the pusle
volatile unsigned long startTime[tINT]; // Place to store ping times
(interrupt)
volatile float leftwall, frontwall;
unsigned long lastPollMillis;
unsigned long lastDebugMillis;
int in[4] = {5, 6, 7, 8};
int en[2] = {9,10};
void setup()
{
Serial.begin(9600);
Serial.println("--- Serial monitor started ---");
pinMode(triggerPin, OUTPUT);
pinMode(2, INPUT);
pinMode(3, INPUT);
attachInterrupt(0, call_INT0, CHANGE );
attachInterrupt(1, call_INT1, CHANGE );
lastPollMillis = millis();
lastDebugMillis = millis();
}

174
void loop()
{
if (millis() - lastPollMillis >= pingDelay)
{
doMeasurement();
lastPollMillis = millis();
}
if (millis() - lastDebugMillis >= debugDelay)
{
Serial.print("left:");
Serial.print(leftwall);
Serial.print("\tfront:");
Serial.print(frontwall);
Serial.println();
lastDebugMillis = millis();
}
if(frontwall <= 40 && leftwall <= 30){
move_robot(1,0,0,0);
}
else if(frontwall <= 40 && leftwall > 30){
move_robot(0,0,1,0);
}
else if(frontwall > 40 && leftwall <= 30){
move_robot(1,0,1,0);
}
else if(frontwall > 40 && leftwall > 30){
move_robot(0,0,1,0);
}
}
void move_robot(bool in0, bool in1, bool in2, bool in3){
analogWrite(en[0],255);
analogWrite(en[1],255);
digitalWrite(in[0],in0);
digitalWrite(in[1],in1);
digitalWrite(in[2],in2);
digitalWrite(in[3],in3);
delay(1500);
}
void doMeasurement()
{
noInterrupts();
frontwall = travelTime[0] / 2.0 * (float)soundSpeed / 10000.0; //
in cm
leftwall = travelTime[1] / 2.0 * (float)soundSpeed / 10000.0; // in
cm
interrupts();
digitalWrite(triggerPin, HIGH);
delayMicroseconds(10);
digitalWrite(triggerPin, LOW);
}
void call_INT0()
{
byte pinRead;
pinRead = digitalRead(2);
interruptHandler(pinRead, 0);
}

175
void call_INT1()
{
byte pinRead;
pinRead = digitalRead(3);
interruptHandler(pinRead, 1);
}
void interruptHandler(bool pinState, int nIRQ)
{
unsigned long currentTime = micros();
if (pinState)
{
startTime[nIRQ] = currentTime;
}
else
{
travelTime[nIRQ] = currentTime - startTime[nIRQ];
}
}
Berdasarkan source code diatas, pertama terdapat perintah #define tINT 2
yaitu untuk mendeklarasikan jumlah interupsi yang digunakan. Selanjutnya
dideklarasikan pin trigger yaitu pada pin 4. Lalu pada #define pingDelay 50
digunakan untuk mengatur jeda pengukuran sensor selama 50 milisekon. Kemudian
#define debugDelay 200 untuk mencetak teks pada serial monitor setiap 200
milisekon sekali. Perintah #define soundSpeed 343.0 mendeklarasikan nilai
kecepatan suara sebesar 343. Lalu deklarasi variabel travelTime[tINT] untuk
menyimpan lama waktu dari pulsa dengan tipe data unsigned long bersifat volatile
atau sementara. Terdapat variabel startTime[tINT]untuk menyimpan waktu ping
(interupsi). Pada void setup(),variabel triggerPin diset ke mode output. Selanjutnya
attachInterrupt(0, call_INT0, CHANGE ); untuk mengatur mode interupsi
CHANGE. lastPollMillis = millis(); sebagai pemanggil nilai millis.
Pada void loop(), terdapat pengkondisian if yaitu if(frontwall <= 40 &&
leftwall <= 30) , apabila nilai variabel frontwall atau nilai pembacaan sensor depan
bernilai kurang dari 40 dan nilai variabel leftwall atau nilai pembacaan sensor kiri
kurang dari 30 sehingga akan menjalankan kode move_robot(1,0,0,0). Perintah
move_robot digunakan untuk mendeklarasikan masukan if yang sebelumnya
berupa analogWrite ke pin enable dan digitalWrite ke pin input.

176
Tabel 9.2 data jarak sensor dan kondisi yang dihasilkan
Jarak pada Kecepatan
Jarak pada Kecepatan Gerak yang
No sensor Roda
sensor kiri Roda Kiri dihasilkan
depan Kanan
0RPM Belok
1 <=40 cm <=30 cm -143RPM
Kanan
2 <=40 cm >30 cm 0RPM -143RPM Belok Kiri
3 >40 cm <= 30 cm -143RPM -143RPM Maju
4 >40 cm >30 cm 0RPM -143RPM Belok Kiri

Gambar 9.23 kondisi 1


Berdasarkan gambar di atas ketika sensor depan mendeteksi dinding berjarak
kurang dari 40cm dan sensor kiri mendeteksi dinding berjarak kurang dari 30cm,
robot akan bergerak berbelok kearah kanan.

177
Gambar 9.24 kondisi 2
Berdasarkan gambar di atas ketika sensor depan mendeteksi dinding berjarak
kurang dari 40cm dan sensor kiri mendeteksi dinding berjarak lebih dari 30cm,
robot akan bergerak berbelok kearah kiri.

Gambar 9.25 kondisi 3


Berdasarkan gambar di atas ketika sensor depan mendeteksi dinding berjarak
lebih dari 40cm dan sensor kiri mendeteksi dinding berjarak kurang dari 30cm,
robot akan bergerak maju kedepan.

178
Gambar 9.26 kondisi 4
Berdasarkan gambar di atas ketika sensor depan mendeteksi dinding berjarak
lebih dari 40cm dan sensor kiri mendeteksi dinding berjarak lebih dari 30cm, robot
akan bergerak berbelok kearah kiri.

179
9.6 Kesimpulan
1. Pada percobaan 1 terdapat pengkondisian if, yang pertama yaitu kode if
(results.value ==0xFD8877){…}, yang berarti apabila variabel
results bernilai 0xFD8877 program akan mengeksekusi.
2. Gear motor digunakan untuk pergerakan robot , robot akan berhenti / mengarah
ke kiri atau pun ke kanan berdasarkan kecepatan pada setiap gear motor dengan
satuan RPM
3. Pada percobaan 2 terdapat deklarasi variabel travelTime[tINT] untuk
menyimpan lama waktu dari pulsa dengan tipe data unsigned long bersifat
volatile atau sementara.
4. Variabel startTime[tINT]untuk menyimpan waktu ping (interupsi).
5. apabila nilai variabel frontwall atau nilai pembacaan sensor depan bernilai
kurang dari 40 dan nilai variabel leftwall atau nilai pembacaan sensor kiri
kurang dari 30 sehingga akan menjalankan kode move_robot(1,0,0,0).

180
BAB X
PENUTUP
10.1 Kesimpulan
1. Arduino Uno diprogram dengan menggunakan Arduino IDE.
2. Bahasa pemrograman yang digunakan oleh Arduino Uno adalah Bahasa C++.
3. Arduino Uno dapat mengontrol perangkat keras sistem tertanam dengan
memanfaatkan pin masukan dan keluaran.
4. Perbedaan Robot dan Sistem Tertanam terdapat pada aktuator, Robot memiliki
fungsi aktuator sedangkan sistem tertanam tidak.
10.2 Saran
10.2.1 Untuk Asisten
1. Asisten diharapkan dapat lebih memperhatikan praktikan yang kesulitan
dalammelakukan praktikum maupun pembuatan laporan.
10.2.2 Untuk Praktikan
1. Praktikan sebaiknya lebih memperhatikan saat asisten sdang
menjelaskan.
2. Praktikan seharusnya menjaga suasana tetap kondusif saat praktikum
berlangsung.
3. Praktikan sebaiknya segera mengerjakan laporan dan tugas yang
diberikan dan tidak menunda-nunda.

181
LAMPIRAN - LAMPIRAN
LEMBAR ASISTENSI
PRAKTIKUM ROBOTIKA
2021
KELOMPOK 5

JUDUL PRAKTIKUM : MODUL PENGANTAR ROBOTIKA


ASISTEN PRAKTIKUM : Daffa Shidqi H (21120117130041)
Muhammad Abdul Majid (21120118140042)
NAMA PRAKTIKAN : Alvin Arrazy (21120118130055)

Keterangan (Hari/Tgl/Jam)
Asistensi Ke TTD Asisten 1 TTD Asisten 2
Laporan Responsi

1 4/5/2021 6/5/2021

Koordinator
Praktikum Robotika 2021

Jonathan Imago Dei G


21120117130054
LEMBAR ASISTENSI
PRAKTIKUM ROBOTIKA
2021
KELOMPOK 5

JUDUL PRAKTIKUM : MODUL PEMROGRAMAN ARDUINO


ASISTEN PRAKTIKUM : Daffa Shidqi H (21120117130041)
Muhammad Abdul Majid (21120118140042)
NAMA PRAKTIKAN : Alvin Arrazy (21120118130055)

Keterangan (Hari/Tgl/Jam)
Asistensi Ke TTD Asisten 1 TTD Asisten 2
Laporan Responsi

1 4/5/2021 7/5/2021

Koordinator
Praktikum Robotika 2021

Jonathan Imago Dei G


21120117130054
LEMBAR ASISTENSI
PRAKTIKUM ROBOTIKA
2021
KELOMPOK 5

JUDUL PRAKTIKUM : MODUL SENSOR CAHAYA DAN SENSOR TEKUKAN


ASISTEN PRAKTIKUM : Petrick Jubel Eliezer (21120117120028)
Muhammad Riziq Yahya (21120118130058)
NAMA PRAKTIKAN : Alvin Arrazy (21120118130055)

Keterangan (Hari/Tgl/Jam)
Asistensi Ke TTD Asisten 1 TTD Asisten 2
Laporan Responsi

1 10/5/2021 11/5/2021

Koordinator
Praktikum Robotika 2021

Jonathan Imago Dei G


21120117130054
LEMBAR ASISTENSI
PRAKTIKUM ROBOTIKA
2021
KELOMPOK 5

JUDUL PRAKTIKUM : MODUL SENSOR DETEKSI OBJEK


ASISTEN PRAKTIKUM : Petrick Jubel Eliezer (21120117120028)
Muhammad Riziq Yahya (21120118130058)
NAMA PRAKTIKAN : Alvin Arrazy (21120118130055)

Keterangan (Hari/Tgl/Jam)
Asistensi Ke TTD Asisten 1 TTD Asisten 2
Laporan Responsi

1 12/5/2021 12/5/2021

Koordinator
Praktikum Robotika 2021

Jonathan Imago Dei G


21120117130054
LEMBAR ASISTENSI
PRAKTIKUM ROBOTIKA
2021
KELOMPOK 5

JUDUL PRAKTIKUM : MODUL AKTUATOR MOTOR SERVO


ASISTEN PRAKTIKUM : Ramadhani BSN (21120117120021)
Firsta Adi Pradana (21120118130059)
NAMA PRAKTIKAN : Alvin Arrazy (21120118130055)

Keterangan (Hari/Tgl/Jam)
Asistensi Ke TTD Asisten 1 TTD Asisten 2
Laporan Responsi

1 21/5/2021

2 22/5/2021 23/5/21

Koordinator
Praktikum Robotika 2021

Jonathan Imago Dei G


21120117130054
LEMBAR ASISTENSI
PRAKTIKUM ROBOTIKA
2021
KELOMPOK 5

JUDUL PRAKTIKUM : MODUL AKTUATOR MOTOR STEPPER


ASISTEN PRAKTIKUM : Ramadhani BSN (21120117120021)
Firsta Adi Pradana (21120118130059)
NAMA PRAKTIKAN : Alvin Arrazy (21120118130055)

Keterangan (Hari/Tgl/Jam)
Asistensi Ke TTD Asisten 1 TTD Asisten 2
Laporan Responsi

1 21/5/2021 23/5/2021

Koordinator
Praktikum Robotika 2021

Jonathan Imago Dei G


21120117130054
LEMBAR ASISTENSI
PRAKTIKUM ROBOTIKA
2021
KELOMPOK 5

JUDUL PRAKTIKUM : MODUL AKTUATOR MOTOR DC DAN H-BRIDGE


ASISTEN PRAKTIKUM : Jonathan Imago Dei G (21120117130054)
Muhammad Adib Bowo L (21120118120036)
NAMA PRAKTIKAN : Alvin Arrazy (21120118130055)

Keterangan (Hari/Tgl/Jam)
Asistensi Ke TTD Asisten 1 TTD Asisten 2
Laporan Responsi

1 24/5/2021

2 25/5/2021 26/5/2021

Koordinator
Praktikum Robotika 2021

Jonathan Imago Dei G


21120117130054
LEMBAR ASISTENSI
PRAKTIKUM ROBOTIKA
2021
KELOMPOK 5

JUDUL PRAKTIKUM : MODUL NAVIGASI ROBOT BERODA


ASISTEN PRAKTIKUM : Jonathan Imago Dei G (21120117130054)
Muhammad Adib Bowo L (21120118120036)
NAMA PRAKTIKAN : Alvin Arrazy (21120118130055)

Keterangan (Hari/Tgl/Jam)
Asistensi Ke TTD Asisten 1 TTD Asisten 2
Laporan Responsi

1 24/5/2021

2 25/5/2021 26/5/2021

Koordinator
Praktikum Robotika 2021

Jonathan Imago Dei G


21120117130054
LAMPIRAN II
TUGAS PENDAHULUAN

Anda mungkin juga menyukai