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
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.
ms pulse)adalah kearah kiri.
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:
- Hubungkan kabel orange ke pin D5 pada board NodeMCU
- Hubungkan kabel merah ke 5V pada board Arduino UNO
- Hubungkan kabel coklat ke GND pada board Arduino UNO
- Lakukan koding berikut ini:
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