Kontrol Motor DC Dua Arah dengan Arduino: Panduan Lengkap + Kode dan Penjelasan

Kontrol Motor DC Dua Arah dengan Arduino: Panduan Lengkap + Kode dan Penjelasan

Motor DC adalah salah satu komponen penting dalam berbagai proyek robotik dan otomasi. Dengan Arduino, kita bisa mengendalikan arah putaran motor, berhenti, serta membuat pergerakan kanan dan kiri secara terprogram. Artikel ini membahas cara kerja kontrol dua arah motor DC menggunakan Arduino lengkap dengan kode, skema rangkaian, dan penjelasan mendalam.

Skema Rangkaian Motor DC 2 Arah

Berikut skema sederhana koneksi dua pin digital Arduino ke motor DC melalui rangkaian driver (misalnya L298N atau transistor H-Bridge sederhana):

Kode Program Arduino Kontrol Motor DC

#include <Arduino.h>

// Inisialisasi pin kontrol motor
const int in_motor_A = 2;
const int in_motor_B = 3;

// Fungsi menghentikan motor
void motor_berhenti() {
  digitalWrite(in_motor_A, LOW);
  digitalWrite(in_motor_B, LOW);
}

// Fungsi motor bergerak maju
void motor_maju() {
  digitalWrite(in_motor_A, HIGH);
  digitalWrite(in_motor_B, HIGH);
}

// Fungsi motor belok ke kanan
void motor_kanan() {
  digitalWrite(in_motor_A, HIGH);
  digitalWrite(in_motor_B, LOW);
}

// Fungsi motor belok ke kiri
void motor_kiri() {
  digitalWrite(in_motor_A, LOW);
  digitalWrite(in_motor_B, HIGH);
}

// Fungsi berhenti jika sudah mencapai limit kanan
int motor_kanan_status_max = 0;
void motor_kanan_max(int port_limit) {
  if (motor_kanan_status_max == 0) {
    if (digitalRead(port_limit) == 0) {
      motor_kanan_status_max = 1;
      motor_berhenti();
      motor_kanan();
      delay(1000);
      motor_berhenti();
    } else {
      motor_kiri();
    }
  }
}

// Fungsi berhenti jika sudah mencapai limit kiri
int motor_kiri_status_max = 0;
void motor_kiri_max(int port_limit) {
  if (motor_kiri_status_max == 0) {
    if (digitalRead(port_limit) == 0) {
      motor_kiri_status_max = 1;
      motor_berhenti();
      motor_kiri();
      delay(1000);
      motor_berhenti();
    } else {
      motor_kanan();
    }
  }
}

void setup() {
  Serial.begin(9600);
  pinMode(in_motor_A, OUTPUT);
  pinMode(in_motor_B, OUTPUT);
  motor_berhenti();
}

void loop() {
  motor_kanan();
  delay(1000);
  motor_berhenti();
  delay(1000);
  motor_kiri();
  delay(1000);
  motor_berhenti();
}

Penjelasan Lengkap Kode

  1. Pin Kontrol Motor
    Pin 2 dan 3 digunakan untuk mengontrol dua arah motor. Pin HIGH dan LOW digunakan untuk menentukan arah rotasi motor melalui driver.
  2. Fungsi Dasar Motor
    Tersedia empat fungsi: motor_maju, motor_kiri, motor_kanan, dan motor_berhenti. Fungsi-fungsi ini mempermudah pembacaan program dan modularisasi perintah.
  3. Limitasi Gerak Otomatis
    Fungsi motor_kanan_max() dan motor_kiri_max() dirancang untuk membaca batas (limit switch) agar motor tidak terus berputar saat mencapai ujung. Ini umum digunakan dalam sistem seperti pintu otomatis, lengan robot, atau rel servo.
  4. Loop Pergerakan
    Pada fungsi loop(), motor akan bergerak kanan, berhenti, lalu kiri, dan berhenti lagi secara berulang.

Kesimpulan
Kontrol motor DC dua arah menggunakan Arduino sangat cocok untuk proyek-proyek seperti robot, sistem pintu otomatis, hingga lengan mekanik sederhana. Dengan memisahkan fungsi kontrol dan penanganan batasan pergerakan, kode menjadi lebih rapi dan modular.

Jika kamu sedang membangun proyek yang membutuhkan gerakan linear dua arah atau putaran bolak-balik, pendekatan ini bisa menjadi fondasi yang kuat.

Diskusi lebih lanjut kontak di bawah :

Sosial media lainnya :