Anda di halaman 1dari 6

NAMA : MUHAMMAD IQBAL ZHALIFUNNAS

NIM : 220441040
KELAS : 1AED

TUGAS 1

1. Rangkaian Pengontrol Arah Putar Motor DC dengan IC L293D dan Pengontrol Kecepatan
Putar Motor dengan PWM

Ketika simulasi dijalankan, osiloskop akan menampilkan sinyal PWM yang dialirkan sebagai
sumber gerak motor DC. Arah putar kedua motor dapat diatur masing-masing berdasarkan
penekanan push button input. Kecepatan motor diatur dengan PWM dari Arduino dan
pengaturannya dapat dipilih untuk membangkitkan PWM berdasarkan nilai tetap atau nilai
acak. Pembangkitan nilai PWM secara acak menggunakan potensiometer input yang nilai
tegangan yang dihasilkannya akan dikonversikan linear dengan nilai PWM. Adapun nilai
PWM yang tetap diatur menggunakan push button dengan 3 pilihan nilai PWM yaitu 10%,
50%, dan 100%. Semakin tinggi nilai PWM, maka semakin cepat motor berputar. Berikut
merupakan listing program yang ditulis pada Arduino IDE.
const int source_pwm = 2;
const int pwm_10 = 3;
const int pwm_50 = 4;
const int pwm_100 = 5;
const int dir_mot1 = 6;
const int dir_mot2 = 7;
const int m2_out1 = 8;
const int m2_out2 = 9;
const int signal_pwm = 10;
const int m1_out1 = 11;
const int m1_out2 = 12;
const int potensio = A0;

int potValue = 0;
int motorValue = 0;

void setup() {
pinMode(source_pwm, INPUT);
pinMode(pwm_10, INPUT);
pinMode(pwm_50, INPUT);
pinMode(pwm_100, INPUT);
pinMode(dir_mot1, INPUT);
pinMode(dir_mot2, INPUT);
pinMode(m1_out1, OUTPUT);
pinMode(m1_out2, OUTPUT);
pinMode(signal_pwm, OUTPUT);
pinMode(m2_out1, OUTPUT);
pinMode(m2_out2, OUTPUT);

digitalWrite(source_pwm, HIGH);
digitalWrite(dir_mot1, HIGH);
digitalWrite(dir_mot2, HIGH);
}
digitalWrite(source_pwm, HIGH);
digitalWrite(dir_mot1, HIGH);
digitalWrite(dir_mot2, HIGH);
}

void loop() {
potValue = analogRead(potensio);
motorValue = map(potValue, 0, 1024, 0, 255);

if(digitalRead(source_pwm) == LOW){
analogWrite(signal_pwm, motorValue);
}
else{
if(digitalRead(pwm_10) == LOW){
analogWrite(signal_pwm, 26);
}
if(digitalRead(pwm_50) == LOW){
analogWrite(signal_pwm, 128);
}
if(digitalRead(pwm_100) == LOW){
analogWrite(signal_pwm, 255);
}
}

if(digitalRead(dir_mot1) == LOW){
digitalWrite(m1_out1, HIGH);
digitalWrite(m1_out2, LOW);
}
else{
digitalWrite(m1_out1, LOW);
digitalWrite(m1_out2, HIGH);
}

if(digitalRead(dir_mot2) == LOW){
digitalWrite(m2_out1, HIGH);
digitalWrite(m2_out2, LOW);
}
else{
digitalWrite(m2_out1, LOW);
digitalWrite(m2_out2, HIGH);
}
}

2. Rangkaian Pengontrol Arah Putar Motor DC dengan Relay


Scanned by TapScanner
Scanned by TapScanner

Anda mungkin juga menyukai