Anda di halaman 1dari 69

HALAMAN JUDUL SKRIPSI

PROTOTYPE ROBOT FORKLIFT UNTUK PENYUSUN


BARANG BERDASARKAN QR CODE

ADITIYA DWIKA BAYU


NIM. 217180073

PROGRAM STUDI TEKNIK ELEKTRO


FAKULTAS TEKNIK
UNIVERSITAS MUHAMMADIYAH PAREPARE
2023
ii

HALAMAN PERSETUJUAN

PROTOTYPE ROBOT FORKLIFT UNTUK PENYUSUN


BARANG BERDASARKAN QRCODE

ADITIYA DWIKA BAYU


NIM. 217180073

Telah diperiksa dan disetujui untuk mengikuti Seminar Skripsi

Parepare, 27 Agustus 2023


Komisi Pembimbing

Pembimbing I Pembimbing II

Asrul, ST., MT. Ir. A. Muhammad Syafar, ST., MT., IPM.


NBM. 986836 NBM.1152814

Mengetahui:
Ketua Program Studi

Asrul, ST., MT.


NBM. 986 836
iii

HALAMAN INSPIRASI

ِ ‫فَِإ َّن َم َع ْال ُعس‬


‫ْر يُ ْسرًا‬

“ Karena sesungguhnya sesudah kesulitan itu ada kemudahan”

(Q.s Al-Insyirah :5)


PRAKATA

Bismillahirrahmanirrahim

Puji syukur kepada sang pencipta Allah subhanahu wa ta’ala karena

limpahan dan rahmat-Nyalah sehingga penulis dapat menyelesaikan skripsi yang

berjudul “PROTOTYPE ROBOT FORKLIFT UNTUK PENYUSUN

BARANG BERDASARKAN QR CODE”. Adapun tujuan dari penulisan skripsi

ini merupakan hal yang ditempuh oleh mahasiswa Teknik Elektro, Fakultas

Teknik, Universitas Muhammadiyah Parepare dalam penyelesaian tugas akhir

pada jenjang strata S-1.

Dalam penyusunan skripsi ini, tidak sedikit kesulitan dan hambatan yang

penulis alami, namun berkat dukungan, dorongan dan semangat dari orang

terdekat sehingga penulis dapat menyelesaikannya. Oleh Karena itu pada

kesempatan ini penulis mengucapkan banyak terima kasih yang sedalam-

dalamnya kepada:

1. Kepada kedua orang tua saya Bujang dan Mardiati, saya menyampaikan

terima kasih yang sebesar-besarnya atas segala keikhlasan, ketabahan,

pengorbanan, serta Doa restunya.

2. Bapak Asrul, ST., MT. selaku pembimbing 1 yang senantiasa memberikan

saran dan motivasi sehingga penulis dapat menyelesaikan skripsi ini.

3. Bapak Ir. Andi Muhammad Syafar, ST., MT., IPM. selaku pembimbing 2

yang senantiasa memberikan saran dan motivasi sehingga penulis dapat

menyelesaikan skripsi ini.


v

4. Bapak Muhammad Basri, ST., MT. Selaku Dekan Fakultas Teknik

Universitas Muhammadiyah Parepare.

5. Bapak Asrul, ST., MT. Selaku Ketua Program Studi Teknik Elektro, Bapak

Alauddin Y, ST., M.Kom. Selaku Sekretaris Program Studi Teknik Elektro,

Bapak Ashadi Amir, ST., MT. Selaku Kepala Laboratorium Program Studi

Teknik Elektro, dan Dosen Program Studi Teknik Elektro Universitas

Muhammadiyah Parepare yang telah memberikan motivasi dan dorongan

dalam menyelesaikan skripsi ini.

6. Rekan-rekan mahasiswa Teknik Elektro Angkatan 2017 Universitas

Muhammadiyah parepare yang telah memberikan dukungan dan motivasi

dalam menyelesaikan skripsi ini.

Parepare, 23 Februari 2023


Penulis

Aditiya Dwika Bayu


NIM. 217180073
vi

ABSTRAK

ADITIYA DWIKA BAYU Prototype Robot Forklift Untuk Penyusun Barang


Berdasarkan QRcode (dibimbing oleh Asrul dan Andi Muhammad Syafar)

Robot forklift merupakan suatu robot pemindah barang dari satu tempat ketempat
lainnya. Dalam suatu industri produksi yang lebih cepat dan efesian merupakan
suatu penunjang meningkatnya ranting perusahaan tersebut, akan tetapi untuk
mencapai suatu target maka sangatlah dibutuhkan suatu teknologi yang dapat
bekerja dengan sendirinya, terutama dalam pemindahan barang sebagai penentu
letak benda pada posisi masing-masing dan menyimpan secara otomatis sangatlah
berguna untuk mengatasi masaslah tersebut. Tujuan penelitian ini yaitu
merancang prototype robot forklift pemindah barang menggunakan QR code
scanner. Penelitian ini merupakan penelitian pengembangan yang menggunakan
metode R&D (Research and Development). Pengumpulan data yang dilakukan
pada penelitian ini terdiri dari beberapa tahapan. Tahap pertama yaitu studi
literature yang dilakukan untuk mempelajari terkait pergerakan robot forklift dan
mempelajari mengenai koneksi SPI antara arduino dengan kamera QR scanner.
Tahap kedua yaitu melakukan pengujian keefektifitasan dari QR Code Scanner.
Berdasarkan hasil penelitian prototype robot forklift ini menggunakan QRscanner
sebagai pemindai posisi dan motor stepper nema 23 sebagai pembawa objek lalu
motor stepper nema 14 sebagai pendorong objek. Berdasarkan hasil penelitian
maka dapat ditarik kesimpulan alat yang dirancang dapat memindai QRcode dan
melakukan penyimpanan secara otomatis dengan baik tanpa kesalahan dalam
penempatan.

Kata Kunci : Prototype Robot Forklift, QRcode Scanner, Penyimpan Barang


Otomatis.
vii

ABSTRACT

ADITIYA DWIKA BAYU Forklift Robot Prototype for Goods Arrangers Based
on QRcode (supervised by Asrul and Andi Muhammad Syafar)

A forklift robot is a robot that moves goods from one place to another. In an
industry, faster and more efficient production is a support for these companies, but
to achieve a target, a technology that can work by itself is needed, especially in
moving goods as a maker of placing goods in their respective positions. and
saving automatically is very useful to solve the problem. The purpose of this study
is to design a forklift robot prototype for moving goods using a QR code scanner.
This research is a development research that uses the R&D (Research and
Development) method. The data collection carried out in this study consisted of
several stages. The first stage is a literature study conducted to study the
movement of the forklift robot and learn about the SPI connection between
Arduino and the QR scanner camera. The second stage is to test the effectiveness
of the QR Code Scanner. Based on the research results of this forklift robot
prototype using a QRscanner as a position scan and a nema 23 stepper motor as an
object carrier and then a nema 14 stepper motor as an object pusher. Based on the
results of the study, it can be concluded that the designed tool can scan QRcodes
and store automatically properly without errors in placement.

Keywords: Forklift Robot Prototype, QRcode Scanner, Automatic Warehousing.


DAFTAR ISI

Halaman

HALAMAN JUDUL i

HALAMAN PERSETUJUAN ii

PRAKATA iv

ABSTRAK vi

ABSTRACT vii

DAFTAR ISI viii

DAFTAR GAMBAR xi

BAB I PENDAHULUAN 1

A. Latar Belakang 1

B. Rumusan Masalah 2

C. Tujuan Penelitian 2

D. Batasan Masalah 3

E. Manfaat Penelitian 3

BAB II TINJAUAN PUSTAKA 4

A. Kajian Teori 4

1. Sistem Kendali 4

2. Robot Forklift 4

3. Arduino Mega 2560 5

4. Sensor Infra Merah TCRT5000 6

5. Motor Stepper 7
6. Relay Single Channel 8

7. Drive Motor Stepper A4988 10

8. QR Code (Quick Response Code) 11

9. Motor Stepper Driver TB6600 12

10. Modul Step Down Converter 13

11. LCD (Liquid Crystal Display) 16x2 14

12. Sofware Arduino IDE 15

B. Kajian Penelitian Terdahulu 15

BAB III METODE PENELITIAN 17

A. Jenis Penelitian 17

B. Lokasi dan Waktu 17

1. Lokasi 17

2. Waktu 17

C. Alat dan Bahan 18

D. Rancangan Alat Penelitian 18

E. Rancangan Hardware 19

F. Diagram Alir 20

G. Teknik Pengumpulan Data 20

BAB IV HASIL DAN PEMBAHASAN 21

A. Perancangan Hardware 21

B. Perancangan Software 23

C. Pengujian 36
1. Pengujian QRcode Scanner 36

2. Pengujian Sistem 39

BAB V KESIMPULAN DAN SARAN 41

A. Kesimpulan 41

B. Saran 41

DAFTAR PUSTAKA 42

LAMPIRAN 45
DAFTAR TABEL

Halaman

Table 2.1. Spesifikasi Arduino Mega 2560 5

Tabel 2.2. Spesifikasi Motor Stepper 7

Tabel 3.3. Jadwal Penelitian 17

Tabel 3.4. Alat dan Bahan 18

Tabel 4.1. Pengujian QRcode Scanner 21

Tabel 4.2. Pengujian Sistem 23


xi

DAFTAR GAMBAR

Halaman

Gambar2.1. Arduino Mega 2560 6

Gambar2.2. Sensor Inframerah TCRT5000 7

Gambar2.3. Motor Stepper 8

Gambar2.4. Modul Relay Single Channel 10

Gambar2.5. Drive Motor Stepper A4988 11

Gambar2.6. QR Code 11

Gambar2.7. Motor Stepper Driver TB6600 13

Gambar2.8. Modul Stepdown Converter 14

Gambar2.9. LCD 16x2 15

Gambar2.10. SoftwareArduino IDE 15

Gambar 3.1. Blok Diagram Rancangan Alat 18

Gambar 3.2 Diagram Alir 20

Gambar 4. 1Rangkaian Hardware 17

Gambar 4.2. Diagram Alir Software 18

Gambar 4.3. Pengujian QRcode Scanner 21

Gambar 4.4. Pengujian Sistem 23


BAB I

PENDAHULUAN

A. Latar Belakang

Di era modern pada saat ini banyak teknologi yang telah berkembang

mengikuti arus waktu. Teknologi saat ini sangatlah berkembang pesat khususnya

