Mengontrol Banyak Servo dengan Arduino


Selamat Malam sobat setia Master Linuxser berjumpa lagi dengan saya, Semoga kita menjadi lebih sehat agar dapat semangat untuk terus belajar dan berkarya, Amiin.

Di kesempatan hari ini, kita akan mencoba Mengontrol banyak servo melalui Android. Pada artikel sebelumnya yang ada di blog ini, saya juga pernah mempublish artikel yang berjudul "Mengontrol Servo dengan Android dan Arduino". 

Sebenarnya tidak ada banyak perbedaan dari artikel tersebut, perbedaannya hanya saja kali ini kita akan mengontrol lebih banyak servo.
Dengan menggunakan Smartphone android untuk mengontrol derajat putaran servo, maka tentunya akan lebih memudahkan kita dalam menyelesaikan project Arduino kita. 

Contoh kecilnya, jika anda mempunyai Robotic Arm seperti MeArm, anda dapat mengatur derajat putaran Servo base, shoulder, elbow dan gripper menggunakan Android via Bluetooth dengan aplikasi Arduino Bluetooth 6CH Servo ini atau aplikasi MeArm Controller download disini

Alat dan Bahan yang dibutuhkan :

  • 1x Arduino UNO
  • 1x Bluetooth modul ( HC-05 atau HC-06 juga boleh)
  • 6x Motor servo
  • 1x Project board ( Breadboard )
  • Smartphone Android
  • Aplikasi android Arduino Bluetooth 6CH Servo.  Download disini
  • Kabel jumper secukupnya

Langkah - Langkahnya :
1.) Susunlah rangkaian berikut pada breadboard


Keterangan Konfigurasi Kabel :

  • Pin 5V pada arduino dihubungkan ke VCC modul bluetooth
  • Pin GND pada arduino dihubungkan ke GND pada modul bluetooth
  • Pin RXD pada arduino dihubungkan ke TX pada modul bluetooth
  • Pin TXD pada arduino dihubungkan ke RX pada modul bluetooth
  • Pin 3 pada arduino dihubungkan ke kabel kuning Servo channel 1
  • Pin 5 pada arduino dihubungkan ke kabel kuning Servo channel 2
  • Pin 6 pada arduino dihubungkan ke kabel kuning Servo channel 3
  • Pin 9 pada arduino dihubungkan ke kabel kuning Servo channel 4
  • Pin 10 pada arduino dihubungkan ke kabel kuning Servo channel 5
  • Pin 11 pada arduino dihubungkan ke kabel kuning Servo channel 6
  • Kabel merah pada semua servo di jumper ke 5V ( Tegangan positif )
  • Kabel hitam pada semua servo di jumper ke GND ( Tengangan negatif )
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.
Untuk Script nya dibawa ini.

/*6 Channel Servo Motor Control ~ www.linuxindonesia404.blogspot.com */
#include <Servo.h>
Servo servo_channel_1;
Servo servo_channel_2;
Servo servo_channel_3;
Servo servo_channel_4;
Servo servo_channel_5;
Servo servo_channel_6;
int hasil_servo_channel_1;
int hasil_servo_channel_2;
int hasil_servo_channel_3;
int hasil_servo_channel_4;
int hasil_servo_channel_5;
int hasil_servo_channel_6;
int hasil_serial;
void setup() {
  Serial.begin(38400); //Sesuaikan baudrate dengan modul bluetooth anda!
  Serial.setTimeout(4);
  servo_channel_1.attach(3);
  servo_channel_2.attach(5);
  servo_channel_3.attach(6);
  servo_channel_4.attach(9);
  servo_channel_5.attach(10);
  servo_channel_6.attach(11);
  servo_channel_1.write(hasil_servo_channel_1);
  servo_channel_2.write(hasil_servo_channel_2);
  servo_channel_3.write(hasil_servo_channel_3);
  servo_channel_4.write(hasil_servo_channel_4);
  servo_channel_5.write(hasil_servo_channel_5);
  servo_channel_6.write(hasil_servo_channel_6);
}

void loop() {
  if (Serial.available()>0) {
    hasil_serial = Serial.parseInt();
    if (hasil_serial >0 && hasil_serial <180)
    {
        hasil_servo_channel_1 = hasil_serial;
        hasil_servo_channel_1 = map(hasil_serial, 0, 180, 0, 180);
        servo_channel_1.write(hasil_servo_channel_1);
}
   if (hasil_serial >180 && hasil_serial <360)
    {
        hasil_servo_channel_2 = hasil_serial;
        hasil_servo_channel_2 = map(hasil_serial, 180, 360, 0, 180);
        servo_channel_2.write(hasil_servo_channel_2);
}
   if (hasil_serial >360 && hasil_serial <540)
    {
        hasil_servo_channel_3 = hasil_serial;
        hasil_servo_channel_3 = map(hasil_serial, 360, 540, 0, 180);
        servo_channel_3.write(hasil_servo_channel_3);
}
       if (hasil_serial >540 && hasil_serial <720)
    {
        hasil_servo_channel_4 = hasil_serial;
        hasil_servo_channel_4 = map(hasil_serial, 540, 720, 0, 180);
        servo_channel_4.write(hasil_servo_channel_4);
}
       if (hasil_serial >720 && hasil_serial <900)
    {
        hasil_servo_channel_5 = hasil_serial;
        hasil_servo_channel_5 = map(hasil_serial, 720, 900, 0, 180);
        servo_channel_5.write(hasil_servo_channel_5);
}
       if (hasil_serial >900 && hasil_serial <1080)
    {
        hasil_servo_channel_6 = hasil_serial;
        hasil_servo_channel_6 = map(hasil_serial, 900, 1080, 0, 180);
        servo_channel_6.write(hasil_servo_channel_6);
    }
  }
}

Terimakasih telah berkunjung, selamat mencoba, semoga bermanfaat buat kalian semua.

Subscribe to receive free email updates: