Servo diterapkan dimanapun, sebagai bagian dari hobby atau bisa juga untuk sesuatu yang serius seperti membuat robot atau mainan yang dikendalikan secara remote.
Dalam video tutorial ini, kita akan menjalankan dua eksperimen. Dalam eksperimen pertama, kita mengendalikan servo SG90, sebuah servo yang biasa digunakan dalam project Arduino, dengan menggunakan mikro controller Arduino.
Dalam eksperimen kedua, kita menggunakan potensiometer untuk mengendalikan servo. Baik dalam eksperimen pertama maupun kedua, dijelaskan bagaimana menyambungkan komponennya ke papan Arduino dan bagaimana membuat kode programnya.
Eksperimen pertama: Mengendalikan Servo SG90 dengan Micro Controller Kode program.
Eksperimen kedua: Mengendalikan Servo SG90 dengan potensiometer Skema dan kode program dapat dilihat di bawah ini.
Skema Breadboard servo potensiometer Eksperimen kedua
Kode program eksperimen pertama
// Protus Tanuhandaru // www.progresstech.co.id #include <Servo.h> // memanggil library servo Servo servo; // Membuat instance untuk servo int posisi_awal = 90; // menentukan posisi awal servo int sudut = 0; // Nilai awal pertambahan perputaran otomatis int sudutMaks = 180; // Nilai maksimum sudut servo int delayKiri = 10; // Delay dalam mili detik untuk kecepatan berputar ke kiri int delayKanan = 10; // Delay dalam mili detik untuk kecepatan berputar ke kanan void setup() { Serial.begin(9600); servo.attach(9); // servo ditempatkan pada PIN digital PWM 9 servo.write(posisi_awal); // servo diposisikan pada posisi awal delay(1000); } void loop() { // Mengatur perilaku gerakan dan kecepatan servo for(sudut=0;sudut<sudutMaks;sudut++) { servo.write(sudut); // Menuliskan nilai sudut servo delay(delayKanan); // Memperlambat kecepatan berputar servo } for(sudut=sudutMaks;sudut>=1;sudut--) { servo.write(sudut); // Menuliskan nilai sudut servo delay(delayKiri); // Memperlambat kecepatan berputar servo } }
Kode program eksperimen kedua
// Protus Tanuhandaru // www.progresstech.co.id #include <Servo.h> // Memanggil library servo Servo servo; // Membuat instance untuk servo int posisi_awal = 90; // menentukan posisi awal servo const int analogDataPot = A2; // PIN analog yang tersambung ke potensiometer int nilaiInputPot = 0; // Nilai yang dibaca dari potensiometer int sudut = 0; // Nilai yang dihasilkan ke PWM void setup() { Serial.begin(9600); servo.attach(9); // servo ditempatkan pada PIN digital PWM 9 servo.write(posisi_awal); // servo diposisikan pada posisi awal delay(1000); } void loop() { // membaca nilai analog potensiometer nilaiInputPot = analogRead(analogDataPot); // memetakan nilai ke kisaran nilai PWM sudut = map(nilaiInputPot, 0, 1023, 0, 180); // Protus Tanuhandaru // www.progresstech.co.id include // Memanggil library servo Servo servo; // Membuat instance untuk servo int posisi_awal = 90; // menentukan posisi awal servo const int analogDataPot = A2; // PIN analog yang tersambung ke potensiometer int nilaiInputPot = 0; // Nilai yang dibaca dari potensiometer int sudut = 0; // Nilai yang dihasilkan ke PWM void setup() { Serial.begin(9600); servo.attach(9); // servo ditempatkan pada PIN digital PWM 9 servo.write(posisi_awal); // servo diposisikan pada posisi awal delay(1000); } void loop() { // membaca nilai analog potensiometer nilaiInputPot = analogRead(analogDataPot); // memetakan nilai ke kisaran nilai PWM sudut = map(nilaiInputPot, 0, 1023, 0, 180); // Memposisikan servo berdasarkan skala dari potensiometer servo.write(sudut); // menunggu servo agar servo berpindah ke tempat yang diinginkan delay(15); } // Memposisikan servo berdasarkan skala dari potensiometer servo.write(sudut); // menunggu servo agar servo berpindah ke tempat yang diinginkan delay(15); }