pada bidang robotika. Seiring berjalannya waktu teknologi robotika sangatlah

diperlukan untuk dapat dikembangkan atau diperbaharui oleh manusia untuk

membantu dalam menyelesaikan pekerjaan terutama pada bidang industry sitem

robotika atau system yang dapat bekerja dengan sendirinya sangatlah bermanfaat

dan dapat mengurangi terjadinya kecelakaan kerja (Anisa & Firdaus, 2021)

Robot forklift merupakan suatu robot pemindah barang dari satu tempat

ketempat lainya, forklift banyak ditemukan pada gudang-gudang industry untuk

menyimpan produk yang telah dikemas dan siap untuk diantarkan ke rak atau

tempat penyimpanan pesanan. Barang hasil produksi akan dikelompokkan

berdasarkan jenis atau barang yang sama, produk yang telah dikemas akan

ditumpuk atau disimpan dalam box, box biasaya ditandai dengan warna atau kode

yang berbeda-beda untuk pemilihan produk tersebut masih dilakukan dengan cara

manual atau memisahkan benda yang sama terlebih dahulu kemudian akan

diangkat menggunakan mobil forklift (Maulana dkk, 2019). Dalam suatu industry

produksi yang lebih cepat dan efesian merupakan suatu penunjang meningkatnya

ranting perusahaan tersebut, akan tetapi untuk mencapai suatu target maka
2

sangatlah dibutuhkan suatu teknologi yang dapat bekerja dengan sendirinya,

terutama dalam pemindahan barang.

Robot juga memiliki ketelitian yang cukup tinggi jika dibandingkan dengan

manusia, sebagai contoh pada industry-industry barang kimia pemindahan barang

haruslah dilakukan dengan cara hati-hati dan mengikuti prosedur pemindahan

barang tersebut (Hamid, 2017).Penelitian ini sejalan dengan penelitan yang telah

dilakukan oleh (Budi Herdiana dan Zainal Mutaqin, 2017). Yang mana merancang

sebuah prototype robot forklift pemindah barang 3 lantai, akan tetapi dalam

penelitianya menggunakan sensor infrared sebagai penggerak dan sensor cahaya

LDR sebagai penentu penyimpanan barang sesuai warnanya.

Adapun solusi yang akan ditawarkan oleh peneliti dari permasalahn diatas

yaitu merancang prototype robot forklift pemindah barang menggunakan QR code

scanner sebagai penentu letak benda pada posisi masing-masing dan menyimpan

secara otomatis.

B. Rumusan Masalah

Berdasarkan uraian pada latar belakang maka yang menjadi rumusan

masalah pada penelitian ini adalah bagaimana merancang mekanik dan elektronik

prototype robot forklift pemindah barang menggunakan QR code scanner?

C. Tujuan Penelitian

Tujuan penelitian ini yaitu merancang system kendali prototype robot

forklift pemindah barang menggunakan QR code scanner!


3

D. Batasan Masalah

1. Robot menggunakan mikrokontroler jenis arduino

2. Beban objek tidak lebih dari 200gram.

3. Lift digerakkan oleh motor stepper.

4. Hanya memiliki 3 rak penyimpanan untuk 3 objek.

E. Manfaat Penelitian

Adapun manfaat dari penelitian ini terkait prototype robot forklift pemindah

barang berdasarkan QR code scanner diharapkan dapat dikembangkan dalam

skala besar sehingga bisa diimplementasikan dan ditawarkan kepada industri-

industri yang membutuhkan system otomatis robotic.


BAB II

TINJAUAN PUSTAKA

A. Kajian Teori

1. Sistem Kendali

Sistem kendali merupakan proses mengatur satu atau lebih parameter yang

akan dikontrol. System kendali adalah sekumpulan piranti yang bekerja sama

dengan tujuan mengendalikan suatu peralatan tertentu, piranti yang biasanya

dikontrol adalah alat-alat elektronik yang dikombinasikan dengan beberapa alat

yang lainya atau sensor yang digunakan (Sibiti & Rosman, 2021).

2. Robot Forklift

Mobile robot merupakan robot yang ciri khasnya mempunyai actuator sebagai

penggeraknya untuk dikendalikan dari tempat satu ke tempat lainya (Wibowo

dkk, 2018). Mobile robot biasanya memiliki 4 roda sebagai penggerak robot juga

dapat dikendalikan secara manual maupun otomatis.

Forklift adalah suatu alat yang terdiri dari body (badan) dan work equipment

(perangkat kerja) yang dipakai untuk memuat barang. Fungsi dari alat ini yaitu

untuk meindahkan barang dari satu tempat ke tempat lain atau menyusun barang

dari yang terendah ketertinggi, biasanya alat ini digunakan pada industri-industri

(Wibowo dkk, 2018). Robot forklift merupakan mobile robot yang menggunakan

4 roda dan sebuah gripper untuk memindahkan barang dari satu tempat ketempat

yang lainya untuk disusun berdasarkan dengan bentuknya atau tempatnya.


5

3. Arduino Mega 2560

Arduino Mega 2560 merupakan pengembangan mikrokontroler berbasis

arduino dengan mengginakan IC ATmega2560. Mikrokontroler ini memiliki pin

I/O berjumlah 54 slot (terdiri dari 14 pin PWM), 16 pin analog input, 4 pin UART

(serial port hardware). Jenis mikrokontroler arduino memiliki banyak macam

bentuk yang berbeda-beda namun tujuan dan kegunnanya tetap sama sebagai otak

atau pengendali dari suatu system (Natsir dkk, 2019). Untuk spesifikasi arduino

mega 2560 dapat dilihat pada table 2.1.

Table 2.1. Spesifikasi Arduino Mega 2560


No. Spesifikasi
1 Microkontroller ATmega2560
2 Tegangan Operasi 5V
Tegangan Input
3 7-12V
(Rekomendasi)
4 Tegangan Input (Batas) 6-20V
5 Pin Digital I/O 54 (Terdiri dari 14 Pin PWM)
6 Pin Analog 16
77 7 Arus DC per I/O 40 mA
8 Arus DC Pin 3.3V 50 mA
9 Flash Memori 256 KB dan 8 KB Untuk Bootloader
10 SRAM 8 KB
11 EEPROM 4 KB
12 Clock Speed 16 MHz
Sumber : Implementasi IOT Untuk Sistem Kendali AC Otomatis Pada Ruang
Kelas di Universitas Serang Raya.

Arduino adalah perangkat keras yang sifatnya open source atau dapat

digunakan oleh semua orang. Mikrokontroler jenis arduino dirancang sedemikian

rupa untuk mempermudah pengguna dalam mengembangkan suatu proyek

elekrtronik yang bersifat otomatis. Arduino mempunyai perangkat lunak tersendiri

yaitu arduino IDE dimana menggunakan bahasa C++ sebagai perintah untuk

menjalankan perangkat yang akan dikendalikan (Amin dkk,2020).


6

Gambar2.1. Arduino Mega 2560


(Sumber: Implementasi IOT Untuk Sistem Kendali AC Otomatis Pada
Ruang Kelas di Universitas Serang Raya.)
4. Sensor Infra Merah TCRT5000

Sensor Infra Merah TCRT5000 merupakan salah satu komponen elektronik,

digunakan untuk mendeteksi cahaya inframerah. Sensor ini ada dua bagian

penting yaitu Transmiter sebagai pemancar dan receiver bertindak sebagai

penerima reflektif. Prinsip kerjanya adalah pemancar memancarkan sinar infra

merah jika diblokir oleh objek reflektif sinar inframerah kemudian akan

dipantulkan dan dideteksi oleh penerima. Sensor ini kemudian dapat digunakan

sebagai pendeteksi objek antara hitam dan putih. Kemampuan deteksi sensor

dapat diatur menggunakan potensiometer yang sudah terpasang pada modul

(Muhamad Sofiyudin, 2020).

Inframerah adalah radiasi elektromagnetik yang tidak dapat dilihat dan

terletak pada spektrum warna merah. Sinar inframerah mencakup lebar jangkauan

gelombang sinar antara 0.75-1000 μ dan sekitar 80% cahaya matahari terdiri dari

sinar inframerah. Sensor inframerah digunakan untuk mendeteksi perubahan

tegangan menggunakan sinyal inframerah dan terdiri dari dua bagian yaitu

pemancar (transmitter) dan penerima (receiver), seperti yang sudah kita ketahui.

(Bahtiar dkk, 2019)


7

Gambar2.2. Sensor Inframerah TCRT5000


(Sumber: Model Pengembangan Konveyor Otomatis Dengan Sensor Warna Hitam
Putih Tipe TCRT-5000 Dan Sensor Deteksi Keberadaan Objek TIPE KY-018)
5. Motor Stepper

Motor stepper merupakan suatu motor listrik yang mengubah dapat sinyal

listrik menyadi gerakan motor discret (terputus) atau disebut step (langkah).

Setiap putaran motor memerlukan 3600 dari jumlah langkah yang tertentu per

derajatnya. Motor stepper biasanya diukur dari jumlah langkah putaran per detik,

motor stepper bergerak berdasarkan ukuran pulsa yang di berikan melalui

mikrokontroler. Untuk menggerakkan motor stepper maka perlu sebuah driver

motor yang membagikan pulsa periodic (Latifa & Saputro, 2018). Spesifikasi

motor stepper dapat dilihat pada tabel 3.2.

Tabel 2.2. Spesifikasi Motor Stepper


No. Spesifikasi
1 Tipe Motor Nema14 14HS13-0804D
2 Ukuran 35.35 mm
3 Berat 175g/ pc
4 Panjang 35 mm
5 Port Kabel 6 pin female PH2.0
6 Sudut Langkah 2,80
7 Torsi Tahan 180mN.m
8 Tegangan Kerja 3,3 V
9 Tegangan Input 5V
10 Arus Terukur 1,5 A
Sumber: Perancangan Robot Arm Gripper Berbasis Arduino Uno Menggunakan
Antarmuka Labview.
Motor stepper adalah jenis yang putaranya berdasarkan langkah. Motor

stepper umumnya banyak digunakan pada bidang-bidang industry seperti pada


8

mesin CNC, robot pemindah barang, lengan robot dan masih banyak digunakan

pada bidang yang lainya, mengapa stepper lebih banyak digunakan karena

kemampuanya dalam dikontror bersifat open loop (umpan balik). Motor stepper

merupakan sebuah motor DC yang mempunyai komutator, stepper memiliki

kumparan pada bagian stator dan bagian kumparan merupakan sebuah magnet

