Kategori
IoT

Praktek Motor Servo

Motor servo adalah perangkat elektromekanis yang dirancang menggunakan sistem kontrol jenis loop tertutup (servo) sebagai penggerak dalam sebuah rangkaian yang menghasilkan torsi dan kecepatan berdasarkan arus listrik dan tegangan yang diberikan.

Motor servo bekerja dengan memutar gear dengan derajat tertentu sesuai dengan keinginan.

Motor Servo

Cara kerja motor servo bergantung lebar pada sinyal modulasi yang memakai sistem kontrol. Lebar sinyal tersebut nantinya yang akan menjadi penentu bagaimana posisi dari sudut putaran yang ada pada bagian poros motor.

Motor servo biasa digunakan pada projek yang membutuhkan mekanisme gerakan mekanik dengan besar sudut tertentu.

Cara Kerja Motor Servo

Rangkaian Motor Servo dengan Potensiometer

Kode Program


#include <Servo.h>

Servo myservo;  

int potpin = 0;  
int val;    

void setup() {
  myservo.attach(9);  
}

void loop() {
  val = analogRead(potpin);            
  val = map(val, 0, 1023, 0, 180);     
  myservo.write(val);                  
  delay(15);                           
}

Jalankan Program

Program tersebut digunakan untuk memutar/menggerakkan sudut servo sesuai dengan input potensiometer.

  • Klik Potensiometer untuk mengatur nilai potensiometer.
  • Atur arah sesuai dengan keinginan.
  • Servo akan bergerak sesuai dengan input potensiometer.

Praktek Palang Kereta Api

Rangkaian Program

Kode Program

#define ECHO_PIN 3
#define TRIG_PIN 2
#define pinBuzzer 5

#include <Servo.h>

Servo myservo;  

int potpin = 0;  
int val;    

float readDistanceCM() {
  digitalWrite(TRIG_PIN, LOW);
  delayMicroseconds(2);
  digitalWrite(TRIG_PIN, HIGH);
  delayMicroseconds(10);
  digitalWrite(TRIG_PIN, LOW);
  int duration = pulseIn(ECHO_PIN, HIGH);
  return duration * 0.034 / 2;
}

void setup() {
  pinMode(TRIG_PIN, OUTPUT);
  pinMode(ECHO_PIN, INPUT);
  Serial.begin(115200);
  pinMode(pinBuzzer, OUTPUT);
  myservo.attach(9);  
}

void loop() {
  float distance = readDistanceCM();
  Serial.print("Measured distance: ");
  Serial.println(readDistanceCM());

  if(distance <= 200){    
    myservo.write(90);                  
    delay(15);
   tone(pinBuzzer, 1000);
    delay(200);     
    tone(pinBuzzer, 500);
    delay(200);
  }
  else{
    myservo.write(0);
    noTone(pinBuzzer); 
  }                           
}

Jalankan Program

Program tersebut digunakan untuk mengatur sudut servo apabila input sensor ultrasonik menunjukkan kurang dari 100 m maka servo akan bergerak.
Saat servo bergerak, diikuti dengan suara buzzer.

  • Klik Sensor Ultrasonic untuk melakukan simulasi adanya objek yang mendekat.
  • Jika jarak kurang dari 100 maka servo (palang) akan tertutup dan menyalakan buzzer (sirine).
  • Servo akan tertutup selama jarak masih kurang dari 100.

Ref : [1][2][3]