#Tutorial Arduino Mengubah Arah Putaran Motor DC Dengan 1 Tombol

#Tutorial Arduino Mengubah Arah Putaran Motor DC Dengan 1 Tombol

Tutorial kali ini ada kaitannya dengan tutorial sebelumnya yang berujudul, “Menyalakan Dan Mematikan LED Dengan Satu Tombol“.

Tapi kali ini akan kita terapkan untuk mengubah arah putaran motor DC.

Jadi ketika ditekan motor akan berputar searah jarum jam, ketika ditekan lagi akan berputar berlawanan jarum jam.

Yang Harus Disiapkan

  1. Arduino Uno – BELI
  2. Motor Driver H-Bridge L298N – BELI
  3. Motor DC – BELI
  4. 2 Buah Baterai 18650 di Seri – BELI
  5. Breadboard – BELI
  6. Push Button – BELI
  7. Resistor 1K Ohm – BELI
  8. Kabel Jumper – BELI

Rangkaian

Jika semua peralatan sudah siap, silakan rangkai seperti rangkaian dibawah ini:

Program Mengubah Arah Motor DC Dengan 1 Push Button

Jika sudah dirangkain dan dipastikan tidak ada yang salah dengan rangkaian-nya, silakan gunakan program dibawah ini:

const int buttonPin = 2;   // Pin tempat push button terhubung
const int motorPin1 = 6;   // Pin untuk mengatur arah motor
const int motorPin2 = 5;   // Pin untuk mengatur arah motor

int buttonState = 0;       // Variabel untuk menyimpan status push button
int lastButtonState = 0;   // Variabel untuk menyimpan status push button sebelumnya

void setup() {
  pinMode(buttonPin, INPUT);
  pinMode(motorPin1, OUTPUT);
  pinMode(motorPin2, OUTPUT);
}

void loop() {
  // Baca status push button
  buttonState = digitalRead(buttonPin);

  // Cek apakah push button ditekan
  if (buttonState != lastButtonState) {
    // Jika push button ditekan, ubah arah motor
    if (buttonState == HIGH) {
      changeDirection();
    }
    delay(50);  // Debouncing delay untuk mengatasi ketidakstabilan saat menekan tombol
  }

  // Simpan status push button untuk iterasi selanjutnya
  lastButtonState = buttonState;
}

void changeDirection() {
  // Baca status arah motor saat ini
  int motorState1 = digitalRead(motorPin1);

  // Ubah arah motor
  digitalWrite(motorPin1, !motorState1);
  digitalWrite(motorPin2, motorState1);
}

Saya lulusan Informatika dari Universitas Siber Asia. Saya adalah seorang penggiat Microcontroller, Coding, Robotics, Internet of Things, dan Artificial Intelligence.

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

You might also like