A. Tujuan Projeck
Untuk tujuan dari adanya projeck ini adalah sebagai berikut :
• Mengetahui secara fisual fungsi dari masing-masing komponen sitem automasi.
• Mengasah kemampuan mahasiswa dalam mengaplikasikan dan merangkai sistem kerja
dari komponen.
• Dapat memahami materi perkuliahan mekatronika baik secara teori maupun
praktikum.
• Dapat mengaplikasikan sistem kontrol dalam bentuk prototype.
Motor Servo
Motor servo adalah motor yang mampu bekerja dua arah (CW dan CCW) dimana
arah dan sudut pergerakan rotornya dapat dikendalikan hanya dengan memberikan
pengaturan duty cycle sinyal PWM pada bagian pin kontrolnya. Motor servo terdapat 3
jalur kabel yaitu : power, ground, dan control.
Gambar 06. Motor Servo dan Desaind Prototype Model Miniatur Palang Parkiran
* Kabel warna merah merupakan kabel power yang berfungsi untuk mengkoneksikan
dengan tegangan 5V pada board arduino.
* Kabel yang berwarna coklat/hitam merupakan kabel ground yang nantinya akan
dihubungkan dengan ground yang ada pada board arduino.
* Kabel kuning yang merupakan kabel pin signal servo yang akan dihubungkan
dengan pin 9 pada board arduino.
#include <Servo.h>
Servo motorServo;
void setup()
{
motorServo.attach(10); // servo Pada Pin digital 10
}
void loop()
{
motorServo.write(45); // Turn Servo ke kiri 45 degrees
delay(1000);
motorServo.write(0); // Turn Servo ke kiri to 0 degrees
delay(1000);
motorServo.write(90); // Turn Servo ke posisi center
position (90 degrees)
delay(1000);
motorServo.write(135); // Turn Servo Ke kanan 135 degrees
delay(1000);
motorServo.write(180); // Turn Servo ke kanan 180 degrees
delay(1000);
motorServo.write(90); // Turn Servo ke posisi center
position (90 degrees)
delay(1000);
}
Tutorial Kontrol Sensor Jarak Sharp GP2Y0A21
Menggunakan Arduino
#include <DistanceGP2Y0A21YK.h>
DistanceGP2Y0A21YK Dist;
int distance;
void setup()
{
Serial.begin(9600);
Dist.begin(A0);
}
void loop()
{
distance = Dist.getDistanceCentimeter();
Serial.print("\nJarak: ");
Serial.print(distance);
Serial.print(" cm");
delay(500);
}
D. Cara kerja
Ketika ada kendaraan melewati / Berhenti didepan sensor jarak HC-SR04, Maka
Transmitter yang ada di sensor HC terpantul dan ditangkap oleh Receiver dan
kemudian secara otomatis menggerakkan Servo untuk mengngkat palang pintu parkir
serta menampilkan parkiran yang tidak digunakkan pada layar LCD.
Apabila ada kendaraan masuk maka nilai yang menampilkan parkiran yang tidak
digunaakn akan berkurang dan apabila ada kendaraan keluar maka nilai yang
menampilkan parkiran yang tidak digunaakn akan bertambah dan ketika parkiran
menunjukkan angka 0 maka parkiran didevinisikan sedang penuh dan palang pintu
masuk apabila ada kendaraan lagi maka tidak dapat terbuka.
E. Program
Untuk program pada arduino adalah sebagai berikut :
//Library
#include <Servo.h> // library Servo
#include <LiquidCrystal.h> // library lcd
//devinisi sensor HC
#define triger_Pin 8 // pin Triger sensor HC 1 & 2 jadi satu pin
int nomer = 6; // perhitungan dimulai dari 6
int echoPin[2]= {9, 10}; // pin echo sensor pada pin 9 & 10
int masuk,keluar; // dengan nama pin echo "masuk dan keluar"
unsigned long pulseTime=0; //
// rumus sensor hc
long sensor(int echo)
{
digitalWrite(triger_Pin, HIGH); // triger menyala
delay(10); // dengan waktu tunda 10 microsecond
digitalWrite(triger_Pin, LOW); // triger mati
pulseTime = pulseIn(echo, HIGH);// echo menyala
return pulseTime/58;
}
void setup()
{
Serial.begin(9600);
//sensor jarak HC
pinMode(triger_Pin, OUTPUT);
for(int i=0; i<2; i++)
{
pinMode(echoPin[i], INPUT);
}
//setup servo
servo_masuk.attach(13); // pin "servo_masuk" adalah 13
servo_keluar.attach(12); // pin "servo_keluar" adalah 12
}
void loop()
{
//pin sensor jarak HC masuk dan keluar
masuk=sensor(9); // pin "HC masuk" adalah 9
keluar=sensor(10); // pin "HC keluar" adalah 10
//penampilan lcd yang digunakkan 2*16 huruf/angka (atas 16, bawah 16)
lcd.begin(16, 2);
}
/*
* Mengontrol Servo dengan Sensor Ultrasonic
* Email : muhandi.prasetyo@gmail.com
* www.boarduino.blogspot.com
*/
void setup() {
Serial.begin (115200); //Kecepatan komunikasi serial
pinMode(trigPin, OUTPUT); //Set pin Trigger sebagai output
pinMode(echoPin, INPUT); //Set pin Echo sebagai input
pinMode(LEDmerah, OUTPUT); //Set LEDmerah sebagai output
pinMode(LEDhijau, OUTPUT); //Set LEDhijau sebagai output
myservo.attach(9); //Set servo pada pin PWM 9
}
void loop() {
int duration, jarak,posisi=0,i;
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
jarak = (duration/2) / 29.1;
Serial.print(jarak);
Serial.println(" cm");
{
digitalWrite(LEDhijau, LOW); //LEDhijau mati
digitalWrite(LEDmerah, HIGH); //LEDmerah hidup
myservo.write(180); //Posisi servo pada 180 derajat
delay(450); //Delay
digitalWrite(LEDmerah, LOW); //LEDmerah mati
myservo.write(90); //Posisi servo pada 90 derajat
delay(450); //Delay
digitalWrite(LEDmerah, HIGH); //LEDmerah hidup
myservo.write(0); //Posisi servo pada 0 derajat
delay(450); //Delay
digitalWrite(LEDmerah, LOW); //LEDmerah mati
myservo.write(90); //Posisi servo pada 90 derajat
}