MODUL PERCOBAAN 4
KENDALI MANUAL MOTOR DC MENGGUNAKAN ARDUINO
TUJUAN
DASAR TEORI
1. Arduino UNO
Arduino sebagai sebuah platform komputasi fisik (Physical Computing)
yang open source pada board input ouput sederhana, yang dimaksud dengan
platform komputasi fisik disini adalah sebuah sistem fisik yang interaktif dengan
penggunaan software dan hardware yang dapat mendeteksi dan merespon situasi
dan kondisi. Papan arduino merupakan papan mikrokontroler yang berukuran
kecil atau dapat diartikan juga dengan suatu rangkaian berukuran kecil yang
didalamnya terdapat komputer berbentuk chip yang kecil.
Tujuan menanamkan program pada mikrokontroler adalah agar rangkaian
elektronik dapat membaca input, memproses input tersebut dan kemudian
menghasilkan output sesuai yang diinginkan. Jadi mikrokontroler bertugas
sebagai ”otak” yang mengendalikan input, proses dan output sebuah rangkaian
elektronik.
3. Motor DC
Motor DC adalah motor listrik yang memerlukan suplai tegangan arus searah pada
kumparan medan untuk diubah menjadi energi gerak mekanik. Kumparan medan
pada motor dc disebut stator (bagian yang tidak berputar) dan kumparan jangkar
disebut rotor (bagian yang berputar). Pada motor DC, kumparan medan yang
dialiri arus listrik akan menghasilkan medan magnet yang melingkupi kumparan
jangkar dengan arah tertentu. Konverter energi baik energi listrik menjadi energi
mekanik (motor) maupun sebaliknya dari energi mekanik menjadi energi listrik
(generator) berlangsung melalui medium medan magnet. Energi yang akan diubah
dari suatu sistem ke sistem yang lain, sementara akan tersimpan pad medium
medan magnet untuk kemudian dilepaskan menjadi energi system lainya. Dengan
demikian, medan magnet disini selain berfungsi sebagi tempat penyimpanan
energi juga sekaligus proses perubahan energi.
6
#include <SoftwareSerial.h>
void setup() {
Serial.begin(9600);
pinMode(switch1, INPUT);
pinMode(switch2, INPUT);
pinMode(switch3, INPUT);
pinMode(switch4, INPUT);
pinMode(Motor1, OUTPUT);
pinMode(Motor2, OUTPUT);
pinMode(Motor3, OUTPUT);
pinMode(Motor4, OUTPUT);
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
}
void loop() {
//Motor Maju
if (digitalRead(switch1) == LOW)
{
7
//Motor Belok ke Kiri
if (digitalRead(switch3) == LOW)
{
digitalWrite (Motor1, HIGH);
digitalWrite (Motor2, LOW);
digitalWrite (Motor3, LOW);
digitalWrite (Motor4, LOW);
}
//Motor Belok ke Kanan
if (digitalRead(switch4) == LOW)
{
digitalWrite (Motor1, LOW);
digitalWrite (Motor2, LOW);
digitalWrite (Motor3, HIGH);
digitalWrite (Motor4, LOW);
}
//Motor Stop
if ((digitalRead(switch1) == HIGH) && (digitalRead(switch2) == HIGH) &&
(digitalRead(switch3) == HIGH) && (digitalRead(switch4) == HIGH))
{
digitalWrite (Motor1, LOW);
digitalWrite (Motor2, LOW);
digitalWrite (Motor3, LOW);
digitalWrite (Motor4, LOW);
}
}
TUGAS
1. Buat simulasi rangkaian seperti pada gambar 4.5! (bebas pakai software apapun dan
rangkaian berbeda dengan yang dicontohkan)!
8
2. Buat flowchart dari simulasi rangkaian tersebut!
9
4. Jelaskan arti dari coding Arduino yang digunakan! (buatkan dalam tabel)
const int switch1 = 12; //pb1 Konfigurasi Switch
const int switch2 = 11; //pb2
const int switch3 = 4; //pb4
const int switch4 = 5; //pb3
const int Motor1 = 7; Konfigurasi Motor
const int Motor2 = 8;
const int Motor3 = 9;
const int Motor4 = 10;
const int pwm1 = 3;
const int pwm2 = 6;
void setup() { Perintah yang dibaca sekali
Serial.begin(9600);
pinMode(switch1, INPUT);
pinMode(switch2, INPUT);
pinMode(switch3, INPUT);
pinMode(switch4, INPUT);
pinMode(Motor1, OUTPUT);
pinMode(Motor2, OUTPUT);
pinMode(Motor3, OUTPUT);
pinMode(Motor4, OUTPUT);
pinMode(pwm2, OUTPUT);
pinMode(pwm1, OUTPUT);
void loop() { Perintah yang dibaca sekali dan dapat
//Motor Maju berulang
if (digitalRead(switch1) == LOW)
{
10
digitalWrite (Motor4, LOW);
analogWrite(pwm1, 255);
analogWrite(pwm2, 255);
}
//Motor Mundur
if (digitalRead(switch2) == LOW)
{
digitalWrite (Motor1, LOW);
digitalWrite (Motor2, HIGH);
digitalWrite (Motor3, LOW);
digitalWrite (Motor4, HIGH);
analogWrite(pwm1, 255);
analogWrite(pwm2, 255);
}
//Motor Belok ke Kiri
if (digitalRead(switch3) == LOW)
{
digitalWrite (Motor1, HIGH);
digitalWrite (Motor2, LOW);
digitalWrite (Motor3, LOW);
digitalWrite (Motor4, LOW);
analogWrite(pwm1, 255);
analogWrite(pwm2, 0);
}
//Motor Belok ke Kanan
if (digitalRead(switch4) == LOW)
{
digitalWrite (Motor1, LOW);
digitalWrite (Motor2, LOW);
digitalWrite (Motor3, HIGH);
digitalWrite (Motor4, LOW);
analogWrite(pwm1, 0);
analogWrite(pwm2, 255);
11
}
//Motor Stop
if ((digitalRead(switch1) == HIGH) &&
(digitalRead(switch2) == HIGH) &&
(digitalRead(switch3) == HIGH) &&
(digitalRead(switch4) == HIGH))
{
digitalWrite (Motor1, LOW);
digitalWrite (Motor2, LOW);
digitalWrite (Motor3, LOW);
digitalWrite (Motor4, LOW);
analogWrite(pwm1, 0);
analogWrite(pwm2, 0);
12