yang terpasang permanen. Ukurun step berada pada range 0,90 sampai dengan 900,

posisi putaranya yang sangat relative stabil dibandingkan dengan putaran motor

servo (Cahyono & Harianto, 2017).

Gambar2.3. Motor Stepper


(Sumber: Rancang Bangun Mesin Meja Plasma Cutting Dengan
Gerak 3 Axis X, Y, Z Menggunakan Motor Stepper Berbasis Arduino)
6. Relay Single Channel

Relay merupakan komponen elektronik yang memiliki fungsi memutus atau

menghubungkan suatu rangkaian elektronik dengan rangkaian elektronik lainnya.

Relay memiliki fungsi yang sama dengan saklar yaitu untuk menghidupkan /

memutuskan beban. Modul Relay Single Channel 5V dengan output 1 channel

kompatibel dengan semua mikrokontroler terutama Arduino (Abadi dkk, 2021).

Pada dasarnya, Relay terdiri dari 4 komponen dasar yaitu :


9

1. Electromagnet (Coil)

Merupakan lilitan yang terbentuk dari kawat tembaga dengan lapisan email

yang fungsinya sebagai pembentuk medan magnet ketika mendapatkan

tegangan listrik yang sesuai dengan tegangan kerja relay.

2. Armature

Merupakan material atau lempengan logam yang berfungsi sebagai tuas

kontak yang bergerak merubah posisi kontak tergantung dari sifat magnet dari

komponen inti besi yang mempengaruhinya.

3. Switch Contact Point (Saklar)

Merupakan bagian dari relay yang berfungsi sebagai kontak output relay.

Switch kontak ini terdapat 2 kondisi yaitu NO (normally open) dan NC

(normally close). Normally open maksudnya adalah bahwa kontak relay

secara normal saat lilitan

A1 dan A2 belum mendapat tegangan adalah kontak terbuka. Sedangkan

normally close maksudnya adalah bahwa kontak relay secara normal saat

lilitan A1 dan A2 belum mendapat tegangan adalah kontak tertutup.

4. Spring

Spring merupakan bagian dari relay yang berfungsi mengembalikan posisi

switch contact poin relay saat lilitan koil A1dan A2 tidak bertegangan (Abadi

dkk, 2021).
10

Gambar2.4. Modul Relay Single Channel


(Sumber: Rancang Bangun Pemutus Tegangan Pada KWH Meter
Pelanggan PLN)
7. Driver Motor Stepper A4988

A4988 adalah driver motor microstepping dirancang untuk mengoperasikan

motor stepper bipolar dalam mode langkah penuh, setengah, seperempat, delapan,

dan enam belas. Terdapat potensio untuk mengatur arus keluaran dengan

tegangan nominal 3 hingga 5.5 V DC. Untuk arus maksimum 2 amper diperlukan

heat sink (pendingin) dan tanpa heat sink untuk arus 1 ampere (Fathoni, 2022).

Driver motor stepper A4988 menggunakan metode kontrol arus langkah

(step) dan arah putaran (direction) untuk mengendalikan motor stepper. Driver ini

menerima sinyal langkah dan arah dari mikrokontroler atau sistem kontrol

lainnya, lalu menghasilkan arus dan tegangan yang diperlukan untuk

menggerakkan motor stepper dengan presisi.

1. Pin dan Koneksi: Driver A4988 memiliki beberapa pin yang umum

digunakan, antara lain:

 VDD: Sumber tegangan logika (biasanya 3.3V atau 5V).

 GND: Ground (tanah).

 STEP: Pin input pulsa/langkah.

 DIR: Pin input arah putaran.

 ENABLE: Pin input enable (aktif low).


11

 MS1, MS2, MS3: Pin pemilihan mode mikrostep.

Gambar2.5. Drive Motor Stepper A4988


(Sumber: Dokumentasi Pribadi)
8. QR Code (Quick Response Code)

Quick Response code merupakan dua dimensi yang dikembangkan oleh

perusahaan Denso-Wave di jepang pada tahun 1994. QR code merupakan matriks

dua dimensi yang mampu menyimpan data didalamnya. QR code adalah

pengembangan dari kode batang (barcode). Barcode adalah symbol atau penanda

dari suatu objek atau benda yang terbuat dari pola-pola vatang berwarna hitam

dan putih agar mudah dikenali oleh computer (Rois, 2018). QR code mampu

menyimpan jenis data seperti data angka/ numeric, alphnumerik, biner, kanji/kana.

QR code juga mampu menampung data secara horizontal dan vertical, maka

secara otomatis ukuran tampilan gambar QR code hanya bisa sepuluh dari ukuran

barcode (Adiguna & Gunawan, 2016).

Gambar2.6. QR Code
12

(Sumber: Dokumentasi Pribadi)


9. Motor Stepper Driver TB6600

Motor Stepper Driver TB6600 ini dipilih karena mempunyai daya tinggi

dengan arus maksimum 4,5A dan arus starting hingga 5A. Tegangan untuk driver

ini mampu menampung hingga 45V. Spesifikasi driver ini mampu menggerakan

motor stepper dengan menghasilkan kecepatan serta torque yang diingkan

(Suryati, 2019)

Driver motor stepper TB6600 bekerja dengan menerima sinyal kendali dari

mikrokontroler atau sistem kontrol lainnya, kemudian menghasilkan sinyal daya

yang tepat untuk menggerakkan motor stepper. Driver ini menggunakan prinsip

kontrol arus konstan (constant current control) untuk memastikan motor stepper

beroperasi secara efisien dan terlindungi dari arus yang berlebihan.

1. Pin dan Koneksi:

 TB6600 umumnya memiliki beberapa pin yang umum digunakan,

antara lain:

 VCC: Sumber tegangan input (biasanya 12-36V DC).

 GND: Ground (tanah).

 PUL+: Pin input pulsa.

 DIR+: Pin input arah putaran.

 ENA+: Pin input enable.

 A+, A-, B+, B-: Pin output untuk koneksi ke motor stepper.
13

Gambar2.7. Motor Stepper Driver TB6600


(Sumber: Dokumentasi Pribadi)

10. Modul Step Down Converter

Modul stepdown ini digunakan untuk menurunkan tegangan DC. Selisih

minimum input dan output yaitu 1,5 VDC. Namun selisih dari tegangan tersebut

tidak akan mempengaruhi kinerja dari piranti yang akan di control selama

selisinya tidak beda jauh. Arus maksimal pada modul ini yaitu 3A dengan range

tegangan 3,2V sampai dengan 4,6 V (Sirait, 2019).

 Fitur utama dan penggunaan modul step down antara lain:

Tegangan Output yang Stabil: Modul step down dirancang untuk

menghasilkan tegangan output yang stabil dan terkontrol secara elektronik. Ini

memungkinkan penggunaannya dalam aplikasi di mana tegangan yang tepat dan

konstan diperlukan, seperti rangkaian elektronik, mikrokontroler, dan perangkat

elektronik portabel.

Efisiensi Tinggi: Modul step down biasanya memiliki efisiensi yang tinggi,

yang berarti daya yang diserap dari sumber input hampir sepenuhnya digunakan

untuk memasok beban atau perangkat yang membutuhkan tegangan output. Hal

ini mengurangi pemborosan energi dan menghasilkan panas yang lebih sedikit.
14

Perlindungan dan Fitur Keselamatan: Beberapa modul step down dilengkapi

dengan fitur perlindungan seperti perlindungan arus berlebih (overcurrent

protection), perlindungan suhu berlebih (overtemperature protection), dan

perlindungan pendek sirkuit (short circuit protection). Fitur-fitur ini membantu

menjaga modul dan perangkat terhubung tetap aman dari kerusakan akibat kondisi

yang tidak diinginkan.

Kemampuan Regulasi Tegangan: Modul step down biasanya dapat diatur

untuk menghasilkan tegangan output yang berbeda melalui pengaturan komponen

atau potensiometer yang ada pada modul. Hal ini memungkinkan pengguna untuk

menyesuaikan tegangan output sesuai dengan kebutuhan sistem atau perangkat

yang terhubung.

Gambar2.8. Modul Stepdown Converter


(Sumber: Sistem Komunikasi ROV (Romotely Operated Vehcle) Pada
Robot Under Water Menggunakan Wireless)

11. LCD (Liquid Crystal Display) 16x2

LCD (Liquid Crystal Display) adalah display elektronik yang dibuat dengan

teknologi CMOS logic yang beroperasi dengan tidak menghasilkan cahaya tetapi

memantulkan cahaya yang ada di sekelilingnya tehadap front-line

mentransmisikan cahaya back lit (Rahmat & Sidik, 2019).


15

Gambar2.9. LCD 16x2


(Sumber: Dokumentasi Pribadi)

12. Sofware Arduino IDE

Mikrokontroller jenis arduino merupakan flatfrom komputasi fisik yang

bersifat open source, penggunaan arduino harus disertai dengan sebuah bahasa

program C++ yang ditulis menggunakn software IDE (Integrated Development

Environment ). Arduino IDE membangun sebuah program yang akan ditanamkan

dalam mikrokontroller Atmega 328 yang dinamakan dalam modul Arduino sketch

(Prio, 2017).

Gambar2.10. SoftwareArduino IDE


(Sumber: Dokumentasi Pribadi)

B. Kajian Penelitian Terdahulu

Perancangan alat prototype robot forklift telah dilakukan oleh, Budi Herdiana

dan Zainal Mutaqin yaitu merancang prototype robot forklift menggunakan


16

infrared sebagai penggerak dan sensor cahaya LDR sebagai penentu penyimpanan

barang sesuai dengan warnanya (Herdiana & Mutaqin, 2017).

Perancangan prototype robot forklift yang dilakukan oleh, (Srimayanti, 2021)

menggunakan wifi module ESP8266 sebagai mikrokontroller, yang dikontrol

melalui aplikasi dan dalam kendali gripper masih dilakukan secara manual yang

berbasis ESP8266.
BAB III

METODE PENELITIAN

A. Jenis Penelitian

Penelitian ini merupakan penelitian pengembangan yang menggunakan

metode R&D (Research and Development). Penelitian ini merupakan

pengembangan secara procedural yang bersifat deskriftif menunjukkan tahapan

yang harus diikuti dalam menghasilkan sebuah produk tertentu dan menguji

kefektifitasan produk tersebut.

B. Lokasi dan Waktu

1. Lokasi

Lokasi pelaksanaan perancangan alat dan penelitian akan dilakukan di

Laboratorium Teknik Elektro Universitas Muhammadiyah Parepare (UMPAR).

