Rabu, 26 Oktober 2016

Kendali 9g servo motor melalui NodeMCU V1.0 (Arduino IDE)

9g Micro Servo merupakan servo motor ringan dengan tenaga keluaran yang besar.  Servo dapat berputar lebih kurang 180 derajat (90 pada masing-masing arah), dan bekerja dengan standard dalam ukuran kecil. Anda dapat menggunakan koding servo apa saja, perangkat keras atau library untuk mengendalikan servo.

Gambar 1. Micro Servo 9g


Cocok untuk pemula yang ingin membuat gerakan tanpa harus merakit pengendali dengan feedback & gear box dengan spesifikasi sebagai berikut:
  • Weight: 9 g 
  • Dimension: 22.2 x 11.8 x 31 mm approx. 
  • Stall torque: 1.8 kgf.cm
  • Operating speed: 0.1 s/60 degree 
  • Operating voltage: 4.8 V (~5V) 
  • Dead band width: 10 μs 
  • Temperature range: 0 ºC – 55 ºC 
Servo motor bekerja dengan sinyal Pulse Wide Modulation  PWM dengan pulse 1 s/d 2 milidetik sebagai berikut:

Gambar 2. Servo motor bekerja dengan PWM

Posisi "0" (1.5 ms pulse) adalah ditengah, "90" (~2 ms pulse) adalah kearah kanan, dan "-90" (~1
ms pulse)adalah kearah kiri.
Dengan aturan perkabelan sebagai berikut ini:

Gambar 2. Aturan perkabelan  Micro Servo 9g

Berdasarkan gambar 2 tersebut diatas, maka adalah jelas bahwa kabel orange dihubungkan ke pin PWM, bukan pin analog yang ada pada board NodeMCU, sedangkan kabel merah adalah ke sumber tegangan 5 Volt dan kabel coklat adalah ke GND. Berikut ini adalah gambaran pin pada board NodeMCU yang dapat beroperasi secara PWM

Gambar 3. Pin pada board NodeMCU yang dapat beroperasi secara PWM

Karena NodeMCU V1.0 tidak memiliki output tegangan 5 volt, sehingga pada percobaan ini saya menggunakan bantuan sumber tegangan dari papan Arduino UNO yang memiliki ouput tegangan 5 Volt. Jika anda tidak memiliki board Arduino atau untuk servo motor yang lebih besar, maka dapat menggunakan sumber tegangan eksternal.

Langkah-langkah:
  1. Hubungkan kabel orange ke pin D5 pada board NodeMCU
  2. Hubungkan kabel merah ke 5V pada board Arduino UNO
  3. Hubungkan kabel coklat ke GND pada board Arduino UNO
  4. Lakukan koding berikut ini:
#include <Servo.h>

Servo myservo; // create servo object to control a servo

int pos = 0; // variable to store the servo position
const int pinServo=D5; //pin PWM pada NodeMCU

void setup() {
  myservo.attach(pinServo); // attaches the servo on pin 9 to the servo object
}

void loop() {
  // put your main code here, to run repeatedly:
  for(pos = 0; pos < 180; pos += 1) // goes from 0 degrees to 180 degrees
  { // in steps of 1 degree
    myservo.write(pos); // tell servo to go to position in variable 'pos'
    delay(15); // waits 15ms for the servo to reach the position
  }
  for(pos = 180; pos>=1; pos-=1) // goes from 180 degrees to 0 degrees
  {
    myservo.write(pos); // tell servo to go to position in variable 'pos'
    delay(15); // waits 15ms for the servo to reach the position
  }
}

5. Lakukan verify
6. Upload

Salam,
Hendra.

Tidak ada komentar:

Posting Komentar