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.
Pendahuluan Dalam dunia pengembangan perangkat lunak yang terus berkembang, Kubernetes telah muncul sebagai alat kunci dalam orkestrasi…
Mengelola sebuah sekolah atau lembaga pendidikan adalah tugas yang kompleks dan penuh tantangan. Dengan berbagai…
Selamat datang di artikel kami tentang cara menginstal OpenVPN server di Ubuntu 20.04 di HuaweiCloud!…
Dalam dunia pengembangan aplikasi, salah satu hal yang menjadi penting adalah mengelola dan memonitor kontainer…
Tutorial led blinking. LED (Light Emitting Diode) merupakan salah satu komponen elektronik yang paling umum…
Tutorial LCD Display, ini merupakan salah satu komponen yang sering digunakan dalam project elektronika sebagai…