elektronika

Cara mengontrol kecepatan motor menggunakan arduino di proteus

Daftar Isi Artikel

pada tutorial kali ini saya akan membahas bagaiamana cara mengontrol kecepatan pada motor DC dan bagaimana juga mengontrol arah motornya sekalian.

tetapi sebelum membaca tutorial ini saya sarankan untuk membaca terlebih dahulu tutorial tentang bagaimana cara menggunakan pin PWM di arduino bagi anda yang belum familiar dengan PWM.

Motor DC ini biasanya sering digunakan ketika kita membuat project tentang robotika, maka selain putaran motor arah motor juga harus dikontrol.

jadi kalau dirobotika kita akan mengontrol ketika robot mau maju atau mundur, selain itu kita juga harus memperhatikan arah putar motornya juga, apakah bergerak ke kanan atau ke kiri.

tetapi dibeberapa project lainnya ketika akan mengontrol arah dari robot untuk implementasinya biasanya menggunakan algoritma PID pada motornya.

ok langsung saja sekarang kita akan mempraktekan bagaimana cara mengontrol kecepatan motor menggunakan arduino.

Cara mengatur kecepatan motor menggunakan arduino

berikut ini adalah step by step yang harus anda lakukan :

  • pada percobaan kali ini saya akan mengontor arah motor menggunakan terminal serial
  • jadi kita nanti akan mengirim perintah di virtual terminal dimana perintah yang kita inputkan nanti akan memerintahkan motor bergerak searah jarum jam atau berlawanan jarum jam.
  • nanti kita akan menambahkan sensor LDR pada simulasi yang akan kita buat nanti.jadi ketika kita akan merubah nilai sensor LDR, maka otomatis akan mempengaruhi kecepatan motor DC, baik kecepetananya akan bertambah atau berkurang.
  • berikut ini adalah desain yang akan kita buat. jadi anda bisa mencoba membuat desain seperti dibawah ini atau memodifikasinya
    cara mengatur kecepatan motor dengan arduino
  • kalau dilihat gambar diatas desainnya hampir sama dengan artikel yang saya buat sebelumnya yaitu cara mengontrol arah putar motor menggunakan arduno.
  • Perbedaanyanya adalah hanya dijenis transistor NPN yang digunakan untuk mengatur kecapatan motor DC
  • base dari transister NPN dihubungkan dengan PWM pin yang ada di arduino.
  • jadi saya membangkitkan sebuah PWM melalui PIN di arduino kemudian pin tersebut dihubungkan ke base dari transistor NPN.
  • jadi ketika saya mau meningkatkan duty cycle dari PWM ini,maka nilai transistor akan meningkat juga yang otomatis akan meningkatkan kecepatan motor DC
  • dan untuk mengontrol pulsa PWM ini saya menggunakan sensor LDR, dengan merubah rubah nilai dari LDR ini maka akan mengakibatkan kecepatan dari Motor akan cepat atau melambat.
  • langkah selanjutnya silahkan compile source code dibawah ini dengan menggunakan sofware arduino kemudian ambil jenis file hexnya dan upload di arduino yang ada diproteus

Source code mengontrol kecepatan motor DC

int Motor1 = 2;
int Motor2 = 3;

int PWMControl= 6;

int PWM_Input = A0;

int PWM_Value = 0;
void setup() {
  pinMode(Motor1, OUTPUT);
  pinMode(Motor2, OUTPUT);
  pinMode(PWMControl, OUTPUT);
  pinMode(PWM_Input, INPUT);
  Serial.begin(9600);
}

void loop() {
  PWM_Value = analogRead(PWM_Input);
  PWM_Value = map(PWM_Value, 0, 1023, 0, 255);
  analogWrite(PWMControl, PWM_Value);
  if(Serial.available())
  {
    char data = Serial.read();
    Serial.println(data);
    if(data == 'C'){MotorClockwise();}
    if(data == 'A'){MotorAntiClockwise();}
    if(data == 'S'){MotorStop();}
    
  }
}

void MotorAntiClockwise()
{
  digitalWrite(Motor1, HIGH);
  digitalWrite(Motor2, LOW);
}

void MotorClockwise()
{
  digitalWrite(Motor1, LOW);
  digitalWrite(Motor2, HIGH);
}

void MotorStop()
{
  digitalWrite(Motor1, HIGH);
  digitalWrite(Motor2, HIGH);
}
  • output dari simulasi nanti kita akan mencoba mengirimkan perintah melalui virtual terminal dibawah output dari virtual ini bisa digunakan untuk start / stop motor DC, dan dengan merubah nilai LDR kecepatan motor bisa kita kontrol

demikian tutorial tentang bagaimana mengontrol kecepetan motor menggunakan arduino di proteus.semoga tutorial ini bermanfaat untukĀ  anda.

 

Related Articles

Leave a Reply

Your email address will not be published. Required fields are marked *