2. Waktu

Penelitian dilakukan pada bulan Oktober 2022 sampai pada bulan Desember

2022. Untuk waktu penelitian dapat dilihat pada table dibawah ini:

Tabel 3.3. Jadwal Penelitian


18

C. Alat dan Bahan

Alat dan bahan yang digunakan untuk perancangan prototype robot forklift

dapat dilihat pada tabel 3.2.

Tabel 3.4. Alat dan Bahan


No. Alat dan Bahan Qty

1 Arduino Mega2560 1 Buah


2 Modul Step Down 1 Buah
3 Motor Stepper 2 Buah
4 LCD 16x2 1 Buah
5 Kamera QR Scanner 1 Buah
6 Motor Stepper Driver A4988 1 Buah
7 Motor Stepper Driver TB6600 1 Buah
8 Sensor Infrared 1 Buah
9 Modul Relay 1 Buah
10 Papan PCB 1 Buah
11 Kabel Jumper 10 Buah
12 Solder 1 Set

D. Rancangan Alat Penelitian

Rancangan alat yang akan diteliti nantinya dapat dilihat pada gambar blok

diagram 3.1.

Gambar 3.1. Blok Diagram Rancangan Alat


19

Blok diagram pada Gambar 3.3 adalah gambaran system prototype robot

forklift pemindah barang berdasarkan QR code, untuk perancangan alat pada input

robot yaitu QR code scanner untuk memilih dan memindahkan barang sesuai

tempatnya berdasarkan code yang di scanner secara otomatis

Untuk pengendali pergerakan pengangkat barang dikendalikan secara

otomatis menggunakan motor stepper, dan mikrokontroller dari perancangan alat

ini adalah arduino mega2560. Output dari perancangan robot ini yaitu robot akan

secara otomatis mendeteksi dan menyimpan benda yang telah di scan melalui

kamera QR Code scanner.

E. Rancangan Hardware

Saat objek diletakkan pada lift, Sensor Infrared akan mendeteksi ada

objek diatasnya, lalu Sensor Infrared akan mengirimkan sinyal ke

Mikrokontroler, mikrokontroler akan mengirimkan perintah ke QRscanner

GM67. Kemudian QRScanner akan membaca QRcode pada objek dan

mengirimkan datanya ke Mikrokontroler. Mikrokontroler akan berikan

perintah ke Motor Stepper untuk naik ke posisi yang sesuai dengan data

QRcode, setelah sampai pada posisi Motor Stepper 2 akan mendorong

objek kedalam penyimpanan. Kemudian Motor Stepper akan kembali ke

posisi stanby.
20

F. Diagram Alir

Gambar 3.2 Diagram Alir

G. Teknik Pengumpulan Data

Pengumpulan data yang dilakukan pada penelitian ini terdiri dari beberapa

tahapan. Tahap pertama yaitu studi literature yang dilakukan untuk mempelajari

terkait pergerakan robot forklift dan mempelajari mengenai koneksi SPI antara

arduino dengan kamera QR scanner. Tahap kedua yaitu melakukan pengujian

keefektifitasan dari QR Code Scanner kemudian menyusun benda secara otomatis

pada rak atau tempat yang sesuai dengan code masing-masing benda.
BAB IV

HASIL DAN PEMBAHASAN

A. Perancangan Hardware

Perancangan Hardware atau Perangkat Keras pada Prototype Robot Forklift

Penyusun Barang Berdasarkan QRcode secara umum dapat dilihat pada Gambar

4.1 .

VDD
VSS

VEE

RW
RS

D0
D1
D2
D3
D4
D5
D6
D7
+5V

E
LCD?
1
2
3

4
5
6

7
8
9
10
11
12
13
14
LM016L

PCF8574
14 4
SCL P0
15 5
SDA P1
6
+5 V

P2
13 7
INT P3
9
P4
1 10
A0 P5
2 11
A1 P6
3 12
A2 P7

ARDUINO MEGA 2560


TestPin
Infrared Sensor

+5 V
Vcc
OUT GND

www.TheEngineeringProjects.com
www.TheEngineeringProjects.com
Arduino Mega 2560

Sensor IR QR Scanner
ON

ENABLE
Stepper Kecil 1 9
ON
ON

MS1 VMOT
2 10
Driver Stepper

MS2 GND
3 11
MS3 2B
4 12
RESET 2A
5 13
SLEEP 1A
6 14
+88.8 STEP 1B RESET
7 15 +5 V AREF
DIR VDD
8 16
GND
1
2

3
4
5
6

13 VCC
ATMEGA2560

PB7/OC0A/OC1C/PCINT7
12 GND
16AU 1126

PB6/OC1B/PCINT6
VCC

RX2
GND
PB
PB
TXD

11
PB5/OC1A/PCINT5 A0
10 PF0/ADC0
PB4/OC2A/PCINT4 A1
9 PF1/ADC1
PH6/OC2B A2
+5 V

8 PF2/ADC2
1 PH5/OC4C A3
PWM

ENA- PF3/ADC3
2 A7
PF7/ADC7/TDI
TB6600 Stepper Motor Driver

ENA+ 7
3 PH4/OC4B A6
ANALOG IN

DIR- 6 PF6/ADC6/TDO
4 PH3/OC4A A5
DIR+ 5 PF5/ADC5/TMS
5 PE3/OC3A/AIN1 A4
Stepper Besar PUL- 4 PF4/ADC4/TCK
6 PG5/OC0B
PUL+ 3
PE5/OC3C/INT5 A8
2 PK0/ADC8/PCINT16
7 PE4/OC3B/INT4 A9
B- 1 PK1/ADC9/PCINT17
8 PE1/TXD0/PDO TX0 A10
B+ 0 PK2/ADC10/PCINT18
PE0/RXD0/PCINT8RX0 A11
9 PK3/ADC11/PCINT19 RELAY
COMUNICATION

A- A12
10 14 PK4/ADC12/PCINT20
A+ PJ1/TXD3/PCINT10 TX3 A13
+88.8 11 15 PK5/ADC13/PCINT21
GND PJ0/RXD3/PCINT9 RX3 A14
12
Reset BTN

VCC 16 PK6/ADC14/PCINT22
PH1/TXD2 TX2 A15
17 PK7/ADC15/PCINT23
PH0/RXD2 RX2
18
PD3/TXD1/INT3 TX1
19
PD2/RXD1/INT2 RX1
+5 V

Limit Swicht 20
PD1/SDA/INT1 SDA
21
PD0/SCL/INT0 SCL
DIGITAL
PB3/MISO/PCINT3
PB2/MOSI/PCINT2
PB1/SCK/PCINT1

Vin
PB0/SS/PCINT0

+12 V 1 5
Feedback L1
+5 V

4
OUT 330uH
PL5/OC5C
PL4/OC5B
PL3/OC5A

C1
PL1/ICP5
PL0/ICP4
2

PG2/ALE
PA0/AD0
PA1/AD1
PA2/AD2
PA3/AD3
PA4/AD4
PA5/AD5
PA6/AD6
PA7/AD7
PC7/A15
PC6/A14
PC5/A13
PC4/A12

PC2/A10
PC3/A11

PG0/WR
PG1/RD
PC1/A9
PC0/A8
PD7/T0

PL2/T5

680u C2
D1
GND
ON/OFF

PL7
PL6

220u
1N5284
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53

-12 V

Gambar 4. 1Rangkaian Hardware


22

Adapun komponen yang digunakan pada perancangan perangkat keras

pada penelitian ini yaitu :

1. Sensor infrared yang berfungsi sebagai alat untuk mendeteksi barang,

terhubung ke 5V, Ground dan pin 9 pada arduino

2. QRScanner yang berfungsi sebagai alat yang mendeteksi QRCode yang

ada pada barang, yang terhubung NO dengan relay agar tidak menyala

sebelum infrared mendeteksi objek diatasnya, VCC dan Ground terhubung

ke step down dan Rx Tx terhubung ke RX2 dan TX2 pada arduino.

3. Limit Switch yang berfungsi sebagai alat yang membatasi posisi paling

bawah motor stepper Nema 23, terhubung ke pin A6 pada arduino dan

Ground.

4. Arduino Mega 2560 yang berfungsi sebagai mikrokontroler yang

mendapat sumber dari step down.

5. Lcd (Liquid Crystal Display) yang berfungsi untuk menampilkan posisi,

pin Vcc dan Ground terhubung ke step down, SDA ke pin 20 pada arduino

dan SCL ke pin 21 pada arduino.

6. Motor Stepper Driver TB6600 yang berfungsi sebagai driver NEMA 23,

pin ENA-, DIR-, PUL-, GND terhubung ke Ground, Direct ke pin 4

arduino, Step ke pin 3 arduino, dan VCC ke 5V.

7. Motor Stepper Driver A4988 yang berfungsi sebagai driver NEMA 14,

Direct terhubung ke pin 7 arduino, Step terhubung ke pin 8 arduino, VCC

terhubung ke 5V, GND ke Ground.


23

8. Motor Stepper NEMA 23 yang berfungsi untuk menggerakkan naik turun

lift penyimpanan, terhubung ke pin 7, 8, 9 dan 10 pada motor driver

TB6600.

9. Motor Stepper NEMA 14 yang berfungsi untuk mendorok objek kedalam

penyimpanan, terhubung ke pin 1A, 2A, 2B dan Ground pada motor driver

A4988.

10. Modul relay yang berfungsi sebagai saklar on/off QRCode Scanner, VCC

dan Ground terhubung ke step down dan data ke pin A7 arduino.

B. Perancangan Software

Perancangan perangkat lunak atau perancangan software ini bertujuan untuk

mengatur kinerja pada input dan output dari perangkat keras dengan adanya

instruksi-instruksi yang dimasukkan ke Arduino. Flowchart prinsip kerja sistem

dapat dilihat pada gambar dibawah ini.


24

Gambar 4.2. Diagram Alir Software

Pada Gambar 4.2 merupakan diagram alir prototype robot forklift penyusun

barang berdasarkan QRcode, menyalakan alat dengan meletakkan barang objek 1

diatas sensor infrared, lalu QRscanner membaca QRcode. Ketika QRcode terbaca

maka motor stepper naik membawa objek dan meletakkan barang ke rak

penyimpanan 1 ketika tidak terbaca maka objek tidak akan dibawa oleh motor

stepepr ke rak penyimpanan yang telah ditentukan, begitupun objek ke-2 dan

objek ke-3.
25

Adapun penjelasan sketch program pada menu standby adalah sebagai

