Mengontrol Arah Putaran Motor DC dengan Accelerometer

Ditulis oleh agan

بِسْــــــــــــــــمِ اﷲِالرَّحْمَنِ اارَّحِيم

Halo semuanya, selamat datang bagi kalian yang mungkin selalu berkunjung ke Blog ini.
Sekarang sudah awal Bulan Maret 2016, semoga selalu sehat dan tetap semangat belajar, Amiin.

Intermezzo : Sebelum kita mencobanya, alangkah baiknya kita berkenalan terlebih dahulu dengan si Doi. Apa itu modul sensor GY521 MPU6050? MPU6050 adalah chip IC invense yang di dalamnya terdapat sensor accelerometer dan gyroscop yang sudah terintegrasi. Alasan menggunakan sensor ini adalah karena harganya relatif murah dimana sudah mendapatkan 2 sensor yang sudah terintegrasi.

Berikut adalah spesifikasi dari Modul GY521 MPU6050: 
  • Berbasis Chip MPU-6050
  • Supply tegangan berkisar 3-5V
  • Gyroscope range + 250 500 1000 2000 ° / s
  • Acceleration range: ± 2 ± 4 ± 8 ± 16 g
  • Communication standard I2C
  • Chip built-in 16 bit AD converter, 16 bits data output
  • Jarak antar pin header 2.54 mm
  • Dimensi modul 20.3mm x 15.6mm
Karena pada saat saya menulis artikel ini sudah larut malam, maka akan saya persingkat waktunya. Pada kali ini kita akan memanfaatkan Arduino dan modul sensor GY521 MPU6050 untuk mengendalikan arah putaran dari 1 buah Motor DC untuk di kontrol Clockwise dan Counter Clockwise dengan driver motor IC L293D atau Adafruit L293D Motorshield.


Alat dan Bahan yang dibutuhkan :
  • 1x Arduino (Compatible)
  • 1x Motor DC
  • 1x MPU6050 
  • 1x IC L293D / L293D Motorshield
  • Kabel jumper secukupnya
  • Breadboard (Project Board)
  • Library I2Cdev dan MPU6050, silahkan klik DOWNLOAD

 Langkah - Langkahnya :

1.) Pertama, susunlah rangkaian seperti gambar dibawah ini


Keterangan Konfigurasi Kabel :
  • Pin 3,3V pada arduino dihubungkan ke VCC pada MPU6050
  • Pin GND pada arduino dihubungkan ke GND pada MPU6050
  • Pin A4 pada arduino dihubungkan ke SCL pada MPU6050
  • Pin A5 pada arduino dihubungkan ke SDA pada MPU6050
  • Hubungkan Kaki 1 pada IC L293D ke Pin 9 pada Arduino
  • Hubungkan Kaki 2 pada IC L293D ke Pin 3 pada Arduino
  • Hubungkan Kaki 7 pada IC L293D ke Pin 5 pada Arduino
  • Hubungkan Kaki 3 pada IC L293D ke Salah satu Input pada Motor DC 
  • Hubungkan Kaki 6 pada IC L293D ke Salah satu Input pada Motor DC 
  • Hubungkan Kaki 8 dan 16 pada IC L293D ke VCC
  • Hubungkan Kaki 4, 5, 12 dan 13 pada IC L293D ke GND
2.) Setelah itu sambungkan Arduino pada Laptop/PC dengan menggunakan kabel serial.
3.) Download dan Install program Arduino IDE di Arduino.cc ( If Needed )
4.) Setelah terinstall, jalankan program Arduino-nya.
5.) Klik menu "Tools -> Board -> Arduino Uno"
6.) Klik menu "Tools -> Port -> ( Pilih Port arduino yang terdeteksi di komputer anda )
7.) Lalu masukan Sketch dibawah ini, dan terakhir klik upload.

Klik LIHAT DONG untuk melihat sketch
#include "Wire.h"
#include "I2Cdev.h"
#include "MPU6050.h"

MPU6050 mpu;

int16_t ax, ay, az;
int16_t gx, gy, gz;

#define pin1 3
#define pin2 5

void setup(){
 Serial.begin(9600);
 Serial.println("Inisialisasi MPU");
 mpu.initialize();
 pinMode(pin2,OUTPUT);

}

void loop(){
 mpu.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);

 ax = map(ax, -17000, 17000, -1500, 1500);

 if(ax > 0){
  if(ax<255){
  Serial.println(ax);
  analogWrite(pin2,ax);
}
 else{
  Serial.println("+255");
  analogWrite(pin2,255);
   }
}
 if(ax<0){
  if(ax>-255){
  Serial.println(ax);
  analogWrite(pin1, ax-ax-ax);
}
 else{
  Serial.println("-255");
  analogWrite(pin1, 255);
 }
}
 delay(1000);
}

NOTE : Apabila mengontrol Motor DC dengan rangkaian seperti diatas, maka membutuhkan power supply external. Karena arduino kurang kuat untuk menggerakan Motor DC.

Dan apabila ente kebetulan mempunyai L293D Motorshield, maka gunakan konfigurasi ini :
  • Tancapkan L293D Motorshield pada Arduino
  • Pasangkan Motor DC pada terminal M4 pada Motorshield 
  • Pin 3,3V pada arduino dihubungkan ke VCC pada MPU6050
  • Pin GND pada arduino dihubungkan ke GND pada MPU6050
  • Pin A4 pada arduino dihubungkan ke SCL pada MPU6050
  • Pin A5 pada arduino dihubungkan ke SDA pada MPU6050
Lalu masukkan Sketch dibawah ini dan Upload pada Board Arduino ente.

Klik LIHAT DONG untuk melihat sketch
#include <Wire.h>
#include <I2Cdev.h>
#include <MPU6050.h>
#include <AFMotor.h>
AF_DCMotor motor1(4, MOTOR12_64KHZ);

MPU6050 mpu;
int16_t ax, ay, az;
int16_t gx, gy, gz;

void setup() {
  Wire.begin();
  Serial.begin(9600);
  Serial.println("Inisialisasi MPU");
  mpu.initialize();
  Serial.println(mpu.testConnection() ? "Connected" : "Connection failed");
  motor1.setSpeed(100);
}
void loop() {
  mpu.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);
  Serial.println(ax);
if (ax <= -30){
  motor1.run(FORWARD);
  delay(10);
}
else if (ax >= 30){
  motor1.run(BACKWARD);
  delay(10);
}
else{
  motor1.run(RELEASE);
  delay(10);
  }
}

NOTE : Apabila saat di compile mendapatkan pesan error, tambahkan Library AFMotor.h


Terimakasih telah berkunjung, selamat mencoba, semoga bermanfaat.

Blog, Updated pada: 00:09:00
Comments
0 Comments

0 comments:

Post a Comment

Masih Bingung atau Hal Lainnya? Silahkan Bertanya di Kolom Komentar :)

~ Dilarang SARA
~ Dilarang PORNOGRAPHY
~ Dilarang SPAM
~ Dilarang MENINGGALKAN LINK AKTIF
~ Maaf untuk Anonymous, tidak bisa Berkomentar.

Apabila Komentar anda belum muncul, Tunggu sampai di Moderasi.
Terimakasih atas Perhatiannya.


English French German Spain Italian Dutch Russian