1. Pendahuluan
1.1 Pengenalan
Dalam modul ini Anda akan belajar tentang bagaimana mengintegrasikan
sensor dan actuator untuk sebuah perangkat mekatronika sederhana. Terdapat
beberapa perangkat sensor dan actuator yang akan dibahas dalam modul ini,
antara lain perangkat sensor ultrasonic dan perangkat motor servo.
Pin Description
2.2 Konsep
1. Duty Cycle
Pulse Width Modulation (PWM) yang tersedia pada mikrokontroler adalah
salah satu cara yang digunakan untuk mengontrol sinyal servo. Ketika berbicara
tentang berapa lama sinyal PWM aktif, ini disebut sebagai Duty Cycle. Duty
Cycle diukur dalam persentase. Persentase Duty Cycle secara khusus
menjelaskan persentase waktu sinyal digital menyala selama interval atau
periode waktu. Variasi dalam Duty Cycle memberitahu servo ke posisi sudut
mana untuk shaft dari motor servo harus bergerak.
2. Library Arduino
Menulis kode sinyal PWM yang tepat ke servo akan memakan waktu dan
akan membutuhkan lebih banyak pengetahuan tentang servo. Untungnya,
Arduino IDE memiliki ratusan paket kode bawaan dan juga yang dibangun oleh
para pengguna yang dikumpulkan dalam sebuah library (perpustakaan). Salah
satu perpustakaan bawaan yang dimiliki Arduino IDE adalah Perpustakaan
Servo. Perpustakaan Servo memungkinkan kita untuk mengontrol servo hanya
dengan beberapa baris kode.
Untuk menggunakan salah satu paket kode Arduino bawaan, yang harus Anda
lakukan adalah "memasukkan" sebuah tautan ke file tajuknya yang disebut
sebagai file header. File header adalah file kode yang lebih kecil yang berisi
definisi untuk semua fungsi yang digunakan di perpustakaan itu. Dengan
menambahkan tautan ke file header di kode Anda, Anda mengaktifkan kode
untuk menggunakan semua fungsi perpustakaan itu. Untuk menggunakan
Perpustakaan Servo, anda perlu menambahkan baris berikut ke bagian atas
program Anda.
#include <Servo.h>
2.3 Rangkaian
Rangkaian akan tampak seperti gambar dibawah.
2.4 Kode Program
Kode program dibawah dapat ditulis pada jendela kerja Arduino IDE.
#include <Servo.h> //memasukan perpustakaan servo
void loop() {
potPosition = analogRead(A0); //menggunakan analog
baca untuk menentukan posisi potensio meter (0-1023)
Deskripsi Kode :
Kode Deskripsi
Membuat Objek Servo perintah ini menciptakan objek servo baru dan memberikan nama
Servo: padanya, myServo dalam kasus ini. Jika Anda membuat lebih dari satu
Servo myServo; objek servo, Anda harus memberi mereka nama yang berbeda.
Memasang Servo: .attach() Metode memberitahu objek servo yang menempelkan kabel
myServo.attach(9); sinyal servo-nya. Ini akan mengirim sinyal posisi ke pin ini. Dalam sketsa
ini, pin 9 digunakan. Ingatlah untuk hanya menggunakan pin digital yang
mampu PWM.
Pemetaan:
map(potPosition, Seperti yang ditunjukkan pada sirkuit sebelumnya, nilai pin analog pada
0,1023,20,160); mikrokontroler Anda bervariasi dari 0-1023. Namun, bagaimana jika kita
ingin nilai-nilai itu mengendalikan motor servo yang hanya menerima nilai
dari 0-180? Jawabannya adalah menggunakan fungsi peta.
Fungsi map() mengambil rentang nilai dan menghasilkan rentang nilai
yang berbeda yang dapat mengandung nilai lebih atau kurang dari
aslinya. Dalam hal ini, kami mengambil rentang 0-1023 dan
memetakannya ke kisaran 20-160.
Servo Write: .write() Metode memindahkan servo ke sudut yang ditentukan. Dalam
myServo.write(90); contoh ini, servo sedang diperintahkan untuk pergi ke sudut 90.
Servo tidak Periksa kabel pada servo Anda. Pastikan bahwa kabel merah pada kabel
bergerak servo terhubung ke 5V, kabel hitam terhubung ke GND dan kabel sinyal putih
terhubung ke pin 9.
Servo Berkedut Meskipun servos ini seharusnya bergerak dari 0 hingga 180 derajat, kadang-
kadang mengirimnya ke titik ekstrem dari jangkauannya menyebabkan
mereka bergerak-gerak (servo berusaha bergerak lebih jauh daripada yang
bisa). Pastikan Anda tidak memberi tahu servo untuk bergerak di luar kisaran
20-160 derajat.
LAPORAN PRAKTIKUM MEKATRONIKA MODUL 3A
Serahkan lembar laporan praktikum ini pada asisten segera setelah praktikum tiap
modul selesai
NAMA PRAKTIKAN :
KELOMPOK :
TANGGAL PRAKTIKUM :
(1). Kode perintah apa yang diubah saat ingin membalik putaran servo terhadap
potensiometer?
(2). Kode apa yang anda gunakan untuk memperbesar rasio putaran potensiometer
terhadap pergerakan servo?
(3). Tuliskan kode jika anda ganti potensiometer dengan sensor cahaya!
3 Sirkuit 3B : Sensor Jarak
3.1 Komponen
Komponen yang digunakan pada sirkuit ini adalah :
1. RGB LED
2. Kabel jumper
3. Resistor 330 Ω
4. Sensor jarak
Pin Description
Tabel Hookup
Component RedBoard Breadboard Breadboard Breadboard Breadboard
RGB LED A25 (RED) A24 (GND) A23 (GREEN) A22 (BLUE)
void setup()
{
Serial.begin (9600); //atur koneksi dengan komputer
void loop() {
distance = getDistance(); //Variabel yang digunakan untuk menyimpan jarak
} else if(10 < distance && distance < 20){ //jika jarajk medium
//------------------FUNCTIONS-------------------------------
Deskripsi Kode
Kode Deskripsi
Fungsi User-Defined: Fungsi ini memberi tahu sensor jarak untuk mengirimkan
getDistance(); bentuk gelombang ultrasonik, mengukur waktu yang
diperlukan untuk memantul kembali ke sensor, lalu
menghitung jarak berdasarkan kecepatan suara.
Perhitungan ini didasarkan pada informasi yang ditemukan
di sensor jarak datasheet.
3.4 Troubleshooting
Masalah Solusi
Warna LED RGB tidak Periksa koneksi untuk kawat dan resistor yang terhubung
berfungsi atau ada ke setiap kaki LED. Pastikan LED RGB dimasukkan dalam
warna yang hilang orientasi yang benar.
Sensor jarak Buka monitor serial di komputer Anda. Anda akan melihat
sepertinya tidak aliran jarak yang dicetak di monitor. Jika mereka semua
berfungsi membaca 0 atau melompat-lompat, maka periksa kabel
pada sensor Anda.
NAMA PRAKTIKAN :
KELOMPOK :
TANGGAL PRAKTIKUM :
(1). Tuliskan kode sehingga nilai dalam pernyataan logika sehingga LED RGB
berubah warna pada jarak yang berbeda
(2). Coba edit kode sehingga sensor jarak menghasilkan satuan panjang
sentimeter
(3). Tuliskan kode jika terdapat 4 variasi jarak (0-10cm, 10-20cm, 20-30cm, dan
diatas 30cm) dengan kode warna masing-masing merah, biru, jingga, hijau!
4. Sirkuit 3C : Alarm Gerak
4.1 Komponen
Komponen yang digunakan pada sirkuit ini adalah :
1. RGB LED
2. Piezo Buzzer
3. Resistor 330 Ω
4. Motor Servo
5. Kabel jumper (15 buah )
4.2 Rangkaian
const int trigPin = 11; //koneksikan triger pin dengan sensor jarak
const int echoPin = 12; //koneksikan echo pin dengan sensor jarak
void loop() {
distance = getDistance(); // variabel untuk menyimpan jarak yang diukur oleh
sensor
Serial.print(distance)*2.54; // cetak jarak yang diukur
Serial.println(" cm"); // unit cetak setelah jarak
if(distance <= 10){ //if the object is close
} else if(10 < distance && distance < 20){ //jika objek dengan jarak medium
//------------------FUNCTIONS-------------------------------
Deskripsi Kode
Kode Deskripsi
Constants: const int Konstanta adalah variabel yang telah ditandai sebagai "hanya-baca"
trigPin = 11; dan tidak dapat mengubah nilainya saat program berjalan. Konstanta
sangat bagus untuk mendeklarasikan variabel nomor pin yang tidak
akan berubah sepanjang program.
No Tone Function: Di sirkuit 2A Anda membuat lagu menggunakan buzzer dan fungsi
noTone(pin_number); nada, tetapi Anda memberi fungsi nada tiga parameter: nomor pin,
frekuensi, dan durasi. Anda dapat meninggalkan parameter ketiga,
dan nada akan diputar sampai Anda mengubahnya atau
mematikannya. noTone () mematikan pin yang telah diaktifkan
dengan perintah nada.
4.4 Troubleshooting
Masalah Solusi
Warna LED RGB tidak Periksa koneksi untuk kawat dan resistor yang terhubung ke setiap
berfungsi atau ada warna kaki LED. Pastikan LED RGB dimasukkan dalam orientasi yang
yang hilang benar.
Sensor jarak sepertinya Buka Serial Monitor di komputer Anda. Anda akan melihat aliran jarak
tidak berfungsi yang dicetak di monitor. Jika mereka semua membaca 0 atau
melompat-lompat, maka periksa kabel pada sensor Anda.
Sensor jarak masih tidak Polusi suara ultrasonik akan mengganggu pembacaan sensor jarak
berfungsi Anda. Jika Anda mengarahkan dua sensor jarak satu sama lain,
mereka akan membingungkan satu sama lain. Beberapa sistem
pendingin udara juga dapat mengeluarkan suara dalam kisaran
ultrasonik. Coba arahkan sensor Anda dari sensor jarak lain atau
ubah ke lokasi lain.
Servo tidak berfungsi Pastikan semua kabel servo Anda terhubung. Pastikan bahwa kabel
hitam terhubung ke rel negatif dan kabel merah terhubung ke rail
positif. Pastikan Anda menggunakan pin digital yang mampu PWM.
Munculan terlalu banyak Dua baris kode yang melewati sudut ke motor servo adalah
atau tidak cukup myservo.write(45); dan myservo.write(135);. Coba ubah
nilai sudut ini untuk menyempurnakan mekanisme Anda.
LAPORAN PRAKTIKUM MEKATRONIKA MODUL 3C
Serahkan lembar laporan praktikum ini pada asisten segera setelah praktikum tiap
modul selesai
NAMA PRAKTIKAN :
KELOMPOK :
TANGGAL PRAKTIKUM :
(1). Tuliskan kode sehingga alarm berbunyi dari jarak yang lebih jauh atau lebih
dekat