berikut:

menuStandby:
if(digitalRead(ok)==0){delay(150);goto
menuDaftar;}
inString=""; //mengosongkan data dari serial
lcd.setCursor(0,0); lcd.print("MULAI....");
//tampilan LCD dengan tulisan mulai
lcd.setCursor(0,1); lcd.print("SCAN BARCODE !");
//tampilan LCD
if (digitalRead(pinIR)==0 && statusIR==0)
{bacaEEPROM();delay(1000);QRklik();statusIR==1;lcd.c
lear();goto menuScan;}
goto menuStandby;

Program di atas adalah bagian dari "menuStandby". Berikut adalah penjelasan

langkah-demi-langkah mengenai program tersebut:

1. Jika tombol “OK” ditekan, maka akan menunggu selama 150ms, dan

kemudian melompat ke label “menuDaftar”

inString="";
lcd.setCursor(0,0); lcd.print("MULAI....");
lcd.setCursor(0,1); lcd.print("SCAN BARCODE !");
if (digitalRead(pinIR)==0 && statusIR==0)
{bacaEEPROM();delay(1000);QRklik();statusIR==1;lcd.
clear();goto menuScan;}
goto menuStandby;

2. Mengosongkan string ‘inString’ yang akan digunakan untuk membaca data

dari serial. Menampilkan pesan “MULAI….” Dan “SCAN BARCODE !”

pada layar LCD.

if (digitalRead(pinIR)==0 && statusIR==0)


{bacaEEPROM();delay(1000);QRklik();statusIR==1;lcd.cl
ear();goto menuScan;}
goto menuStandby;
26

3. Jika sensor IR mendeteksi objek (bernilai 0) dan ‘statusIR’ adalah 0

(belum mendeteksi sebelumnya), maka fungsi ‘bacaEEPROM()’ akan

dipanggil untuk membaca data dari EEPROM. Selanjutnya, fungsi

‘QRklik()’ akan dipanggil untuk mengaktifkan sensor QR dengan

mengatur relayQR menjadi HIGH dan kemudian LOW setelah 2 detik

‘statusIR’ akan diubah menjadi 1 untuk menghindari mendeteksi terus-

menerus. Layar LCD akan dihapus dan program akan melompat ke label

‘menuScan’.

Untuk sketch program yang digunakan QRscanner untuk mendeteksi QRcode

adalah sebagai berikut:

menuScan:
while (Serial1.available()>0)
{inString=Serial1.readString();
dataInt=inString.toInt();

1. Ini adalah loop yang berjalan selama ada data yang tersedia di objek

Serial1. Loop ini mengambil data dari Serial1 menggunakan fungsi

readString() dan mengkonversi data tersebut menjadi tipe integer

menggunakan toInt(). Data tersebut diwakili oleh variabel dataInt dan

digunakan untuk memeriksa apakah kode QR yang terbaca cocok dengan

kode yang telah ditentukan sebelumnya.Setelah mendapatkan nilai integer

dari data QR, program memeriksa nilai tersebut dalam serangkaian

percabangan ‘if’

if (dataInt == dataQR1)
{Serial.println("posisi1");inString="";lcdCode1();posisi1();l
cd.clear();goto menuStandby;}
if (dataInt == dataQR3)
{Serial.println("posisi1");inString="";lcdCode1();posisi1();l
cd.clear();goto menuStandby;}
27

if (dataInt == dataQR5)
{Serial.println("posisi1");inString="";lcdCode1();posisi1();l
cd.clear();goto menuStandby;}
if (dataInt == dataQR7)
{Serial.println("posisi2");inString="";lcdCode2();posisi2();l
cd.clear();goto menuStandby;}
if (dataInt == dataQR9)
{Serial.println("posisi2");inString="";lcdCode2();posisi2();l
cd.clear();goto menuStandby;}
if (dataInt == dataQR11)
{Serial.println("posisi2");inString="";lcdCode2();posisi2();l
cd.clear();goto menuStandby;}
if (dataInt == dataQR13)
{Serial.println("posisi3");inString="";lcdCode3();posisi3();l
cd.clear();goto menuStandby;}
if (dataInt == dataQR15)
{Serial.println("posisi3");inString="";lcdCode3();posisi3();l
cd.clear();goto menuStandby;}
if (dataInt == dataQR17)
{Serial.println("posisi3");inString="";lcdCode3();posisi3();l
cd.clear();goto menuStandby;}
}
lcdCodeError();delay(3000); ///jika kode tidak dikenali
maka tampilan LCD error lalu ke menu scan untuk membaca kode
kembali
goto menuStandby;

1. Dalam blok ini, program memeriksa apakah ‘dataInt’ sama dengan

‘dataQR1’. Jika benar, maka program akan mencetak “posisi1” di Serial

Monitor, mengosongkan ‘inString’ (untuk membersihkan data yang

terbaca), menampilkan pesan “QR CODE DIKENALI” dan “POSISI 1….”

Dilayar LCD menggunakan fungsi ‘lcdCode1()’, menggerakkan stepper

motor ke posisi 1 menggunakan fungsi ‘posisi1()’, menghapus tampilan

dilayar LCD, dan melompat ke label ‘menuStandby’ untuk menunggu aksi

berikutnya. Blok-blok berikutnya memiliki aksi yang serupa dengan blok

sebelumnya, tetapi memeriksa kode QR yang berbeda. Setelah selesai

memeriksa semua kondisi percabangan, program melompat ke label

‘menuStandby’. Hal ini dilakukan untuk kembali ke mode standby dimana


28

program akan menunggu aksi berikutnya, seperti menekan tombol ”OK”

atau membaca QR code lagi.

Secara keseluruhan, label ‘menuScan’ adalah bagian dari program yang

bertanggung jawab untuk memeriksa data QR yang diterima dari ‘Sertial1’,

membandingkan dengan kode QR yang telah ditentukan sebelumnya, dan

melakukan tindakan yang sesuai berdasarkan hasil perbandingan tersebut.

void bacaEEPROM(){
EEPRO
M.get(1,dataQR1);delay(100);Serial.println(dataQR1)
;
EEPRO
M.get(3,dataQR3);delay(100);Serial.println(dataQR3)
;
EEPRO
M.get(5,dataQR5);delay(100);Serial.println(dataQR5)
;
EEPRO
M.get(7,dataQR7);delay(100);Serial.println(dataQR7)
;
EEPRO
M.get(9,dataQR9);delay(100);Serial.println(dataQR9)
;
EEPRO
M.get(11,dataQR11);delay(100);Serial.println(dataQR
11);
EEPRO
M.get(13,dataQR13);delay(100);Serial.println(dataQR
13);
EEPRO
M.get(15,dataQR15);delay(100);Serial.println(dataQR
15);
EEPRO
M.get(17,dataQR17);delay(100);Serial.println(dataQR
17);
}

Fungsi `bacaEEPROM()` bertugas membaca nilai-nilai dari EEPROM ke

dalam variabel-variabel yang sesuai, seperti `dataQR1`, `dataQR3`, dan

seterusnya. Berikut langkah-langkah yang dilakukan dalam fungsi ini:


29

1. `EEPROM.get(1, dataQR1); delay(100); Serial.println(dataQR1);`

a. Menggunakan fungsi `EEPROM.get()`, nilai yang ada di alamat

EEPROM 1 akan dibaca dan disimpan dalam variabel `dataQR1`.

b. `delay(100)` digunakan untuk memberi jeda sebentar (100 ms)

setelah membaca dari EEPROM.

c. `Serial.println(dataQR1)` akan mencetak nilai yang telah dibaca

dari EEPROM ke Serial Monitor.

2. Langkah-langkah berikutnya (untuk alamat EEPROM 3, 5, 7, dan

seterusnya) dilakukan dengan prinsip yang sama seperti langkah pertama.

Hanya alamat EEPROM dan variabel yang dibaca yang berubah.

Fungsi ini digunakan untuk memuat nilai-nilai yang telah disimpan

sebelumnya di dalam EEPROM ke dalam variabel-variabel yang digunakan dalam

program. Dengan demikian, nilai-nilai tersebut dapat digunakan untuk

membandingkan dengan kode QR yang dibaca.

void lcdCode1(){
lcd.setCursor(0,0); lcd.print("QRCODE DIKENALI");
lcd.setCursor(0,1); lcd.print("POSISI 1........");
}

void posisi1(){
digitalWrite(dirStep1,LOW);
for(int x=0;x<6000;x++) {
digitalWrite(stepStep1,HIGH);
delayMicroseconds(50);
digitalWrite(stepStep1,LOW);
delayMicroseconds(50);}
delay(500);
simpan();
resetPos();
}

1. Fungsi `lcdCode1()`:
30

 Fungsi `lcdCode1()` akan dijalankan.

 Fungsi ini bertanggung jawab untuk menampilkan teks pada layar

LCD.

 Teks "QRCODE DIKENALI" akan ditampilkan pada baris pertama

LCD menggunakan perintah `lcd.print()`.

 Teks "POSISI 1........" akan ditampilkan pada baris kedua LCD

menggunakan perintah `lcd.print()`.

2. Fungsi `posisi1()`:

 Fungsi `posisi1()` akan dijalankan.

 Fungsi ini mengontrol pergerakan motor stepper atau motor langkah

demi langkah.

 Menggunakan fungsi digitalWrite(pin, value) untuk mengatur pin

output.

 Mengatur arah pergerakan motor dengan digitalWrite(dirStep1,

LOW), yang mengatur pin dirStep1 menjadi LOW.

 Melakukan loop dengan variabel x dari 0 hingga 5999.

 Pada setiap iterasi loop, mengaktifkan motor stepper dengan

digitalWrite(stepStep1, HIGH) selama 50 mikrodetik menggunakan

delayMicroseconds(50).

 Menonaktifkan motor stepper dengan digitalWrite(stepStep1, LOW)

selama 50 mikrodetik menggunakan delayMicroseconds(50).

 Setelah loop selesai, melakukan penundaan 500 milidetik

menggunakan delay(500).
31

 Pada akhirnya, fungsi ini akan memanggil fungsi `simpan()` untuk

menyimpan objek dan fungsi `resetPos()` untuk melakukan reset

posisi.

3. Membersihkan tampilan LCD:

 Setelah selesai menjalankan fungsi `posisi1()`, perintah `lcd.clear()`

akan dijalankan.

 Ini akan menghapus semua teks yang ada di layar LCD.

Dalam keseluruhan, program akan menjalankan serangkaian tindakan yang

