perancangan perangkat keras dan perangkat lunak yang saling berinteraksi untuk
uno, sensor ultrasonik, motor driver, motor dc, dan motor servo. Sedangkan
Tujuan dari perancangan “Water Spray and Mopping Floor Robot” adalah
efisien dan efektif. Robot ini dirancang untuk menyemprotkan air dan
1. Kebutuhan Fungsional :
52
53
e. Pengisian Ulang Air : Air dalam robot ini harus diisi ulang oleh pengguna
pembersihan.
menjalankan robot.
2. Arsitektur Sistem :
di sekitarnya.
e) Tangki Air : Untuk menyimpan air yang akan digunakan dalam proses
semprotan.
motor DC.
Deskripsi kerja secara keseluruhan dari sistem pada tugas akhir ini, sistem
ini akan mulai beroprasi ketika diberikan sumber tegangan melalui power suply ke
arduino. Dengan adanya tegangan pada arduino, sensor dapat menangkap data dan
dikirim ke arduino kemudian akan menampilkan data yang telah diolah melalui
sistem perangkat yang ada. Data yang ada di arduino akan memberi intruksi
Mulai
Arduino dapat
Selesai
Suplay Tegangan
Program Utama
Driver Motor
Motor DC
bergerak
Pada kondisi awal saat alat dinyalakan, maka Arduino Uno melakukan
inisialisasi input output yang akan digunakan pada saat proses. Inisialisasi yang
berjalan. Selanjutnya pada kondisi menyala motor dc bergerak memutar kain pel
yang menyatu. Pada kondisi ini arduino membaca masukan sensor ultrasonik
untuk maju dan mundurnya robot ini. Kemudian motor driver memberikan signal
kepada motor pump untuk menyemprotkan air sehingga air mengalir dari selang
infus ke kain pel. Sensor ultrasonik bekerja menggunakan satu jalur data input
output sebagai perintah dan pembacaan data antara arduino dan sensor ultrasonik
tersebut. Saat hasil pembacaan sensor ultrasonik diperoleh, maka robot akan
proses ini berulang dan motor dc, motor pump kembali berputar dan menyiram
hardware yang dibutuhkan untuk membangun sistem yang sesuai dengan fungsi
1. Software
Software yang dibutuhkan dalam pembuatan Spray Water end Mopping Floor
kedalam Arduino.
57
sesuai fungsinya.
2. Hardware
Hardware yang dibutuhkan dalam pembuatan Spray Water end Mopping Floor
a) Arduino Uno
b) Sensor ultrasonic
d) Motor dc stepdown
e) Motor pump 5v
f) Catudaya
g) Pin jumper
h) Laptop
j) Motor servo
k) Motor driver
atau alat yang digunakan dalam pembuatan Spray Water And Mopping Floor
58
Baterai
Motor
Motor Pump 5v
Driver 1
Arduino
Uno Motor Sensor
Servo Ultrasonik
Motor
Driver 2
Motor Dc Kain
Stepdown Pel
Sesuai dengan blok diagram di atas maka fungsi setiap blok diagram pada
sistem kerja Water Spray And Mopping Floor Robot berbasis mikrokontroler
2. Motor driver unutk penghubung komunikasi antara arduino uno dengan motor
6. Motor pump 5v berfungsi sebagai pengontrol pergerakan air dari wadah air
tersebut.
sistem :
box atau gigi yang terpasang pada porosnya untuk meningkatkan torsi dan
pin masing-masing motor driver dan sesuai dengan warna kabel dari motor
Gambar 3.3.1.1 Rangkaian motor diver l293 dengan motor dc gear box
Tabel 3.1 Konfigurasi Motor Driver L293 dengan Motor DC Gear Box
M1_A +
M1_B -
M2_A +
M2_B -
M3_A +
M3_B -
M4_A +
M4_B -
motor servo dan sensor ultrasonik sesuai dengan program yang telah di
tetapkan. Ini sial pin yang sudah di tetapkan dapat di lihat pada gambar di
bawah ini.
61
Sensor Ultrasonik.
Tabel 3.2 Konfigurasi Arduino dengan Motor servo dan Sensor Ultrasonik
A0 ⁓9 Echo
A1 Trig
5v 5v Vcc
Stepdown
M1_A Vcc +
Gnd Gnd -
yang di hubungkan dengan motor driver l293 sebagai pemutar roda untuk
stepdown dengan motor driver l293. Rangkaian keseluruhan dari sistem ini
Pada perancangan perangkat lunak atau software ini adalah bagian dari
penyempurnaan dari perangkat keras agar dapat bekerja dengan semestinya dan
dikendalikan oleh manusia lagi pada komponen. Sepeti yang dijelaskan pada
bagian sebelumnya bahwa disini untuk dapat menjalankan perangkat keras seperti
64
Motor servo, Motor pum 5v, Motor Driver, Sensor ultrasonik dan Motor DC
keras tersebut. Pada penulisan coding yang dilakukan pada Arduino IDE berisi
And Mopping Floor Robot berbasis mikrokontroler ini juga menggunakan library
kumpulan kode program Arduino dasar yang dikemas untuk memberikan perintah
lunak sistem (software) yang dapat dilihat pada listing program berikut ini.
#include <AFMotor.h>
#include <NewPing.h>
#include <Servo.h>
#define TRIG_PIN A4
#define ECHO_PIN A5
#define MAX_SPEED_OFFSET 50
65
Servo myservo;
boolean goesForward=false;
int speedSet = 0;
void setup() {
myservo.attach(10);
myservo.write(115);
delay(2000);
distance = readPing();
delay(100);
distance = readPing();
delay(100);
distance = readPing();
delay(100);
distance = readPing();
66
delay(100);
void loop() {
int distanceR = 0;
int distanceL = 0;
delay(40);
if(distance<=15)
moveStop();
delay(100);
moveBackward();
delay(300);
moveStop();
delay(200);
distanceR = lookRight();
delay(200);
distanceL = lookLeft();
delay(200);
if(distanceR>=distanceL)
turnRight();
67
moveStop();
}else
turnLeft();
moveStop();
}else
moveForward();
distance = readPing();
int lookRight()
myservo.write(50);
delay(500);
delay(100);
myservo.write(115);
return distance;
int lookLeft()
68
myservo.write(170);
delay(500);
delay(100);
myservo.write(115);
return distance;
delay(100);
int readPing() {
delay(70);
int cm = sonar.ping_cm();
if(cm==0)
cm = 400;
return cm;
void moveStop() {
motor1.run(RELEASE);
motor2.run(RELEASE);
motor3.run(RELEASE);
69
motor4.run(RELEASE);
void moveForward() {
if(!goesForward)
goesForward=true;
motor1.run(FORWARD);
motor2.run(FORWARD);
motor3.run(FORWARD);
motor4.run(FORWARD);
motor1.setSpeed(speedSet);
motor2.setSpeed(speedSet);
motor3.setSpeed(speedSet);
motor4.setSpeed(speedSet);
delay(5);
}
70
void moveBackward() {
goesForward=false;
motor1.run(BACKWARD);
motor2.run(BACKWARD);
motor3.run(BACKWARD);
motor4.run(BACKWARD);
motor1.setSpeed(speedSet);
motor2.setSpeed(speedSet);
motor3.setSpeed(speedSet);
motor4.setSpeed(speedSet);
delay(5);
void turnRight() {
motor1.run(FORWARD);
motor4.run(FORWARD);
motor3.run(BACKWARD);
motor2.run(BACKWARD);
delay(500);
motor1.run(FORWARD);
71
motor2.run(FORWARD);
motor3.run(FORWARD);
motor4.run(FORWARD);
void turnLeft() {
motor1.run(BACKWARD);
motor4.run(BACKWARD);
motor3.run(FORWARD);
motor2.run(FORWARD);
delay(500);
motor1.run(FORWARD);
motor2.run(FORWARD);
motor3.run(FORWARD);
motor4.run(FORWARD);
Koding yang digunakan adalah bahasa C++ pada aplikasi Arduino IDE.
Bahasa program diatas akan diinputkan pada rangkaian Arduino Uno untuk