Visual Basic

Belajar Arduino, Simulasi Kontrol Motor DC L293D

Hello temen-temen.
Pada kesempatan kali ini mari kita belajar arduino mengenai kontrol motor DC dengan driver L293D menggunakan aplikasi proteus 8.
Kontrol Motor DC L293

motor DC banyak digunakan sebagai penggerak robot seperti robot pemdam api beroda, robot line follower, robot avoiding, robot balancing dll.

kali ini kita akan belajar mengontrol kecepatan dan arah putar motor DC menggunakan arduino dengan fitur PWM. dimana terdapat sebuah potensiometer yang berfungsi sebagai pengatur kecepatan dan dua buah tombol sebagai pengatur arah putar motor DC.

driver l293D merupakan IC yang di dalamnya mengandung op-amp atau penguat tegangan yang mampu mengangkat beban motor DC maksimal 1A.

jika kita menggunakan motor yang mengonsumsi arus lebih dari 1A dan menggunakan driver l293D dipastikan driver akan mengalami panas berlebih.
berikut adalah animasi hasil dari program yang saya buat, dan kalian dapat mendownload code dan file proteus nya dibawah

DOWNLOAD
Code Arduino

DOWNLOAD
File Proteus 8

#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27, 16, 2);

#define pwm2 9
#define dir2 8
#define pwm1 11
#define dir1 10
#define pinb1 2
#define pinb2 3

void motor_run(int a, int b) {
  if (a < 0) {
    digitalWrite(dir1, 1);
    analogWrite(pwm1, a + 255);
  } else if (a >= 0) {
    digitalWrite(dir1, 0);
    analogWrite(pwm1, a);
  }

  if (b < 0) {
    digitalWrite(dir2, 1);
    analogWrite(pwm2, b + 255);
  } else if (b >= 0) {
    digitalWrite(dir2, 0);
    analogWrite(pwm2, b);
  }
}

void setup() {
  // put your setup code here, to run once:
  lcd.begin();
  pinMode(dir1, OUTPUT);
  pinMode(dir2, OUTPUT);
  pinMode(pinb1, INPUT_PULLUP);
  pinMode(pinb2, INPUT_PULLUP);
  motor_run(0, 0);
}

void loop() {
  // put your main code here, to run repeatedly:

  if (digitalRead(pinb1) == 0) {
    lcd.clear();
    while (1) {
      int kec = map(analogRead(A0), 0, 1023, 0, 255);
      lcd.setCursor(0, 0);
      lcd.print("Arah Maju");
      lcd.setCursor(0, 1);
      lcd.print("PWM :");
      lcd.print(kec);

      motor_run(-kec, kec);
      if (digitalRead(pinb2) == 0) {
        break;
      }
    }
  } else if (digitalRead(pinb2) == 0) {
    lcd.clear();
    while (1) {
      int kec = map(analogRead(A0), 0, 1023, 0, 255);
      lcd.setCursor(0, 0);
      lcd.print("Arah Mundur");
      lcd.setCursor(0, 1);
      lcd.print("PWM :");
      lcd.print(kec);
      motor_run(kec, -kec);
      if (digitalRead(pinb1) == 0) {
        break;
      }
    }
  }

}

mungkin cukup sekian belajar kita kali ini, jangan lupa untuk meninggalkan komentar dibawah.

chaerul

Recent Posts

Panduan Lengkap: Cara Menyiapkan Klaster Kubernetes pada Ubuntu 22.04 LTS

Pendahuluan Dalam dunia pengembangan perangkat lunak yang terus berkembang, Kubernetes telah muncul sebagai alat kunci dalam orkestrasi…

6 days ago

AplikasiAkademik.com: Solusi Terbaik untuk Manajemen Sekolah yang Efisien

Mengelola sebuah sekolah atau lembaga pendidikan adalah tugas yang kompleks dan penuh tantangan. Dengan berbagai…

7 months ago

Cara Mudah Menginstal OpenVPN Server di Ubuntu 20.04 di Huaweicloud Panduan Langkah demi Langkah

Selamat datang di artikel kami tentang cara menginstal OpenVPN server di Ubuntu 20.04 di HuaweiCloud!…

12 months ago

Install Docker Portainer dan Nginx Proxy Manager Ubuntu Server

Dalam dunia pengembangan aplikasi, salah satu hal yang menjadi penting adalah mengelola dan memonitor kontainer…

1 year ago

Tutorial led blinking lengkap, Wiring & Code

Tutorial led blinking. LED (Light Emitting Diode) merupakan salah satu komponen elektronik yang paling umum…

1 year ago

Tutorial LCD Display Lengkap dengan wiring & code untuk pemula

Tutorial LCD Display, ini merupakan salah satu komponen yang sering digunakan dalam project elektronika sebagai…

1 year ago