melibatkan tampilan LCD, pergerakan motor stepper.

void lcdCode2(){
lcd.setCursor(0,0); lcd.print("QRCODE DIKENALI");
lcd.setCursor(0,1); lcd.print("POSISI 2........");
}

void posisi2(){
digitalWrite(dirStep1,LOW);
for(int x=0;x<24000;x++) {
digitalWrite(stepStep1,HIGH);
delayMicroseconds(50);
digitalWrite(stepStep1,LOW);
delayMicroseconds(50);}
delay(500);
simpan();
resetPos();

1. `void lcdCode2(){`:

 Ini adalah deklarasi dan definisi fungsi `lcdCode2()`.

 Fungsi ini bertanggung jawab untuk menampilkan teks pada layar

LCD.

2. `lcd.setCursor(0,0); lcd.print("QRCODE DIKENALI");`:


32

 Menggunakan fungsi `lcd.setCursor(x, y)` untuk mengatur kursor

pada posisi (0, 0) pada layar LCD.

 Menggunakan fungsi `lcd.print()` untuk menampilkan teks "QRCODE

DIKENALI" pada baris pertama LCD.

3. `lcd.setCursor(0,1); lcd.print("POSISI 2........");`:

 Menggunakan fungsi `lcd.setCursor(x, y)` untuk mengatur kursor

pada posisi (0, 1) pada layar LCD.

 Menggunakan fungsi `lcd.print()` untuk menampilkan teks "POSISI

2........" pada baris kedua LCD.

4. `void posisi2(){`:

 Ini adalah deklarasi dan definisi fungsi `posisi2()`.

 Fungsi ini mengontrol pergerakan motor stepper atau motor langkah

demi langkah.

 Mengatur arah pergerakan motor dengan `digitalWrite(dirStep1,

LOW)`.

 Ini mengatur pin `dirStep1` menjadi LOW, yang mengindikasikan

arah pergerakan tertentu.

 `for(int x=0;x<24000;x++) {`: Memulai loop `for` dengan variabel `x`

yang diinisialisasi sebagai 0.

 Loop akan terus berjalan selama `x` kurang dari 24000.

 Setiap iterasi loop, `x` akan bertambah 1.

 `digitalWrite(stepStep1,HIGH);`: Mengaktifkan motor stepper dengan

`digitalWrite(stepStep1, HIGH)`.
33

 Ini mengatur pin `stepStep1` menjadi HIGH, yang menyebabkan

motor stepper melangkah satu langkah.

 Menunda eksekusi program selama 50 mikrodetik menggunakan

fungsi `delayMicroseconds()`.

 Ini memberikan waktu jeda sebelum perintah selanjutnya dieksekusi.

 `digitalWrite(stepStep1,LOW);`: Mematikan motor stepper dengan

`digitalWrite(stepStep1, LOW)`.

 Ini mengatur pin `stepStep1` menjadi LOW, menghentikan langkah

motor stepper.

 Menunda eksekusi program selama 50 mikrodetik menggunakan

fungsi `delayMicroseconds()`.

 Ini memberikan waktu jeda sebelum perintah selanjutnya dieksekusi.

 Menunda eksekusi program selama 500 milidetik menggunakan

fungsi `delay()`.

 Ini memberikan waktu jeda sebelum perintah selanjutnya dieksekusi.

 Pada akhirnya, fungsi ini akan memanggil fungsi `simpan()` untuk

menyimpan objek dan fungsi `resetPos()` untuk melakukan reset

posisi.

Dalam keseluruhan, program ini menjalankan serangkaian tindakan termasuk

memanggil fungsi `lcdCode2()`, `posisi2()`, `lcd.clear()`, dan Fungsi `lcdCode2()`

bertanggung jawab untuk menampilkan teks pada LCD, `posisi2()` mengontrol

pergerakan motor stepper.

void lcdCode3(){
34

lcd.setCursor(0,0); lcd.print("QRCODE DIKENALI");


lcd.setCursor(0,1); lcd.print("POSISI 3........");
}

void posisi3(){
digitalWrite(dirStep1,LOW);
for(long x=0;x<41000;x++) {
digitalWrite(stepStep1,HIGH);
delayMicroseconds(50);
digitalWrite(stepStep1,LOW);
delayMicroseconds(50);}
delay(500);
simpan();
resetPos();
}

Pada program di atas berikut adalah penjelasan untuk masing-masing bagian

dari program tersebut:

1. Fungsi `lcdCode3()`:

 Fungsi ini digunakan untuk menampilkan pesan pada LCD.

 Baris pertama dari LCD diatur dengan menggunakan

`lcd.setCursor(0,0)` untuk mengatur kursor ke baris pertama dan

kolom pertama, dan `lcd.print("QRCODE DIKENALI")` untuk

menampilkan teks "QRCODE DIKENALI".

 Baris kedua dari LCD diatur dengan menggunakan

`lcd.setCursor(0,1)` untuk mengatur kursor ke baris kedua dan kolom

pertama, dan `lcd.print("POSISI 3........")` untuk menampilkan teks

"POSISI 3........".

2. Fungsi `posisi3()`:

 Fungsi ini mengatur posisi pada motor stepper dengan menggunakan

pin `dirStep1` dan `stepStep1`.


35

 Pertama, pin `dirStep1` diatur menjadi `LOW` untuk mengatur arah

pergerakan motor stepper.

 Dilakukan perulangan `for` dengan variabel `x` sebagai penghitung

dari 0 hingga 40999.

 Pada setiap iterasi perulangan, pin `stepStep1` diatur menjadi `HIGH`

selama 50 mikrodetik menggunakan `delayMicroseconds(50)` untuk

menghasilkan pulsa pergerakan motor stepper.

 Setelah itu, pin `stepStep1` diatur menjadi `LOW` selama 50

mikrodetik menggunakan `delayMicroseconds(50)` untuk

menghentikan pulsa pergerakan motor stepper.

 Setelah perulangan selesai, program menunggu selama 500 milidetik

menggunakan `delay(500)`.

 Dilakukan pemanggilan fungsi `simpan()`untuk menyimpan objek.

 Dilakukan pemanggilan fungsi `resetPos()` yang merupakan fungsi

untuk mengatur posisi motor stepper ke posisi awal atau posisi yang

ditentukan.

Pada keseluruhan, program tersebut akan menampilkan pesan pada LCD,

mengatur posisi motor stepper, membersihkan tampilan LCD.

void lcdCodeError(){
lcd.setCursor(0,0); lcd.print("MAAF! QRCODE ");
lcd.setCursor(0,1); lcd.print("TIDAK DIKENALI");
}

Pada potongan diatas, terdapat beberapa bagian. Berikut adalah penjelasan

untuk masing-masing bagian tersebut:

1. Fungsi `lcdCodeError()`:
36

 Fungsi ini digunakan untuk menampilkan pesan error pada LCD.

 Baris pertama dari LCD diatur dengan menggunakan

`lcd.setCursor(0,0)` untuk mengatur kursor ke baris pertama dan

kolom pertama, dan `lcd.print("MAAF! QRCODE ")` untuk

menampilkan teks "MAAF! QRCODE ".

 Baris kedua dari LCD diatur dengan menggunakan

`lcd.setCursor(0,1)` untuk mengatur kursor ke baris kedua dan kolom

pertama, dan `lcd.print("TIDAK DIKENALI")` untuk menampilkan

teks "TIDAK DIKENALI".

2. Delay setelah menampilkan pesan error:

 Program melakukan penundaan selama 3000 milidetik menggunakan

`delay(3000)`. Hal ini memberikan waktu untuk melihat pesan error

yang ditampilkan di LCD sebelum melanjutkan eksekusi program.

Dengan tambahan ini, program akan menampilkan pesan error pada LCD dan

kemudian menunggu selama 3000 milidetik sebelum melanjutkan eksekusi

program.

C. Pengujian

Pengujian data yang dilakukan pada penilitian ini adalah menyusun barang

menggunakan QRcode dan menempatkan sesuai dengan posisi pada QRcode.

Pengujian data yang dilakukan sebagai berikut:


37

1. Pengujian QRcode Scanner

Pengujian QRcode Scanner dilakukan dengan memindai beberapa QRcode

menggunakan QRscanner. Jika pemindaian berhasil maka QRscanner akan

mengeluarkan suara “tit” dan hasil pemindaian dapat dilihat pada serial monitor.

Gambar 4.3. Pengujian QRcode Scanner

Tabel 4.1. Pengujian QRcode Scanner


Pengujian Qrcode Scanner
Qrcode Hasil Pembacaan

{"qr_id":"c11c0e26-f861-4832-8de6-a269f9060552"}

checkin:61e7809833dfdafa025df500
38

checkin:61517369656641008d2212c0

CARA MEMBUAT UCAPAN DENGAN QR CODE

https://me-qr.com/UVVIU7r

Pengujian pada tabel 4.1 Pengujian QRcode Scanner berjalan dengan baik,

pengujian dilakukan dengan lima QRcode. Saat melakukan pemindaian QRcode 1

(satu), data yang di tampilkan pada Serial Monitor berupa {"qr_id":"c11c0e26-f861-

4832-8de6-a269f9060552"} menandakan data berhasil terbaca, Selanjutnya QRcode ke 2

(dua) data ditampilkan pada Serial Monitor “checkin:61e7809833dfdafa025df500”


39

menandakan data berhasil terbaca selanjutnya pada QRcode ke 3 (tiga) data ditampilkan

pada Serial Monitor “checkin:61517369656641008d2212c0” menandakan data berhasil

terbaca selanjutnya pada percobaan ke 4 (empat) data ditampilkan pada Serial Monitor

“CARA MEMBUAT UCAPAN DENGAN QR CODE” menandakan data berhasil

terbaca selanjutnya pada percobaan ke 5 (lima) data ditampilkan pada Serial Monitor

“https://me-qr.com/UVVIU7r” menandakan data berhasil terbaca.

2. Pengujian Sistem

Pengujian Sistem dilakukan untuk mengetahui berapa lama rata-rata waktu

yang diperlukan untuk proses penyimpanan objek mulai dari pemindaian QRcode

sampai ke penyimpanan objek pada rak penyimpanan.

Gambar 4.4. Pengujian Sistem

Tabel 4. 2. Pengujian Sistem


Pengujian Sistem
Pengujian Pengujian Pengujian Pengujian Pengujian Rata-
Objek 1 2 3 4 5 rata
Objek 1 6.27 5.51 6.5 6 6.23 6.102
Objek 2 8.32 8.35 7.78 8.04 7.85 8.068
Objek 3 9.57 10.32 10.3 9.34 10.08 9.922
40

Berdasarkan pada tabel diatas rata-rata perhitungan pengujian waktu adalah

sebagai berikut:

30,51
 Objek 1 = =6.102s
5
40,34
 Objek 2 = =8.068s
5
49,61
 Objek 3 = =9.922s
5
Hasil perhitungan mendapatkan rata-rata waktu 6.102 detik untuk objek

pertama, 8.068 detik untuk objek kedua, 9.922 utnuk objek ketiga.
BAB V

KESIMPULAN DAN SARAN

A. Kesimpulan

Setelah melakukan penelitian pada Prototype Robot Forklift Untuk Penyusun

Barang Berdasarkan QRcode dapat disimpulkan bahwa alat yang dirancang telah

bekerja dengan baik.

1. QRcode Scanner bekerja dengan baik, dengan hasil pemindaian QRcode

dapat ditampilkan pada Serial Monitor.

2. Pada pengujian sistem proses pemindaian sampai penyimpanan tidak

terdapat kesalahan dalam penempatannya.

3. Pada pengujian waktu penyimpanan objek mendapatkan rata-rata waktu

6.102 detik untuk objek pertama, 8.068 detik untuk objek kedua, 9.922

utnuk objek ketiga.

B. Saran

Saran yang dapat dilakukan untuk pengembangan Prototype Robot Forklift

Untuk Penyusun Barang Berdasarkan QRcode yaitu :

1. Membuat mekanik penyimpanan yang lebih rapi.

2. Membuat rak yang lebih banyak untuk penyimpanan yang lebih banyak

kedepannya.

3.
42

DAFTAR PUSTAKA

Anisa, D., & Firdaus, A. (2021). Robot Scissor Lift Untuk Memindahkan dan
Menyusun Barang Pada Rak Menggunkan Lego Mindstroms
51515. Jurnal Laporan Akhir Teknik Komputer, 1(2), 10-19.

Maulana, G. G., Rudiansyah, H., & Tazkia, S. N. (2020). Automation Forklift


System untuk Penyimpanan Produk pada Gudang Berbasis
Labview. Jurnal Teknik Informatika dan Sistem Informasi, 6(1).

Hamid, R. (2017). Rancang bangun robot pengangkat box berbasis mikrokontroler


ATmega16. Jurnal PROtek Vol, 4(2).

Sibiti, H., & Rosman, A. (2021). Prototype Pemberi Pakan Ternak Otomatis
dengan Sistem Kendali Short Message Service Berbasis
Mikrokontroler. Jurnal Ilmiah Teknologi Informasi, 11(1), 12-21.

Wibowo, M. A., Hunaini, F., & Effendy, D. U. (2018). Perancangan dan


Pembuatan Purwarupa Line Follower Forklift. Widya Teknika, 26(2).

Natsir, M., Rendra, D. B., & Anggara, A. D. Y. (2019). Implementasi IOT Untuk
Sistem Kendali AC Otomatis Pada Ruang Kelas di Universitas Serang
Raya. PROSISKO: Jurnal Pengembangan Riset dan Observasi Sistem
Komputer, 6(1).

Amin, M., & Novelan, M. S. (2020). Sistem Cerdas Kontrol Kran Air
Menggunakan Mikrokontroler Arduino dan Sensor Ultrasonic. Jurnal
Nasional Teknologi dan Jaringan, 4(2).

Bahtiar, Yusuf Ari, et al. "Pemilah Organik dengan Sensor Inframerah


Terintegerasi Sensor Induktif dan Kapasitif." Jurnal EECCIS (Electrics,
Electronics, Communications, Controls, Informatics, Systems) 13.3
(2019): 109-113.

Wiguna, A. R. (2020). Analisis Cara Kerja Sensor Ultrasonic Dan Motor Servo
Menggunakan Mikrokontroler Arduino Uno Untuk Pengusir Hama
Disawah. OSF Preprints. December, 29.

Latifa, U., & Saputro, J. S. (2018). Perancangan Robot Arm Gripper Berbasis
Arduino Uno Menggunakan Antarmuka Labview. Barometer, 3(2),
138141.
43

Cahyono, E., & Harianto, B. M. (2017). Rancang Bangun Mesin Meja Plasma
Cutting Dengan Gerak 3 Axis X, Y, Z Menggunakan Motor Stepper
Berbasis Arduino (Doctoral dissertation, Institut Teknologi Sepuluh
Nopember).

Wibowo, B. C., & Nugraha, F. (2021). Kendali Kecepatan Motor Stepper


Menggunakan Metode Start–Stop Berbasis PLC. Jurnal Teknik Elektro
dan Komputer, 10(3), 213-220.

Yoski, M. S., & Mukhaiyar, R. (2020). Prototipe Robot Pembersih Lantai


Berbasis Mikrokontroller dengan Sensor Ultrasonik. JTEIN: Jurnal Teknik
Elektro Indonesia, 1(2), 158-161.

Amin, M., Ananda, R., & Eska, J. (2019). Analisis Penggunaan Driver Mini
Victor L298N Terhadap Mobil Robot Dengan Dua Perintah Android Dan
Arduino Nano. JURTEKSI (Jurnal Teknologi dan Sistem Informasi), 6(1),
51-58.

Hendri, A., Puspitasari, A., & Kuncoro, E. (2017). Uji Tekanan Angin
Menggunakan Metode Roll Tester Pada Nose Cone Roket. Prosiding
SNATIF, 253-258.

Rois, A. Smart Sajadah Portable Penghitung Rakaat Salat Dan Penentu Arah
Kiblat Yang Terintergrasi Dengan Smartphone Menggunakan Sensor
Force Sensitive Resistor (Fsr) Berbasis Arduino (Bachelor's thesis,
Fakultas Sains dan Teknologi UIN Syarif Hidayatullah Jakarta).

Qr, P. (2016). Penggunaan QR Code Sarana Penyampaian Promosi Dan Informasi


Kebun Binatang Berbasis Android Adiguna Wijaya 1), A. Gunawan 2)
Teknik Informatika, STMIK Nusa Mandiri 1), Manajemen Informatika,
AMIK BSI Sukabumi 2. vol, 4, 16-21.

