laporan praktek mekatronika mobil pencari api
TRANSCRIPT
LAPORAN PRAKTIKUM ELEKTRONIKA
APLIKASI ARDUINO
PADA MOBIL MEKATRONIKA
Disusun oleh :
1. Asep Gunawan
2. Ahmad Fajar Nugraha
3. Andang Aditya
4. Dimas Maulana
5. Ade Ridwan
JURUSAN TEKNIK ELEKTROFAKULTAS TEKNIK
UNIVERSITAS MERCU BUANAJAKARTA
2014
BAB I
1.1 Latar Belakang
Mekatronika adalah sebuah kata baru yang lahir di Jepang
pada awal tahun 1970-an yang merupakan gabungan antara 2 kata
yaitu mekanika dan elektronika.Sekarang dapat dilihat di sekeliling
kita, barang-barang mekatronika seperti robot,mesin bubut NC, kamera
dijital, printer dan lain sebagainya
Persamaan prinsip dari barang-barang mekatronik ini adalah
bahwa objek yang dikendalikan adalah gerakan mesin. Jika
dibandingkan dengan gerakan mesin konvensional maka gerakan
mesin tersebut lebih bersifat fleksibel dan lebih memiliki kecerdasan.
Hal ini dimungkinkan karena memanfaatkan kemajuan bidang micro-
electronics. Yang berarti, dengan bantuan peralatan micro-electronics
mesin dapat bergerak dengan lebih cerdas. Jika seseorang
memberikan sebuah perintah, lalu semua dapat dipasrahkan ke mesin
yang dapat bergerak secara otomatis. Ini sangat membantu
menciptakan mesin atau alat yang praktis dan mudah digunakan.
Sehingga sumber daya pada manusia seperti waktu dan otak dapat
dipakai untuk pekerjaan yang lain untuk lebih menciptakan nilai tambah.
Dari keterangan di atas, terdapat beberapa faktor yang
menyebabkan timbulnya bidang mekatronika. Faktor-faktor tersebut
antara lain adalah:
a. Kemajuan pada bidang semikonduktor dan fabrikasi IC, yang
mengarahkan perkembangan pada produk baru dengan cara
mengintegrasikan system mekanik dan elektronik
b. Perkembangan teknologi computer (microcomputer, embedded
computer), teknologi informasi dan perancangan perangkat lunak
sehinggga menjadikan mekatronika sebagai leading technology
pada abad ke-21 ini.
2
Mekatronika (Inggris: Mechatronic) berasal dari kata mekanika,
elektronika dan informatika. Secara sedehana pembentukan ilmu
mekatronika terdiri atas dua lapisan ilmu dasar, yaitu: fisika dan logika
serta tiga ilmu utama, yaitu: elektronika, informatika dan mekanika.
Dengan melihat asal katanya dapat dengan mudah dipahami, bahwa
ilmu ini menggabungkan atau mensinergikan disiplin ilmu Mekanika,
ilmu Elektronika dan Informatika. Pendekatan ini diilustrasikan pada
Gambar 1.1.
Gambar 1.1.Ilustrasi Asal Ilmu Mekatronika
Sementara itu, istilah Mechatronik (Mechanical Engineering-
Electronic Engineering) pertama kali dikenalkan pada tahun 1969 oleh
perusahaan Jepang
Yasakawa Electric Cooperation. Pada awalnya, perusahaan ini
berkembang dalam
bidang Feinwerktechnik, yaitu cabang dari teknik yang
mengedepankan aspek ketelitian. Misalnya pada pembuatan jam, alat
optik dan sebagainya.Lalu ditambahkan sistem informatika, setelah
munculnya informatika sebagai disiplin ilmu baru.
Pada awalnya, bidang mekatronik diarahkan pada 3 target yaitu
1. penghematan energi (energi saving),
2. pengecilan dimensi dan peringanan berat (size reducing), serta
3. peningkatan kehandalahan (reliability).:
Sekarang, setelah 30 tahun lebih berlalu dari kelahirannya, perlu
dirumuskan kembali arah mekatronik sesuai dengan perkembangan
jaman.Dan khususnya untuk Indonesia sebagai negara yang masih
berkembang dengan segudang permasalahannya, rasanya arah
mekatronik perlu ditentukan agar dapat membantu memecahkan masalah-
masalah yang ada dengan tetap memperhatikan lingkungan regional
dan global.
Hingga saat ini, mekatronika dipandang sebagai hubungan
antara ilmu Mekanik, Elektronik dan Informatika. Dalam masa yang
akan datang, aplikasi mekatronika akan digunakan hampir disemua
bidang, seperti Otomotif, Pemutar CD,Stasiun luar angkasa atau pada
fasilitas produksi. Mekatronika dikategorikan oleh Majalah Technology
Review pada tahun 2003 sebagai 10 Teknologi yang dalam waktu dekat
dapat mengubah hidup kita.
1.2 DEFINISI
Menurut IEEE (IEEE Mechatronics Transaction, 1996), definisi
mekatronika adalah sebagai berikut: Mechatronics is the synergistic
integration of mechanical engineering with electronics and intelligent
computer control in the design and manufacturing of industrial products
and processes. Definisi ini dilengkapi dengan ilustrasi perkembangan
mekatronika dalam bentuk diagram, seperti yang dapat dilihat pada
Gambar 1.2.
4
Gambar 1.2 Definisi dan Keterkaitan Ilmu di Mekatronika
Sementara itu, berdasarkan hasil Musyawarah Nasional Mekatronika di
Bandung 28 Juli 2006, Komunitas Mekatronika Indonesia
merekomendasikan definisi ekatronika sebagai berikut: Mekatronika
adalah sinergis IPTEK teknik mesin, teknik elektronika, teknik informatika
dan teknik pengaturan (atau teknik kendali) untuk merancang, membuat
atau memproduksi, mengoperasikan dan memelihara sebuah sistem
untuk mencapai tujuan yang diinginkan. Dari definisi-definisi di atas, dapat
disimpulkan beberapa bidang ilmu yang menyumbangkan peranannya
dalam perkembangan ilmu mekatronika, adalah:
a. Sistem Mekanika
b. Sistem Elektronika
c. Sistem Kontrol, dan
d. Sistem Komputer
Penggabungan beberapa bidang di atas, menghasilkan beberapa ilmu
baru, yaitu: Elektro-mekanika yang merupakan penggabungan ilmu
mekanika dan elektronika, Kontrol Elektronika yang memadukan ilmu
elektronika dengan sistem kontrol, Sistem Kontrol Digital yang
mempertemukan ilmu sistem kontrol dengan sistem komputer dan
Mekanika CAD (Computer Aided Design) yang merupakan perpaduan
ilmu mekanika dengan sistem komputer. Kemudian, integrasi keseluruhan
ilmu tersebutlah yang menjadi akar dari perkembangan bidang
mekatronika.
Secara sempit pengertian mekatronika mengarah pada teknologi
kendali numerik yaitu teknologi mengendalikan proses mekanik
menggunakan aktuator untuk mencapai tujuan tertentu dengan memonitor
informasi kondisi gerak mesin menggunakan sensor, dan memasukkan
informasi tersebut ke dalam mikro-prosesor.Ini menyumbangkan
kemajuan yang spektakuler jika dibandingkan dengan control otomatis
menggunakan instrumen analog, karena dapat merubah skenario control
secara fleksibel dan dapat memiliki fungsi pengambilan keputusan tingkat
tinggi.
Contoh klasik barang mekatronik adalah lengan robot dan mesin
bubut control numerik. Barang-barang ini dapat melakukan pekerjaan-
pekerjaan yang berbeda-beda
dengan cara merubah program mereka sesuai kondisi yang diminta,
karena telah ditambahkan kemampuan kendali aktif yang canggih
terhadap mekanisme yang telah
ada
1.3 Sistem Mekatronika
Sistem mekatronika terdiri dari beberap bagian sebagaimana
digambarkan dalam blok diagram Sistem Mekatronik di Gambar 1.3. Dari
gambar tersebut, system mekatronika terdiri dari: Aktuator, Sensor,
Pengkondisian Signal dan Antarmuka, Pengendalian serta Display.
6
Pertama adalah blok Aktuator. Aktuarot merupakan unsur
penggerak sistem mekanik dari keseluruhan sistem. Sistem ini terdiri dari
motor-motor, solenoida, dan komponen-komponen penggerak lainnya,
baik yang digerakkan oleh elektronik, hidrolik atau pneumatik.
Gambar 1.3. Blok Diagram Sistem Mekatronika
Setelah itu, terdapat blok Pengkondisian Signal dan Antarmuka.
Blok ini terdapat pada bagian input dan juga output sebuah sistem. Setiap
signal yang masuk akan ikondisikan sehingga dapat diproses oleh sistem
dan akan dikondisikan kembali agar apat ditampilkan kepada dalam
bentuk output kepada pengguna. Dari blok satu ke blok yang lain, terjadi
pengkondisian signal, sehingga seluruh sistem dapat berjalan dengan
baik.
Blok yang merupakan blok utama dalam sistem mekatronika adalah
blokPengendalian. Blok ini berintikan sebuah sistem pengendalian, yang
pada umumnya menggunakan peralatan digital, seperti Personal
Computer (PC), Programmable Logic Controller (PLC), mikroprosesor dan
sejenisnya. Pengendali akan bekerja seperti otak manusia, dimana ia
menerima hasil bacaan lingkungan dan perintah dari pengguna,
mengolahnya dan menghasilkan respon dan keluaran yang sesuai dengan
kehendak pengguna
Terakhir, blok yang amat dekat dengan pengguna adalah blok
penampil (Display). Blok ini merupakan antarmuka antara pengguna
dengan keseluruhan system mekatronika, sehingga pengguna dapat
melihat apa yang terjadi di dalam sistem dan menganalisa keluaran dari
sistem tersebut. Blok Pengkondisian Signal dan Antarmuka, Blok
Pengendali dan Blok Display merupakan blok-blok pembentuk sistem
elektronika dari keseluruhan sistem mekatronika yang ada.
1. 4 Manfaat Mekatronika
Beberapa manfaat penerapan mekatronik adalah sebagai berikut :
1. Meningkatkan fleksibilitas
Manfaat terbesar yang dapat diperoleh dari penerapan mekatronik
adalah meningkatkan fleksibilitas mesin dengan menambahkan fungsi-
fungsi baru yang mayoritas merupakan kontribusi mikro-prosesor.
Sebagai contoh, lengan robot industry dapat melakukan berbagai jenis
pekerjaan dengan merubah program peranti lunak di mikro-prosesornya
seperti halnya lengan manusia. Ini yang menjadi faktor utama
dimungkinkannya proses produksi produk yang beraneka ragam tipenya
dengan jumlah yang sedikit-sedikit.
2. Meningkatkan kehandalan
Pada mesin-mesin konvensional (manual) muncul berbagai
masalah yang diakibatkan oleh berbagai jenis gesekan pada mekanisme
yang digunakan seperti: keusangan, masalah sentuhan, getaran dan
kebisingan. Pada penggunaan mesin-mesin tersebut diperlukan sarana
dan operator yang jumlahnya banyak untuk mencegah timbulnya
masalah-masalah tersebut. Dengan menerapkan switch semikonduktor
misalnya, maka masalah-masalah akibat sentuhan tersebut dapat
8
diminimalkan sehingga meningkatkan kehandalan. Selain itu, dengan
menggunakan komponen-komponen elektronika untuk mengendalikan
gerakan, maka komponen-komponen mesin pengendali gerak bisa
dikurangi sehingga meningkatkan kehandalan.
3. Meningkatkan presisi dan kecepatan
Pada mesin-mesin konvensional (manual) yang sebagian besar
menggunakan komponen-komponen mesin sebagai pengendali gerak,
tingkat presisi dan kecepatan telah mencapai garis saturasi yang sulit
untuk diangkat lagi. Dengan menerapkan kendali dijital dan teknologi
elektronika, maka tingkat persisi mesin dan kecepatan gerak mesin
dapat diangkat lebih tinggi lagi sampai batas tertentu. Batas ini misalnya
adalah rigiditas mesin yang menghalangi kecepatan lebih tinggi karena
munculnya getaran. Hal ini melahirkan tantangan baru yaitu
menciptakan sistem mesin yang memiliki rigiditas lebih tinggi.
1.5 Aplikasi Mekatronika
Begitu banyaknya penggunaan sistem mekatronika dalam
kehidupan.
Beberapa bidang yang merupakan perkembangan teknologi metaronika
adalah:
a. Otomotif
b. Aerospace
c. Medikal
d. Xerografi
e. Sistem Pertahanan
f. Produk-produk Konsumen
g. Manufaktur
h. Pemprosesan Material
BAB II
LANDASAN TEORI
2.1 Mikrokontroler basis Arduino
Arduino merupakan inovasi dibidang elektronika yang telah
membuat perubahan besar dalam dunia mikrokontroler sehingga seorang
yang awam ataupun amatir sekalipun bisa membuat proyek-proyek
elektronika atau rebotika dengan relatif mudah dan cepat. Arduino lahir
dari lingkungan mahasiswa dan dosen yang merasakan sulitnya
mempelajari mikrokontroler. Kemudian mereka mengembangkan sebuah
sistem minimum berbasis AVR yang dilengkapi dengan bootloader dan
software yang user friedly.Hasilnya adalah sebuah board mikrokontroler
yang bersifat open source yang bisa dipelajari atau dikembangkan oleh
mahasiswa, professional atau penggemar mikrokontroler diseluruh dunia.
2.1.1. Pengertian
Arduino adalah kit elektronik atau papan rangkaian elektronik open
source yang didalamnya terdapat komponen utama yaitu sebuah chip
mikrokontroler 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,
proses dan output sebuah rangkaian elektronik.
Konon arduino sudah lebih popular dibandingkan Basic Stamp yang lahir
lebih awal yang harganya relatif mahal dan close source. Penjualan board
arduino bisa menghasilkan milyaran rupiah pada penjualan kit online
seperti Sparkfun.
Karena komponen utama arduino adalah mikrokontroler, maka
arduino pun dapat diprogram menggunakan komputer sesuai dengan
kebutuhan pengguna. Adapun data teknis board Arduino Uno sebagai
berikut:
10
Mikrokontroler : Arduino UNO
Tegangan operasi : 5 V
Tegangan input (recomended) : 7 – 12 V
Tegangan input (limit) : 6 – 20 V
Pin digital I/0 : 14 (6 diantaranya pin PWM)
Pin analog input : 6
Arus DC per pin I/0 : 40 mA
Arus DC untuk pin 3.3 V : 150 mA
Flash memory : 32 KB dengan 0.5 KB
digunakan untuk bootloader
SRAM : 2 KB
EEPROM : 1 KB
Kecepatan pewaktu : 16 Mhz
Gambar 2.1 Bentuk fisik Arduino UNO
Kemana-mana bersama laptop atau dimasukkan kedalam saku.
Walaupun bahasa pemrograman arduino adalah bahasa C/C++, akan
tetapi dengan penambahan library dan fungsi – fungsi standar membuat
pemrogramam arduino sangat lebih mudah untuk dipelajari dan lebih
manusiawi. Contoh, untuk mengirimkan nilai HIGH pada pin 10 pada
arduino, cukup menggunakan fungsi digital writter (10, HIGH), sedangkan
kalau menggunakan bahasa C aslinya adalah PORTB I=(1<<2).
Tersedia banyak library untuk menghubungkan arduino dengan
macam-macam sensor, actuator maupun modul komunikasi. Misalnya
library untuk mouse, keybord, servo, GPS dsb. Berhubung arduino adalah
open source, maka library – library ini juga open cource dan dapat di
download gratis di website arduino. Dengan bahasa yang lebih mudah
dan adanya dasar yang lengkap, maka mengembangkan aplikasi
elektronik relatif sangat mudah. Arduino tidak membuat bahasa
pemrograman khusus, melainkan menggunakan bahasa C yang sudah
ada, lebih tepatnya Bahasa C yang menggunakan compiler AVG – GCC
(AVR GNU C – Compiler). Bahasa C adalah bahasa yang sangat lazim
dipakai sejak awal – awal komputer diciptakan dan sangat berperan dalam
pengembangan software. Bahasa C juga telah membuat bermacam-
macam sistem operasi Unix, Linux, dsb.
Bahasa C juga biasanya diakademi dan perguruan tinggi selain bahasa
pemrograman Basic atau Pascal. Bahasa C adalah bahasa pemrograman
yang sangat ampuh yang kekuatannya mendekati bahasa assembler.
Bahasa C menghasilkan file kode objek yang sangat kecil dan
dapat dieksekusi dengan sangat cepat. Karena itu bahasa C sering
digunakan pada sistem operasi dan pemrograman mikrokontroler. Bahasa
C adalah multi- platform bahasa C bisa diterapkan pada lingkungan
Windows, Unix, Linux atau sistem operasi lain tanpa mengalami
perubahan sorce code (kalaupun ada perubahan, biasanya sangat minim).
Karena arduino menggunakan bahasa C yang multi- platform maka
software arduino pun bisa dijalankan pada semua sistem operasi yang
umum dipakai misalnya : Wndows, Linux, MacOS. Bahasa C mudah
dipelajari dalam arti relatif tergantung kemampuan setiap user. Kalau
anda sudah mengerti bahasa C maka anda bisa melakukan
pengembangan dengan board lain atau mikrokontroler lain dengan lebih
mudah. Di internet banyak library bahasa C untuk arduino yang bisa di
download dengan gratis. Setiap library arduino biasanya disertai dengan
12
contoh pemakaiannya. Keberadaan library-library ini bukan hanya
membantu kita membuat proyek mikrokontroler, tetapi bisa dijadikan
sarana untuk mendalami pemrograman bahasa C pada mikrokontroler.
2.1.2. Mikrokontroller AVR ATMega328
Mikrokontroler adalah suatu trobosan dalam teknologi
mikroprosesor dan mikrokomputer, perbedaannya mikrokontroler hanya
digunakan untuk menangani suatu aplikasi tertentu. Perbedaan
mikrokontroler lain terletak pada perbandinganRAM dan ROM. Komputer
mempunyai RAM dan ROM yang besar, tetapi pada mikrokontroler
sangat terbatas. ROM digunakan oleh mikrokontroller untuk menyimpan
program sedangkan RAM untuk menyimpan data sementara.
Mikrokontroller terdiri dari ALU (Arithmetic and Logical Unit), CU
(Control Unit), PC (Program Counter), SP (Stack Pointer), register-
register, sebuah rangkaian pewaktu dan rangkaian penyela (interrupt).
Mikrokontroller juga dilengkapi dengan beberapa piranti pendukung lain
seperti ROM(Read Only Memory), RAM (Random Access Memory),
decoder, port komunikasi input/output serial dan atau paralel dan
tambahan khusus seperti interrupt handler dan timer/counter.
Gambar 2.2 Konfigurasi pin ATmega328
AVR adalah mikrokontroller CMOS 8-bit buatan Atmel berbasis
arsitektur RISC (Reduced Instruction Set Computer). Kebanyakan
instruksi dikerjakan pada satu siklus clock, AVR mempunyai register
general-purpose, timer/counter fleksibel dengan mode copare, interupt
internal dan eksternal, serial UART, programmable Watchdog Timer, dan
mode power saving. Beberapa diantaranya mempunyai ADC dan PWM
internal. AVR juga mempunyai In-System Programmable Flash on-chip
yang mengijinkan memori program untukdiprogram ulang dalam system
menggunakan hubungan serial SPI. Chip AVR yang digunakan untuk
tugas akhir ini adalah ATmega328.
2.2 Soket USB
Soket USB adalah soket untuk kabel USB yang disambungkan ke
komputer atau laptop yang berfungsi untuk mengirimkan program ke
arduino dan juga sebagai port komunikasi serial.
Gambar 2.3 Soket USB
Sambungan dari komputer ke board Arduino menggunakan USB,
bukan serial atau parallel port, sehingga akan mudah menghubungkan
Arduino ke PC atau laptop yang tidak memiliki serial/parallel port. Arduino
Uno menggunakan chip AVR Atmega 328 yang memiliki fasilitas PWM,
komunikasi serial, ADC, timer, interupt, SPI dan 12C. Sehingga Arduino
bisa digabungkan bersama modul atau alat lain dengan protokol yang
berbeda-beda.
14
2.3 Mini Servo
Merupakan sebuah mini servo yang memiliki kemampuan yang
sama dengan mini-mini servo terkenal lainnya seperti HXT900.
Spesifikasi:
No load speed : 0.10 second / 60 degrees (4.8V)
Stall Torque : 1.5 kg/cm (4.8V)
Operating temperature : 0 - 180 degrees Celcius
Dead Set : 7 microsecond
Operating Voltage : 4.8V - 6V
Cable length : 180mm
Dimensi dan Berat :
Size : 23 x 12.2 x 29 mm
Weight : 9 grams
Gambar 2.4 Mini Servo
2.4 Motor Shield L298
L298P Motor Shield dapat digunakan untuk menggerakkan dua
buah motor DC 7-12V dengan maksimum arus hingga 2A. Produk ini
kompatible dengan Arduino UNO, Arduino Mega maupun board Arduino
compatible yang lain, sehingga dapat langsung ditumpuk diatas board
Arduino dengan mudah.
Gambar 2.5 L298 Motor Shield
Spesifikasi:
Logic Control Voltage?5V (From Arduino)
Motor Driven Voltage?6.5~12v(VIN Power Supply),4.8~35V
(External Power Source)
2 way motor drive
Logic supply current Iss??36mA
Motor Driven current Io??2A
Maximum power consumption?25W?T=75??
Up to 2A current each way
Pin 4,5,6,7 are used to drive two DC motor
Support PWM speed control
Support PLL advance speed control
Size: 55x55mm
16
Compatibility
o Arduino UNO
o Arduino UNO R3
o Arduino Mega 1280/2560
2.5 Mini Motor DC
Motor DC (Motor Arus Searah), sebagaimana namanya,
menggunakan arus langsung yang tidak searah (direct-unidirectional).
Motor ini merupakan hasil perancangan tertua dibandingkan dengan
motor jenis lainnya. Saat ini, motor DC telah menjadi pilihan utama dalam
aplikasi industri, khususnya yang memiliki karakter kecepatan yang
berbeda, percepatan tetap dan pengendalian torsi
Gambar 2.5 Mini Motor DC
2.5 Switch
Switch (Saklar) adalah sebuah perangkat elektronik yang digunakan untuk
memutuskan jaringan listrik atau untuk menghubungkannya. Jadi saklar
pada dasarnya adalah alat penyambung atau pemutus aliran listrik. Selain
untuk jaringan listrik arus kuat, saklar berbentuk kecil juga dipakai untuk
alat komponen elektronika arus lemah.
Gambar 2.6 Switch
2.6 Bluetooth Module HC-06
Bluetooth Module HC-06 merupakan module komunikasi nirkabel pada
frekuensi 2.4GHz dengan default koneksi hanya sebagai SLAVE. Sangat
mudah digunakan dengan mikrokontroler untuk membuat aplikasi
wireless. Interface yang digunakan adalah serial RXD, TXD, VCC dan
GND. Built in LED sebagai indikator koneksi bluetooth.
Tegangan input antara 3.6 ~ 6V, jangan menghubungkan dengan sumber
daya lebih dari 7V. Arus saat unpaired sekitar 30mA, dan saat paired
(terhubung) sebesar 10mA. 4 pin interface 3.3V dapat langsung
dihubungkan ke berbagai macam mikrokontroler (khusus Arduino, 8051,
8535, AVR, PIC, ARM, MSP430, etc.). Jarak efektif jangkauan sebesar 10
meter, meskipun dapat mencapai lebih dari 10 meter, namun kualitas
koneksi makin berkurang.
18
Gambar 2.7 Bluetooth Module HC-06
Spesifikasi :
Bluetooth protocal: Bluetooth Specification v2.0+EDR
Frequency: 2.4GHz ISM band
Modulation: GFSK(Gaussian Frequency Shift Keying)
Emission power: ?4dBm, Class 2
Sensitivity: ?-84dBm at 0.1% BER
Speed: Asynchronous: 2.1Mbps(Max) / 160 kbps, Synchronous:
1Mbps/1Mbps
Security: Authentication and encryption
Profiles: Bluetooth serial port
Power supply: +3.3VDC 50mA
Working temperature: -20 ~ +75 Centigrade
2.7 FLAME SENSOR
Flame sensor ini dapat mendeteksi nyala api dengan panjang
gelombang 760 nm ~ 1100 nm. Dalam banyak pertandingan robot,
pendeteksian nyala api menjadi salah satu aturan umum perlombaan yang
tidak pernah ketinggalan. Oleh sebab itu sensor ini sangat berguna, yang
dapat Anda jadikan 'mata' bagi robot untuk dapat mendeteksi sumber
nyala api, atau mencari bola. Cocok digunakan pada robot fire Fighting.
Sensor nyala api ini mempunyai sudut pembacaan 60 derajat, dan
beroperasi pada suhu -25 - 85 derajat Celcius. Dan tentu saja untuk Anda
perhatikan, bahwa jarak pembacaan antara sensor dan objek yang
dideteksi tidak boleh terlalu dekat, untuk menghindari kerusakan sensor.
Gambar 2.8 FLAME SENSOR
Fitur
Interface:Analog
Supply Voltage: +5 V
Detection range: 20cm (4.8V) ~ 100cm (1V)
20
BAB III
APLIKASI ARDUINO PADA MOBIL MEKATRONIKA
3.1. APLIKASI MAJU MUNDUR
Berikut adalah listing program untuk menjalankan mobil maju dan mundur.
#define rightMotor_Dir 4#define rightMotor_Vel 5#define leftMotor_Dir 7#define leftMotor_Vel 6
void setup(){pinMode(4,OUTPUT);pinMode(5,OUTPUT);pinMode(6,OUTPUT);pinMode(7,OUTPUT);}
void maju() //Fungsi gerak maju
{ rightMotor(true); //motor kiri berputar leftMotor(true); //motor kanan berputar }
void mundur() // Fungsi gerak mundur { rightMotor(false); //motor leftMotor(false); }
void berhenti() { digitalWrite(leftMotor_Vel,LOW); //menghentikan motor kiri digitalWrite(rightMotor_Vel,LOW); //menghentikan motor kanan }
void rightMotor(boolean arah) //penggerak motor kanan { digitalWrite(rightMotor_Vel,HIGH); if(arah)digitalWrite(rightMotor_Dir,HIGH); else digitalWrite(rightMotor_Dir,LOW); }
void leftMotor(boolean arah) //Penggerak motor kiri { digitalWrite(leftMotor_Vel,HIGH); if(arah)digitalWrite(leftMotor_Dir,HIGH); else digitalWrite(leftMotor_Dir,LOW); } void loop()
{ maju(); delay(1000); mundur(); delay(1000); }
3.2. APLIKASI BELOK
#define rightMotor_Dir 4#define rightMotor_Vel 5#define leftMotor_Dir 7#define leftMotor_Vel 6
void setup(){pinMode(4,OUTPUT);pinMode(5,OUTPUT);pinMode(6,OUTPUT);pinMode(7,OUTPUT);}
void kiri() //belok ke kiri { digitalWrite(leftMotor_Vel, LOW); //matikan roda kiri digitalWrite(rightMotor_Vel, HIGH); //hidupkan roda kanan digitalWrite(rightMotor_Dir,HIGH); //arah maju roda kanan }
void kanan() //belok ke kanan { digitalWrite(rightMotor_Vel, LOW); //matikan roda kanan digitalWrite(leftMotor_Vel, HIGH); //hidupkan roda kiri digitalWrite(leftMotor_Dir,HIGH); //arah maju roda kiri }
void loop() { Kiri(); delay(1000); kanan();delay(1000); }
22
3.3. APLIKASI PWM
#define rightMotor_Dir 4#define rightMotor_Vel 5#define leftMotor_Dir 7#define leftMotor_Vel 6
void setup(){pinMode(4,OUTPUT);pinMode(5,OUTPUT);pinMode(6,OUTPUT);pinMode(7,OUTPUT);}
void berhenti() //fungsi berhenti { rightMotor(0, false); //matikan roda kanan,PWM=0 leftMotor(0, false); //matikan roda kiri, PWM=0 }
void maju() //Fungsi gerak maju { rightMotor(100,true); //hidupkan roda kanan dengan PWM=100, arah maju leftMotor(100,true); //hidupkan roda kiri dengan PWM=100, arah maju }
void mundur() //Fungsi gerak mundur { rightMotor(100, false);//hidupkan roda kanan dengan PWM=100, arah mundur leftMotor(100, false); //hidupkan roda kiri dengan PWM=100, arah mundur }
void kanan() //Fungsi gerak kiri { rightMotor(200, true); //hidupkan roda kanan, speed 200, arah maju leftMotor(10, true); //hidupkan roda kanan, speed 10, arah maju }
void kiri() { rightMotor(10,true); //hidupkan roda kanan, speed 10, arah maju leftMotor(200,true); //hidupkan roda kanan, speed 200, arah maju }
//Fungsi motor kanan, kecepatan dan arah. True=maju, false=mundurvoid rightMotor(int pwm, boolean arah) { analogWrite(rightMotor_Vel,pwm); kecepatan=pwm if(arah)digitalWrite(rightMotor_Dir,HIGH); //maju else digitalWrite(rightMotor_Dir,LOW); //mundur }
//Fungsi motor kiri, kecepatan dan arah. True=maju, false=mundurvoid leftMotor(int pwm, boolean arah) { analogWrite(leftMotor_Vel,pwm); kecepatan=pwm
if(arah)digitalWrite(leftMotor_Dir,HIGH); //maju else digitalWrite(leftMotor_Dir,LOW); //mundur }
void loop() { maju(); delay(1000); berhenti();delay(1000); mundur(); delay(1000); berhenti();delay(1000); kanan(); delay(5000); kiri(); delay(5000); }
3.4. APLIKASI LIMIT SWITCH
void loop() { maju(); if (digitalRead(2)==HIGH) //ketika limit switch 2 (kanan) menabrak { berhenti();delay(500); //stop mobil mundur(); delay(500); //mundur kiri(); delay(1000);//menghindar kiri } if (digitalRead(3)==HIGH) //ketika limit switch 3 (kiri) menabrak { berhenti();delay(500); //stop mobil mundur(); delay(500); //mundur kanan(); delay(1000);//menghindar ke kanan } }
24
3.5. APLIKASI BLUETOOTH
/* Bluetooth TX dicolok di arduino pin0-RX Bluetooth RX dicolok di arduino pin1-TX */
char perintah;
if(Serial.available()) { perintah=Serial.read(); if(perintah=='R') { kanan();delay(500); maju(); } if(perintah=='L') { kiri();delay(500); maju(); } if(perintah=='F') maju(); if(perintah=='B') mundur(); if(perintah=='S') berhenti(); }
3.6. APLIKASI SERVO
#include <Servo.h> Servo myservo;
void setup() { myservo.attach(9); } void loop() { for(pos = 1; pos < 180; pos += 1) { myservo.write(pos); delay(100); } }
3.7. APLIKASI FLAME SENSOR
int suhu; //deklarasi suhu integer
void setup() { pinMode(0, INPUT); //colok analog flame sensor di Arduino pin A0 Serial.begin(9600); //inizialing serial comm } void bacasuhu() { suhu=analogRead(0); //baca nyala api Serial.println(suhu);delay(1000);//tulis isi var suhu ke serial }
26
3.8. PENERAPAN MOBIL MEKATRONIKA PENCARI API
/*Program mobil mekatronika pencari api1. Ronny La Ode Aksah2. Ferdi Yusuf3. Oong Atita4. Sugito*/#define rightMotor_Dir 4#define rightMotor_Vel 5#define leftMotor_Dir 7#define leftMotor_Vel 6#include <Servo.h> Servo myservo; int pos = 0; int posisi_api=0;int suhu=0;int suhu_awal=0;
void setup() { pinMode(0, INPUT); //analog untuk sensor api Serial.begin(9600); //buka komunikasi serial myservo.attach(9); //servo pada pin#9 pinMode(4,OUTPUT); pinMode(5,OUTPUT); pinMode(6,OUTPUT); pinMode(7,OUTPUT); }
void berhenti() //fungsi berhenti { rightMotor(0, false); //matikan roda kanan,PWM=0 leftMotor(0, false); //matikan roda kiri, PWM=0 }
void maju() //Fungsi gerak maju { rightMotor(100,true); //hidupkan roda kanan dengan PWM=100, arah maju leftMotor(100,true); //hidupkan roda kiri dengan PWM=100, arah maju }
void mundur() //Fungsi gerak mundur { rightMotor(100, false);//hidupkan roda kanan dengan PWM=100, arah mundur leftMotor(100, false); //hidupkan roda kiri dengan PWM=100, arah mundur }
void kanan() //Fungsi gerak kiri { rightMotor(200, true); //hidupkan roda kanan, speed 200, arah maju leftMotor(10, true); //hidupkan roda kanan, speed 10, arah maju }
void kiri()
{ rightMotor(10,true); //hidupkan roda kanan, speed 10, arah maju leftMotor(200,true); //hidupkan roda kanan, speed 200, arah maju }
//Fungsi motor kanan, kecepatan dan arah. True=maju, false=mundurvoid rightMotor(int pwm, boolean arah) { analogWrite(rightMotor_Vel,pwm); kecepatan=pwm if(arah)digitalWrite(rightMotor_Dir,HIGH); //maju else digitalWrite(rightMotor_Dir,LOW); //mundur }
//Fungsi motor kiri, kecepatan dan arah. True=maju, false=mundurvoid leftMotor(int pwm, boolean arah) { analogWrite(leftMotor_Vel,pwm); kecepatan=pwm if(arah)digitalWrite(leftMotor_Dir,HIGH); //maju else digitalWrite(leftMotor_Dir,LOW); //mundur }
void bacasuhu() { suhu=analogRead(0); Serial.print("Posisi sudut Sekarang = “);Serial.print(pos); Serial.print(" Besar Api = ");Serial.println(suhu); } void cari_api() { int suhu_awal=0; for(pos = 1; pos < 180; pos +=15) { myservo.write(pos);delay(50); //putar servo ke arah isi pos bacasuhu(); //jalankan sub program baca suhu if (suhu>suhu_awal) { //mencatat suhu tertinggi, simpan di variable suhu_max suhu_max=suhu; posisi_api=pos; //mencatat posisi api tertinggi } }
/*cetak nilai suhu maksimal dan sudut tempat suhu maksimal ditemukan*/ Serial.println("");Serial.println("");Serial.println(""); Serial.print("Posisi sudut = ");Serial.print(posisi_api); Serial.print("Nilai Api Maximum = ");Serial.println(suhu_max); myservo.write(posisi_api); //arahkan servo ke titik api tertinggu delay(1000); }
28
void loop() //cari api belok lurus berhenti cari api lagi { cari_api(); //panggil sub program cari api. //titik posisi lurus sekitar sudut 110 derajat if (posisi_api<90) kiri(); //mobil sebelah kanan api if (posisi_api>130) kanan(); //mobil sebelah kiri api //mobil kira-kira segaris lurus dengan api if (posisi_api>90 && posisi_api<130) { maju();delay(500); berhenti();posisi_api=0; } }
3.9. PENERAPAN MOBIL MEKATRONIKA REMOTE CONTROL
BLUETOOTH DENGAN LIMIT SWITCH
#define rightMotor_Dir 4#define rightMotor_Vel 5#define leftMotor_Dir 7#define leftMotor_Vel 6char perintah;
void setup(){pinMode(4,OUTPUT);pinMode(5,OUTPUT);pinMode(6,OUTPUT);pinMode(7,OUTPUT);}
void berhenti() //fungsi berhenti { rightMotor(0, false); //matikan roda kanan,PWM=0 leftMotor(0, false); //matikan roda kiri, PWM=0 }
void maju() //Fungsi gerak maju { rightMotor(100,true); //hidupkan roda kanan dengan PWM=100, arah maju leftMotor(100,true); //hidupkan roda kiri dengan PWM=100, arah maju }
void mundur() //Fungsi gerak mundur { rightMotor(100, false);//hidupkan roda kanan dengan PWM=100, arah mundur leftMotor(100, false); //hidupkan roda kiri dengan PWM=100, arah mundur }
void kanan() //Fungsi gerak kiri { rightMotor(200, true); //hidupkan roda kanan, speed 200, arah maju leftMotor(10, true); //hidupkan roda kanan, speed 10, arah maju }
void kiri() { rightMotor(10,true); //hidupkan roda kanan, speed 10, arah maju leftMotor(200,true); //hidupkan roda kanan, speed 200, arah maju }
30
//Fungsi motor kanan, kecepatan dan arah. True=maju, false=mundurvoid rightMotor(int pwm, boolean arah) { analogWrite(rightMotor_Vel,pwm); kecepatan=pwm if(arah)digitalWrite(rightMotor_Dir,HIGH); //maju else digitalWrite(rightMotor_Dir,LOW); //mundur }
//Fungsi motor kiri, kecepatan dan arah. True=maju, false=mundurvoid leftMotor(int pwm, boolean arah) { analogWrite(leftMotor_Vel,pwm); kecepatan=pwm if(arah)digitalWrite(leftMotor_Dir,HIGH); //maju else digitalWrite(leftMotor_Dir,LOW); //mundur }
void loop() { //mulai loop if (digitalRead(2)==HIGH) //ketika limit switch 2 (kanan) menabrak { berhenti();delay(500); //stop mobil mundur(); delay(500); //mundur kiri(); delay(1000);//menghindar kiri } if (digitalRead(3)==HIGH) //ketika limit switch 3 (kiri) menabrak { berhenti();delay(500); //stop mobil mundur(); delay(500); //mundur kanan(); delay(1000);//menghindar ke kanan } //aplikasi remote control Bluetooth Arduino if(Serial.available()) //jika ada karakter dari bluetooth. { perintah=Serial.read(); if(perintah=='R') //belok kanan { kanan();delay(500); maju(); //lanjutkan maju kembali } if(perintah=='L') //belok kiri { kiri();delay(500); maju(); //lanjutkan maju kembali } if(perintah=='F') maju(); //maju if(perintah=='B') mundur(); //mundur if(perintah=='S') berhenti(); //berhenti } } //selesai loop
BAB IV
PENUTUP
4.1. KESIMPULAN
4.2. SARAN
32