List Program Kontrol Motor DC

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 3

/*.......................................................

* Program ini mengatur arah putaran dan kecepatan motor DC


* menggunakan input Push Button, output LCD dan Motor DC
* Pb1 mengatur arah putaran, Pb2 mempercepat putaran,
* Pb3 memperlambat putaran
* Eko Setyo Wibowo, S.pd - UKK TEI SMKN 4 Pontianak 2022
.........................................................*/

#include <LiquidCrystal.h>

#define akselerasi 9
#define perlambatan 8
#define moka 10
#define moki 11
#define sw_arah_putar 12

//inisialisasi PIN LCD 16*02


LiquidCrystal lcd(7, 6, 5, 4, 3, 2);

int val_pwm = 0;

int stat_putar = 0;
int hitung_tombol = 0;
int stat_terakhir_tombol = 0;

void setup() {
// put your setup code here, to run once:
pinMode(moka, OUTPUT);
pinMode(moki, OUTPUT);

pinMode(sw_arah_putar, INPUT);
pinMode (akselerasi, INPUT);
pinMode (perlambatan, INPUT);

lcd.begin(16, 2);

Serial.begin(9600); //mulai monitoring serial port


}

void loop() {
lcd.clear();
if (digitalRead(akselerasi) == HIGH){ //baca tombol akselerasi
val_pwm = val_pwm + 1;
}

if (digitalRead(perlambatan) == HIGH){ //baca tombol perlambatan


val_pwm = val_pwm - 1;
}

if (val_pwm >= 255){ //membatasi nilai maksimal pwm 255


val_pwm = 255;
}

if (val_pwm <=0){ //membatasi nilai minimum pwm 0


val_pwm = 0;
}

//debouncing tombol selektor putaran kiri kanan


stat_putar = digitalRead(sw_arah_putar);
if (stat_putar != stat_terakhir_tombol){
if (stat_putar == HIGH){
hitung_tombol++;
}
delay(50);
}
stat_terakhir_tombol = stat_putar;

if (hitung_tombol % 2 == 0){ //mengatur arah putaran dan ke LCD


analogWrite(moki, val_pwm);
analogWrite(moka, 0);
lcd.setCursor(0, 0);
lcd.print("<<<Putar Kiri<<<");
lcd.setCursor(0, 1);
lcd.print("Nilai PWM : ");
lcd.print(val_pwm);
} else {
analogWrite(moki, 0);
analogWrite(moka, val_pwm);
lcd.setCursor(0, 0);
lcd.print(">>Putar Kanan>>>");
lcd.setCursor(0, 1);
lcd.print("Nilai PWM : ");
lcd.print(val_pwm);
}

Serial.println(val_pwm);
Serial.println(stat_putar);
delay(10);
}

You might also like