Dedy Irawan, J., & Adriantantri, E. (2018). Pemanfaatan QR-Code Segabai Media
Promosi Toko. Jurnal Mnemonic, 1(2).

Sirait, R. (2019). Sistem Komunikasi ROV (Romotely Operated Vehcle) Pada


Robot Under Water Menggunakan Wireless. MAESTRO, 2(1), 227-233.
Prio, H. (2017). Sistem Kendali Perangkat Elektronika monolitik Berbasis
Arduino Uno R3. Seminar Nasional Sains dan Teknologi. 1(2).
Herdiana, B., & Mutaqin, Z. (2017). Peracangan Prototype Robot Forklift
Penyusun Barang Otomatis 3 Lantai Berbasis Mikrokontroller Design of
Prototype Robot Forklift Compilers Automatic 3 Floors Based
Microcontroller.
44

Sirmayanti, S. (2021). Rekayasa Sistem Kendali Gripper melalui Robot


Transporter menggunakan WiFi Module ESP8266. InComTech: Jurnal
Telekomunikasi dan Komputer, 11(1), 51-64.

MUHAMAD, SHOFIYUDIN. MODEL PENGEMBANGAN KONVEYOR


OTOMATIS DENGAN SENSOR WARNA HITAM PUTIH TIPE TCRT-
5000 DAN SENSOR DETEKSI KEBERADAAN OBJEK TIPE KY-018.
Diss. POLITEKNIK ILMU PELAYARAN SEMARANG, 2020..

Fathoni, Ahmad. "Analisa Pembuatan Mesin Cnc Router Menggunakan Driver


Tb6560 Dan Driver A4988 Berbasis Microkontroller Arduino Uno Di Cv
Barokah Mebel." Journal of Science Nusantara 2.1 (2022): 7-16.

Abadi, Akbar, Riza Widya, and Julsam Julsam. "Rancang Bangun Pemutus
Tegangan Pada KWH Meter Pelanggan PLN." Jurnal Andalas: Rekayasa
dan Penerapan Teknologi 1.1 (2021): 37-46.

Suryati, Suryati, et al. "Pengaturan gerakan translasi menggunakan motor


stepper." Prosiding Seminar Nasional Politeknik Negeri Lhokseumawe.
Vol. 3. No. 1. 2019.

Rahmat, Sidik Ibnu. "Sistem peringatan dini banjir menggunakan sensor


ultrasonik berbasis Arduino Uno." Jurnal Manajemen dan Teknik
Informatika (JUMANTAKA) 3.1 (2019).
45

LAMPIRAN

Lampiran. 1 Program Alat


#include <EEPROM.h> ///Libarary memory
byte alamatEEP=1; //i byte 0-255 alamat
int
dataQR1,dataQR3,dataQR5,dataQR7,dataQR9,dataQR11,
dataQR13,dataQR15,dataQR17;
String inString; //tipe data untuk
menyimpan data lengkap dari pembacaan serial
arduino
int dataInt=0;

#include <Wire.h> //library komunikasi i2c LCD


#include <LiquidCrystal_I2C.h> //library LCD

#define limit A6 //limit dihubungkan dengan pin


A6 arduino
#define relayQR A7 //relay dihubungkan dengan
pin A7 arduino
#define dirStep1 4 //pin direction driver
stepper besar dihubungkan dengan pin 4 arduino
#define stepStep1 3 //pin Step driver stepper
besar dihubungkan dengan pin 3 arduino
#define pinIR 9 // pin data sensor IR
dihubungkan dengan pin 9 arduino
#define dirStep2 7 //pin direction driver
stepper kecil dihubungkan dengan pin 7 arduino
#define stepStep2 8 //pin Step driver stepper
kecil dihubungkan dengan pin 8 arduino
#define down 10
#define ok 12
#define up 13

boolean statusIR=0; //sebagai syarat


tambahan agar IR tidak mendeteksi terus menerus
LiquidCrystal_I2C lcd(0x27,16,2); //mengatur
alamat dan jenis LCD yang digunakan

void setup() {

Serial.begin(9600); //mengatur baud rate


Serial ke 9600
Serial1.begin(9600); // mengatur baud rate
Serial 1 arduino ke 9600 agar sesuai dengan baud
46

rate sensor QR code


Serial1.setTimeout(100);
pinMode (limit,INPUT_PULLUP); //mengatur
limit sebagai masukan
pinMode (ok,INPUT_PULLUP);
pinMode (up,INPUT_PULLUP);
pinMode (down,INPUT_PULLUP);
pinMode (pinIR,INPUT); //mengatur sensor
IR sebagai masukan atau input
pinMode (relayQR,OUTPUT); //relay sebagai
output
pinMode (dirStep1,OUTPUT); //step sebagai
output
pinMode (stepStep1,OUTPUT);
pinMode (dirStep2,OUTPUT);
pinMode (stepStep2,OUTPUT);
lcd.init(); //mengaktifkan inisialisasi
LCD
lcd.backlight(); //mengaktifkan lampu
backlight LCD agar tulisan dapat kelihatan
resetPos(); //mengambil posisi awal
tempat objek
bacaEEPROM();

// EEPROM.put(1,dataInt);
delay(1000);EEPROM.get(1,dataQR1);delay(1000);Ser
ial.println(dataQR1);delay(1000); //program
untuk mereset alamat memory/mengosongkan data
alamat memory
// EEPROM.put(3,dataInt);
delay(1000);EEPROM.get(3,dataQR3);delay(1000);Ser
ial.println(dataQR3);delay(1000);
// EEPROM.put(5,dataInt);
delay(1000);EEPROM.get(5,dataQR5);delay(1000);Ser
ial.println(dataQR5);delay(1000);
// EEPROM.put(7,dataInt);
delay(1000);EEPROM.get(7,dataQR7);delay(1000);Ser
ial.println(dataQR7);delay(1000);
// EEPROM.put(9,dataInt);
delay(1000);EEPROM.get(9,dataQR9);delay(1000);Ser
ial.println(dataQR9);delay(1000);
// EEPROM.put(11,dataInt);
delay(1000);EEPROM.get(11,dataQR11);delay(1000);S
erial.println(dataQR11);delay(1000);
// EEPROM.put(13,dataInt);
delay(1000);EEPROM.get(13,dataQR13);delay(1000);S
erial.println(dataQR13);delay(1000);
47

// EEPROM.put(15,dataInt);
delay(1000);EEPROM.get(15,dataQR15);delay(1000);S
erial.println(dataQR15);delay(1000);
// EEPROM.put(17,dataInt);
delay(1000);EEPROM.get(17,dataQR17);delay(1000);S
erial.println(dataQR17);delay(1000);
}

void loop() {

menuStandby:
if(digitalRead(ok)==0){delay(150);goto
menuDaftar;}
inString=""; //mengosongkan data dari
serial
lcd.setCursor(0,0); lcd.print("MULAI....");
//tampilan LCD dengan tulisan mulai
lcd.setCursor(0,1); lcd.print("SCAN
BARCODE !"); //tampilan LCD
if (digitalRead(pinIR)==0 && statusIR==0)
{bacaEEPROM();delay(1000);QRklik();statusIR==1;lc
d.clear();goto menuScan;}
goto menuStandby;

menuScan:
while (Serial1.available()>0)
{inString=Serial1.readString();
dataInt=inString.toInt();///memeriksa data dari
serial 1, jika ada data maka data disimpan pada
variabel data lalu ditambahkan ke instring
Serial.println (inString); Serial.println
(dataInt);
if (dataInt == dataQR1)
{Serial.println("posisi1");inString="";lcdCode1()
;posisi1();lcd.clear();goto menuStandby;}
if (dataInt == dataQR3)
{Serial.println("posisi1");inString="";lcdCode1()
;posisi1();lcd.clear();goto menuStandby;}
if (dataInt == dataQR5)
{Serial.println("posisi1");inString="";lcdCode1()
;posisi1();lcd.clear();goto menuStandby;}
if (dataInt == dataQR7)
{Serial.println("posisi2");inString="";lcdCode2()
;posisi2();lcd.clear();goto menuStandby;}
if (dataInt == dataQR9)
{Serial.println("posisi2");inString="";lcdCode2()
;posisi2();lcd.clear();goto menuStandby;}
48

if (dataInt == dataQR11)
{Serial.println("posisi2");inString="";lcdCode2()
;posisi2();lcd.clear();goto menuStandby;}
if (dataInt == dataQR13)
{Serial.println("posisi3");inString="";lcdCode3()
;posisi3();lcd.clear();goto menuStandby;}
if (dataInt == dataQR15)
{Serial.println("posisi3");inString="";lcdCode3()
;posisi3();lcd.clear();goto menuStandby;}
if (dataInt == dataQR17)
{Serial.println("posisi3");inString="";lcdCode3()
;posisi3();lcd.clear();goto menuStandby;}
}
lcdCodeError();delay(3000); ///jika kode tidak
dikenali maka tampilan LCD error lalu ke menu
scan untuk membaca kode kembali
goto menuStandby;
goto menuScan;

menuDaftar:
lcd.setCursor(0,0); lcd.print("SCAN BARCODE !");
lcd.setCursor(0,1); lcd.print("ALAMAT
MEMORY=");lcd.setCursor(14,1);
lcd.print(alamatEEP);
while (Serial1.available()>0){inString =
Serial1.readString();///memeriksa data dari
serial 1, jika ada data maka data disimpan pada
variabel data lalu ditambahkan ke instring
Serial.println (inString); dataInt =
inString.toInt(); Serial.println(dataInt);
}
if(digitalRead(ok)==0)
{delay(200);EEPROM.put(alamatEEP,dataInt);
delay(1000);
lc
d.clear();lcd.setCursor(0,0); lcd.print("BARCODE
DISIMPAN!");
lcd.setCursor(0,1);
lcd.print("PADA MEMORY ");
lcd.setCursor(12,1);
lcd.print(alamatEEP); bacaEEPROM();delay(2000);
lcd.clear();goto menuStandby;}
if(digitalRead(up)==0){delay(200);alamatEEP+=2;}
if(digitalRead(down)==0){delay(200);alamatEEP-
=2;}
goto menuDaftar;
49

void bacaEEPROM(){
EEPRO
M.get(1,dataQR1);delay(100);Serial.println(dataQR
1);
EEPRO
M.get(3,dataQR3);delay(100);Serial.println(dataQR
3);
EEPRO
M.get(5,dataQR5);delay(100);Serial.println(dataQR
5);
EEPRO
M.get(7,dataQR7);delay(100);Serial.println(dataQR
7);
EEPRO
M.get(9,dataQR9);delay(100);Serial.println(dataQR
9);
EEPRO
M.get(11,dataQR11);delay(100);Serial.println(data
QR11);
EEPRO
M.get(13,dataQR13);delay(100);Serial.println(data
QR13);
EEPRO
M.get(15,dataQR15);delay(100);Serial.println(data
QR15);
EEPRO
M.get(17,dataQR17);delay(100);Serial.println(data
QR17);
}

void lcdCode1(){
lcd.setCursor(0,0); lcd.print("QR CODE
DIKENALI");
lcd.setCursor(0,1); lcd.print("POSISI
1........"); //tampilan LCD jika kode1 terbaca
}

void lcdCode2(){
lcd.setCursor(0,0); lcd.print("QR CODE
DIKENALI");
lcd.setCursor(0,1); lcd.print("POSISI
2........"); //tampilan LCD jika kode2 terbaca
}
50

void lcdCode3(){
lcd.setCursor(0,0); lcd.print("QR CODE
DIKENALI");
lcd.setCursor(0,1); lcd.print("POSISI
3........"); //tampilan LCD jika kode3 terbaca
}

void lcdCodeError(){
lcd.setCursor(0,0); lcd.print("MAAF! QR CODE
");
lcd.setCursor(0,1); lcd.print("TIDAK
DIKENALI"); //tampilan LCD jika kode error
terbaca
}

void QRklik(){digitalWrite
(relayQR,HIGH);delay(2000);digitalWrite
(relayQR,LOW);} //menyalakan relay untuk
mengaktifkan sensor QR
void resetPos(){while (digitalRead(limit)!=0)
{Stepper1Down();}} //selama limit tidak
tertekan maka stepper akan menurunkan tempat
objek

void simpan(){
digitalWrite(dirStep2,LOW); //arah putaran
stepper besar
for(int x=0;x<1000;x++) { ///jumlah
putaran stepper besar
digitalWrite(stepStep2,HIGH);
delayMicroseconds(1500); //kecepatan
putaran
digitalWrite(stepStep2,LOW);
delayMicroseconds(1500);}
delay(1000);
digitalWrite(dirStep2,HIGH); //arah putaran
stepper kecil
for(int x=0;x<1000;x++) { //jumlah
putaran stepper kecil
digitalWrite(stepStep2,HIGH);
delayMicroseconds(1500); //kecepatan
putaran
digitalWrite(stepStep2,LOW);
delayMicroseconds(1500);}
}

void posisi1(){
51

digitalWrite(dirStep1,LOW); //arah putaran


stepper besar
for(int x=0;x<6000;x++) { //jumlah putaran
stepper besar
digitalWrite(stepStep1,HIGH);
delayMicroseconds(300); //kecepatan
putaran
digitalWrite(stepStep1,LOW);
delayMicroseconds(300);}
delay(1000);
simpan();
resetPos();
}

void posisi2(){
digitalWrite(dirStep1,LOW); //arah putaran
stepper besar
for(int x=0;x<24000;x++) { //jumlah putaran
digitalWrite(stepStep1,HIGH);
delayMicroseconds(300); //kecepatan
putaran
digitalWrite(stepStep1,LOW);
delayMicroseconds(300);}
delay(1000);
simpan();
resetPos();
}

void posisi3(){
digitalWrite(dirStep1,LOW); //arah putaran
stepper besar
for(long x=0;x<41000;x++) { //jumlah putaran
untuk menuju ke rak 3
digitalWrite(stepStep1,HIGH);
delayMicroseconds(300); //kecepatan
putaran
digitalWrite(stepStep1,LOW);
delayMicroseconds(300);}
delay(1000);
simpan();
resetPos();
}
void Stepper1Down(){
digitalWrite(dirStep1,HIGH); //arah putaran
stepper besar untuk turun ke bawah
for(int x=0;x<50;x++) { //jumlah putaran
digitalWrite(stepStep1,HIGH);
52

delayMicroseconds(300); //kecepatan
putaran
digitalWrite(stepStep1,LOW);
delayMicroseconds(300);}
}
Lampiran. 2

QR Code 1

QR Code 2
53

QR Code 3

QR Code 4
54

QR Code 5

Lampiran. 3 Pengujian dan pengambilan data


55
56
57

Anda mungkin juga menyukai