Laporan SR Motor Driver Lengkap PDF

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

SMKN 3 BATAM

KU
AL
ITA
S&PROFESIONAL

SISTEM ROBOTIK

MOTOR DRIVER
L9283D

20

Pengajar: Suparisman Bachtiar, S.Pd.


SISTEM ROBOTIKA

TRAINER MIKROKONTROLLER BERBASIS ARDUINO NANO

GURU PENGAJAR:
SUPARISMAN BAKHTIAR, S.Pd.
Motor Driver L9283D

Motor driver L9283D merupakan suatu modul motor driver yang digunakan untuk mengontrol
kecepatan dan arah putaran motor DC. IC ini sangat populer dan sering dihubungkan ke
mikrokontroler arduino.

Seperti namanya motor driver ini menggunakan IC L293D, dengan konstruksi rangkaian H -
Bridge. Maka dari itu rangkaian ini dapat mengendalikan beban induktif pada kumparan. Seperti
kita tahu bahwa motor listrik terdiri dari lilitan kumparan sehingga memiliki beban induktif yang
sangat besar. Kemudian dalam rangkaian IC tersebut terdapat transistor transistor logic (TTL)
dengan gerbang NAND yang berfungsi untuk merubah arah putaran motor.

Konfigurasi Pin IC L2983D

1. Pin Output (Output 1 dan Output 2)


Merupakan suatu pin yang digunakan untuk menghubungkan ke kutub motor.
Karena pin ini dihubungkan ke motor maka tidak ada kutub negatif dan positif sehingga
pemasangan kabel ke kutub motor bisa dibalik - balik.
2. Pin Input(Input 1, Input 2, Input 3, Input 4)
Suatu pin yang dihubungkan ke pin Digital Arduino. Pin ini digunakan untuk
mengatur arah putaran motor yang dihubungkan ke driver l293D. Contohnya apabila Input
1 HIGH dan Input 2 LOW, Maka motor berputar searah jarum jam. Namun apabila Input
1 LOW dan Input 2 HIGH, Maka motor berputar berlawanan arah jarum jam.Nilai
logika LOW dan HIGH pada pin Input 1, Input 2 , Input 3, dan Input 4 ini akan diatur
pada coding Arduino untuk mengatur kecepatan dan arah putaran motor DC.
3. Pin Enebel (Enebel 1,2 dan Enebel 3,4)
Pin enable 1 dan 2 digunakan untuk meningkatkan tegangan dan kecepatan motor
sebelah kiri (Output 1 dan 2), sedangkan pin enable 3 dan 4 digunakan untuk
meningkatkan tegangan dan kecepatan motor sebelah kanan (Output 3 dan 4).

Alat dan Bahan:

IC L9283D dapat dikontrol dengan menggunakan mikrokontroler berjenis Arduino nano.


Arduino dapat mengontrol IC L9283D untuk mengatur kecepatan dan arah putaran motor DC.
Untuk melakukan praktek terhadap IC L9283D dalam Trainer mikrokontroler kit, berikut beberapa
alat dan bahan yang dibutuhkan:

1. Power supply 12 volt


2. Kabel USB tipe-B
3. Motor DC
4. Software ARDUINO IDE versi terbaru
Skematik Rangkaian

Berikut adalah schematic rangkaian yang terdapat di dalam Trainer Mikrokontroler :


Pin D5 Arduino Pin 2 IC L293D Pin 2 IC L293D = Input
Pin D6 Arduino  Pin 7 IC L293D 1 Pin 7 IC L293D =
Input 2

Berikut adalah beberapa contoh progam untuk menjalankan motor driver L9283D pada
trainer kit guna mengontrol beberapa gerakan motor driver.

1) Progam untuk membuat gerakan putaran motorDC bergerak searah jarum jam CCW
(counter, clock, wise).
1. void setup() { 2.
pinMode(6, OUTPUT); 3.
pinMode(5, OUTPUT);
4. /*
 /*@brif
 Untuk mengakses Motor DC menggunakan Arduino Nano, kita harus
menghubungkannya
 ke pin PWM yang ada pada Arduinonya
 Contoh ;pin D6, D5, dll.
 pinMode(6, OUTPUT); mendeklarasikan pin 6 sebagai perangkat
 OUTPUT
pinMode(5, OUTPUT); mendeklarasikan pin 5 sebagai perangkat
 OUTPUT
 Pin 6(PWM) = Terhubung ke pin IN1 pada IC L293D
Pin 5(PWM) = Terhubung ke pin IN1 pada IC L293D
5. */

6. }

7. void loop() {

8. digitalWrite(6, HIGH); //Jadikan pin 6 berlogika 1


9. digitalWrite(5, LOW); //Jadikan pin 5 berlogika 0

10. /*
11. * IN1 IN2 Motor
12. * 1 0 Bergerak (CCW)
13. * 0 1 Bergerak (CW)
 CCW = bergerak searah jarum jam
 CW = bererak berlawanan jarum jam
 Jika intruksi di atas tidak sesaui, maka kita cukup membalik
Logikanya saja

contoh--> digitalWrite(6, LOW);

digitalWrite(5, HIGH);
14. */
15. }

2) Progam untuk membuat gerakan putaran motorDC bergerak berlawanan arah jarum jam
CW ( clock, wise).
1. void setup() { 2.
pinMode(6, OUTPUT); 3.
pinMode(5, OUTPUT);
4. /*
/*@brif
Untuk mengakses Motor DC menggunakan Arduino Nano, kita harus
menghubungkannya
ke pin PWM yang ada pada Arduinonya
Contoh ;pin D6, D5, dll.
pinMode(6, OUTPUT); mendeklarasikan pin 6 sebagai perangkat OUTPUT
pinMode(5, OUTPUT); mendeklarasikan pin 5 sebagai perangkat OUTPUT
Pin 6(PWM) = Terhubung ke pin IN1 pada IC L293D
Pin 5(PWM) = Terhubung ke pin IN1 pada IC L293D
5. */
6. }

7. void loop() {

8. digitalWrite(6, LOW); //Jadikan pin 6 berlogika 1


9. digitalWrite(5, HIGH); //Jadikan pin 5 berlogika 0

10. /*
11. * IN1 IN2 Motor
12. * 1 0 Bergerak (CCW)
13. * 0 1 Bergerak (CW)
CCW = bergerak searah jarum jam
CW = bererak berlawanan jarum jam
Jika intruksi di atas tidak sesaui, maka kita cukup membalik
Logikanya saja
contoh--> digitalWrite(6, LOW);
digitalWrite(5, HIGH);
14. */
15. }

3) Progam dengan menggunakan satu buah inputan berupa pushbutton (SW3) untuk
membuat arah putaran motorDC bergerak searah jarum jam CCW (counter, clock, wise).
1. void setup() { 2.
pinMode(6, OUTPUT); 3.
pinMode(5, OUTPUT); 4.
pinMode(10, INPUT);
5. /*
/*@brif
Untuk mengakses Motor DC menggunakan Arduino Nano, kita harus
menghubungkannya
ke pin PWM yang ada pada Arduinonya
Contoh ;pin D6, D5, dll.
pinMode(6, OUTPUT); mendeklarasikan pin 6 sebagai perangkat OUTPUT
pinMode(5, OUTPUT); mendeklarasikan pin 5 sebagai perangkat OUTPUT
pinMode(10, INPUT); mendeklarasikan pin 10 sebagai perangkat INPUT
Pin 6(PWM) = Terhubung ke pin IN1 pada IC L293D
Pin 5(PWM) = Terhubung ke pin IN1 pada IC L293D
pin 10 = Pin yang terhubung ke SW3 (Tombol 3)
6. */

7. }

8. void loop() {

9. if (digitalRead()10 == 1) {
10. digitalWrite(6, HIGH); //Jadikan pin 6 berlogika 1
11. digitalWrite(5, LOW); //Jadikan pin 5 berlogika 0
12. }
13. else {
14. digitalWrite(6, LOW); //Jadikan pin 6 berlogika 0
15. digitalWrite(5, LOW); //Jadikan pin 5 berlogika 0 }
16.
/*
17.
IN1 IN2 Motor
1 0 Bergerak (CCW)
0 1 Bergerak (CW)
0 0 Berhenti
CCW = bergerak searah jarum jam
CW = bererak berlawanan jarum jam
Jika intruksi di atas tidak sesaui, maka kita cukup membalik Logikanya
saja
contoh--> digitalWrite(6, LOW);
digitalWrite(5, HIGH);
18. */
19. }

4) Progam dengan menggunakan satu buah inputan berupa pushbutton (SW2) untuk
membuat arah putaran motorDC bergerak berlawanan jarum jam CCW (counter, clock,
wise).
1. void setup() { 2.
pinMode(6, OUTPUT); 3.
pinMode(5, OUTPUT); 4.
pinMode(10, INPUT); 5.
pinMode(11, INPUT);
6. /*
/*@brif
Untuk mengakses Motor DC menggunakan Arduino Nano, kita harus
menghubungkannya
ke pin PWM yang ada pada Arduinonya
Contoh ;pin D6, D5, dll.
pinMode(6, OUTPUT); mendeklarasikan pin 6 sebagai perangkat OUTPUT
pinMode(5, OUTPUT); mendeklarasikan pin 5 sebagai perangkat OUTPUT
pinMode(10, INPUT); mendeklarasikan pin 10 sebagai perangkat INPUT
pinMode(11, INPUT); mendeklarasikan pin 11 sebagai perangkat INPUT
Pin 6(PWM) = Terhubung ke pin IN1 pada IC L293D
Pin 5(PWM) = Terhubung ke pin IN1 pada IC L293D
pin 10 = Pin yang terhubung ke SW3 (Tombol 3)
pin 11 = Pin yang terhubung ke SW2 (Tombol 2)
7. */

8. }

9. void loop() {

10. if (digitalRead()11 == 1) {
11. digitalWrite(6, LOW); //Jadikan pin 6 berlogika 1
12. digitalWrite(5, HIGH); //Jadikan pin 5 berlogika 0
13. }
14. else {
15. digitalWrite(6, LOW); //Jadikan pin 6 berlogika 0
16. digitalWrite(5, LOW); //Jadikan pin 5 berlogika 0
17. }

18. /*
IN1 IN2 Motor
1 0 Bergerak (CCW)
0 1 Bergerak (CW)
0 0 Berhenti
CCW = bergerak searah jarum jam
CW = bererak berlawanan jarum jam
Jika intruksi di atas tidak sesaui, maka kita cukup membalik Logikanya
saja
contoh--> digitalWrite(6, LOW);
digitalWrite(5, HIGH);
19. */
20. }

5) Progam dengan menggunakan dua buah inputan berupa pushbutton (SW3) dan
potensiometer. Dimana ketika SW3 ditekan maka motor akan bergerak searah jarum jam
dan potensio berfungsi untuk mengatur kecepatan putaran motorDC (kecepatan 0-255).
1. /* 2. uint16_t Adc=0; adalah tipe data dengan 16 bit, yang menyimpan data 3.
variabel Adc 4. */ 5. uint16_t Adc = 0; 6. uint8_t Speed; 7. void setup() { 8.
pinMode(6, OUTPUT); 9. pinMode(5, OUTPUT);

10. pinMode(10, INPUT);


11. pinMode(11, INPUT);
12. pinMode(A0, INPUT);
13. /*
/*@brif
Untuk mengakses Motor DC menggunakan Arduino Nano, kita harus
menghubungkannya
ke pin PWM yang ada pada Arduinonya
Contoh ;pin D6, D5, dll.
pinMode(6, OUTPUT); mendeklarasikan pin 6 sebagai perangkat OUTPUT
pinMode(5, OUTPUT); mendeklarasikan pin 5 sebagai perangkat OUTPUT
pinMode(10, INPUT); mendeklarasikan pin 10 sebagai perangkat INPUT
pinMode(11, INPUT); mendeklarasikan pin 11 sebagai perangkat INPUT
pinMode(A0, INPUT); mendeklarasikan pin A0 sebagai perangkat INPUT
Pin 6(PWM) = Terhubung ke pin IN1 pada IC L293D
Pin 5(PWM) = Terhubung ke pin IN1 pada IC L293D
pin 10 = Pin yang terhubung ke SW3 (Tombol 3)
pin 11 = Pin yang terhubung ke SW2 (Tombol 2)
pin A0 = Pin yang terhubung ke Potensiometer
14. */

15. }

16. void loop() {


17. Adc = analogRead(A0); //--> Adc = baca pin A0
18. Speed = map(Adc, 0, 1023, 0, 255);
19. if (digitalRead(10) == 1) {
20. digitalWrite(5, LOW);
21. analogWrite(6, Speed);
22. }
23. /*

IN1 IN2 Motor


1 0 Bergerak (CCW)
0 1 Bergerak (CW)
0 0 Berhenti
CCW = bergerak searah jarum jam
CW = bererak berlawanan jarum jam
Jika intruksi di atas tidak sesaui, maka kita cukup membalik Logikanya
saja
contoh--> digitalWrite(6, LOW);
digitalWrite(5, HIGH);

Untuk dapat menagtur kecepatan putaran motor DC, kita dapat menggunakan
intruksi "analogWrite(pin, speed)"
contoh--> analogWrite(6, 200);--> Artinya isikan pin 6, dengan nilai
200
Untuk kecepetan yang dapat di atur adalah (0 - 255)
Nilai (0- 255) merupakan nilai PWM, yang dapat dikeluarkan
oleh Arduino Nanonya
24. */
25. }

Soal-soal
1) Buatlah progam dengan menggunakan dua buah inputan berupa pushbutton (SW2) dan
potensiometer. Dimana ketika SW2 ditekan maka motor akan bergerak berlawanan arah
jarum jam dan potensio berfungsi untuk mengatur kecepatan putaran motorDC
(kecepatan 0-255).

1. uint16_t Adc=0; adalah tipe data dengan 16 bit, yang menyimpan data
2. variabel Adc */ uint16_t Adc = 0;
3.
4. void setup() {
pinMode(6, OUTPUT);
5. pinMode(5, OUTPUT);
6. pinMode(10, INPUT);
7. pinMode(11, INPUT);
8. pinMode(A0, INPUT);
9. /*
10.
11.
/*@brif Untuk mengakses Motor DC menggunakan Arduino Nano, kita
harus menghubungkannya ke pin PWM yang ada pada Arduinonya Contoh
;pin D6, D5, dll. pinMode(6, OUTPUT); mendeklarasikan pin 6 sebagai
perangkat OUTPUT pinMode(5, OUTPUT); mendeklarasikan pin 5 sebagai
perangkat OUTPUT pinMode(10, INPUT); mendeklarasikan pin 10 sebagai
perangkat INPUT pinMode(11, INPUT); mendeklarasikan pin 11 sebagai
perangkat INPUT pinMode(A0, INPUT); mendeklarasikan pin 11 sebagai
perangkat INPUT Pin 6(PWM) = Terhubung ke pin IN1 pada IC L293D Pin
5(PWM) = Terhubung ke pin IN1 pada IC L293D

pin 10 = Pin yang terhubung ke SW3 (Tombol 3) =


pin 11 Pin yang terhubung ke SW2 (Tombol 1) =
pin A0 Pin yang terhubung ke Potensiometer
12. */
13. }

14. void loop() {

15. uint8_t Speed;

16. Adc = analogRead(A0);//--> Adc = baca pin A0


17. Speed = map(Adc, 0, 1023, 0, 255);
18. if (digitalRead(11) == 1) {
19. digitalWrite(5, Speed);
20. analogWrite(6, LOW);
21. }
22. /*

IN1 IN2 Motor


1 0 Bergerak (CCW)
0 1 Bergerak (CW)
0 0 Berhenti
CCW = bergerak searah jarum jam
CW = bererak berlawanan jarum jam
Jika intruksi di atas tidak sesaui, maka kita cukup membalik
Logikanya saja
contoh--> digitalWrite(6, LOW);
digitalWrite(5, HIGH);

Untuk dapat menagtur kecepatan putaran motor DC, kita dapat


menggunakan
intruksi "analogWrite(pin, speed)"
contoh--> analogWrite(6, 200);--> Artinya isikan pin 6, dengan nilai
200

Untuk kecepetan yang dapat di atur adalah (0 - 255)


Nilai (0- 255) merupakan nilai PWM, yang dapat dikeluarkan
oleh Arduino Nanonya
23. */
24. }
2) Buatlah progam dengan menggunakan tiga inputan berupa pushbutton SW1, SW3, dan
SW4. Dimana SW3 berfungsi untuk mengatur arah putaran motorDC searah jarum jam,
SW1 berfungsi untuk menambah kecepatan motorDC, dan SW4 berfungsi untuk
mengurangi kecepatan motorDC (kecepatan 0-255).

1. /* uint16_t Adc=0; adalah tipe data dengan 16 bit, yang menyimpan data
2. variabel Adc */ uint16_t Adc = 0; int Speed;
3.
4. void setup() {
5. pinMode(6, OUTPUT);
6. pinMode(5, OUTPUT);
pinMode(10, INPUT);
7. pinMode(11, INPUT);
8. pinMode(12, INPUT);
9. pinMode(A3, INPUT);
10. pinMode(A0, INPUT);
11. Serial.begin(9600);
12.
13. /*
14. /*@brif
15. Untuk mengakses Motor DC menggunakan Arduino Nano, kita harus
menghubungkannya
16. ke pin PWM yang ada pada Arduinonya
Contoh ;pin D6, D5, dll.
pinMode(6, OUTPUT); mendeklarasikan pin 6 sebagai perangkat OUTPUT
pinMode(5, OUTPUT); mendeklarasikan pin 5 sebagai perangkat OUTPUT
pinMode(10, INPUT); mendeklarasikan pin 10 sebagai perangkat INPUT
pinMode(11, INPUT); mendeklarasikan pin 11 sebagai perangkat INPUT
pinMode(A0, INPUT); mendeklarasikan pin A0 sebagai perangkat INPUT
pinMode(A3, INPUT); mendeklarasikan pin A3 sebagai perangkat INPUT
pinMode(12, INPUT); mendeklarasikan pin 12 sebagai perangkat INPUT
Pin 6(PWM) = Terhubung ke pin IN1 pada IC L293D
Pin 5(PWM) = Terhubung ke pin IN1 pada IC L293D

pin 10 = Pin yang terhubung ke SW3 (Tombol 3)


pin 11 = Pin yang terhubung ke SW2 (Tombol 2)
pin A3 = Pin yang terhubung ke SW4 (Tombol 4)
pin 12 = Pin yang terhubung ke SW1 (Tombol 1)
pin A0 = Pin yang terhubung ke Potensiometer
17. */

18. }

19. void loop() {

20. if (digitalRead(10) == 1) { // jika Tombol SW3 ditekan


21. //maka putaran motor = CCW
22. digitalWrite(5, LOW);
23. }
24. if (digitalRead(12) == 1) { // Jika Tombol SW1 ditekan //maka tambahkan Speed
25. motor Speed += 5; delay(250);
26.
27. if (Speed >= 255) Speed = 255; // Memberi batasan pada nilai Maxsimum
Speed
28. }
29. if (digitalRead(A3) == 1) { // jika tombol SW 4 ditekan
30. //maka kurangi Speed motor
Speed -= 5;
31. delay(250);
32.
33. if (Speed <= 0) Speed = 0; // Memberi batasan pada nilai Minimum Speed
34. }
35. analogWrite(6, Speed);
36. Serial.println(Speed);
37. /*
38. IN1
1
0
0
IN2 Motor
0 Bergerak (CCW)
1 Bergerak (CW)
0 Berhenti
CCW = bergerak searah jarum jam
CW = bererak berlawanan jarum jam
Jika intruksi di atas tidak sesaui, maka kita cukup membalik Logikanya
saja
contoh--> digitalWrite(6, LOW);
digitalWrite(5, HIGH);

Untuk dapat menagtur kecepatan putaran motor DC, kita dapat menggunakan
intruksi "analogWrite(pin, speed)"
contoh--> analogWrite(6, 200);--> Artinya isikan pin 6, dengan nilai
200
Untuk kecepetan yang dapat di atur adalah (0 - 255)
Nilai (0- 255) merupakan nilai PWM, yang dapat dikeluarkan
oleh Arduino Nanonya
39. */
40. }

3) Buatlah progam dengan menggunakan tiga inputan berupa pushbutton SW1, SW3, dan
SW4. Dimana SW2 berfungsi untuk mengatur arah putaran motorDC berlawanan arah
jarum jam, SW1 berfungsi untuk menambah kecepatan motorDC, dan SW4 berfungsi
untuk mengurangi kecepatan motorDC (kecepatan 0-255).

1. /*
2. uint16_t Adc=0; adalah tipe data dengan 16 bit, yang menyimpan data
3. variabel Adc
4. */
5. uint16_t Adc = 0; int Speed;
6.
void setup() {
7. pinMode(6, OUTPUT);
8. pinMode(5, OUTPUT);
9. pinMode(10, INPUT);
10. pinMode(11, INPUT);
11. pinMode(12, INPUT);
12. pinMode(A3, INPUT);
13. pinMode(A0, INPUT);
14. Serial.begin(9600);
15.
/*
16. /*@brif
Untuk mengakses Motor DC menggunakan Arduino Nano, kita harus
menghubungkannya
ke pin PWM yang ada pada Arduinonya
Contoh ;pin D6, D5, dll.
pinMode(6, OUTPUT); mendeklarasikan pin 6 sebagai perangkat OUTPUT
pinMode(5, OUTPUT); mendeklarasikan pin 5 sebagai perangkat OUTPUT
pinMode(10, INPUT); mendeklarasikan pin 10 sebagai perangkat INPUT
pinMode(11, INPUT); mendeklarasikan pin 11 sebagai perangkat INPUT
pinMode(A0, INPUT); mendeklarasikan pin A0 sebagai perangkat INPUT
pinMode(A3, INPUT); mendeklarasikan pin A3 sebagai perangkat INPUT
pinMode(12, INPUT); mendeklarasikan pin 12 sebagai perangkat INPUT
Pin 6(PWM) = Terhubung ke pin IN1 pada IC L293D
Pin 5(PWM) = Terhubung ke pin IN1 pada IC L293D

pin 10 = Pin yang terhubung ke SW3 (Tombol 3)


pin 11 = Pin yang terhubung ke SW2 (Tombol 2)
pin A3 = Pin yang terhubung ke SW4 (Tombol 4)
pin 12 = Pin yang terhubung ke SW1 (Tombol 1)
pin A0 = Pin yang terhubung ke Potensiometer
17. */

18. }

19. void loop() {

20. if (digitalRead(10) == 1) { // jika Tombol SW3 ditekan


21. //maka putaran motor = CCW
22. digitalWrite(6, LOW);
23. }
24. if (digitalRead(12) == 1) { // Jika Tombol SW1 ditekan
25. //maka tambahkan Speed motor
26. Speed += 5;
27. delay(250);
28. if (Speed >= 255) Speed = 255; // Memberi batasan pada nilai Maxsimum
Speed
29. }
30. if (digitalRead(A3) == 1) { // jika tombol SW 4 ditekan
31. //maka kurangi Speed motor
32. Speed -= 5;
33. delay(250); if (Speed <= 0) Speed = 0; // Memberi batasan pada nilai Minimum

34. Speed
35. }
36. analogWrite(5, Speed);
37. Serial.println(Speed);
38. /*
IN1
1 IN2 Motor
0 0 Bergerak (CCW)
0 1 Bergerak (CW)
0 Berhenti
CCW = bergerak searah jarum jam
CW = bererak berlawanan jarum jam
Jika intruksi di atas tidak sesaui, maka kita cukup membalik Logikanya
saja
contoh--> digitalWrite(6, LOW);
digitalWrite(5, HIGH);

Untuk dapat menagtur kecepatan putaran motor DC, kita dapat menggunakan
intruksi "analogWrite(pin, speed)"
contoh--> analogWrite(6, 200);--> Artinya isikan pin 6, dengan nilai
200
Untuk kecepetan yang dapat di atur adalah (0 - 255)
Nilai (0- 255) merupakan nilai PWM, yang dapat dikeluarkan
oleh Arduino Nanonya
39. */
40. }

4) Buatlah progam dengan dua buah inputan SW2 dan SW3. Dimana ketika SW2 dan SW3
ditekan motorDC akan bergerak maju, namun ketika salah satu SW dilepas maka
motorDC akan bergerak mundur, dan apabila keduanya dilepas motorDC akan mati.

1. /* uint16_t Adc=0; adalah tipe data dengan 16 bit, yang menyimpan data
2. variabel Adc */ uint16_t Adc = 0; int Speed;
3.
4. void setup() {
5. pinMode(6, OUTPUT);
6. pinMode(5, OUTPUT);
pinMode(10, INPUT);
7. pinMode(11, INPUT);
8. pinMode(12, INPUT);
9. pinMode(A3, INPUT);
10. pinMode(A0, INPUT);
11. Serial.begin(9600);
12.
13.
14.
15.
16. /* /*@brif Untuk mengakses Motor DC menggunakan Arduino Nano, kita
harus menghubungkannya ke pin PWM yang ada pada Arduinonya Contoh
;pin D6, D5, dll. pinMode(6, OUTPUT); mendeklarasikan pin 6 sebagai
perangkat OUTPUT pinMode(5, OUTPUT); mendeklarasikan pin 5 sebagai
perangkat OUTPUT pinMode(10, INPUT); mendeklarasikan pin 10 sebagai
perangkat INPUT pinMode(11, INPUT); mendeklarasikan pin 11 sebagai
perangkat INPUT pinMode(A0, INPUT); mendeklarasikan pin A0 sebagai
perangkat INPUT pinMode(A3, INPUT); mendeklarasikan pin A3 sebagai
perangkat INPUT pinMode(12, INPUT); mendeklarasikan pin 12 sebagai
perangkat INPUT Pin 6(PWM) = Terhubung ke pin IN1 pada IC L293D Pin
5(PWM) = Terhubung ke pin IN1 pada IC L293D

pin 10 pin 11 =
pin
Pin
A3yang
pin 12
terhubung
pin A0 */ ke SW3 (Tombol 3) =
Pin yang terhubung ke SW2 (Tombol 2) =
} Pin yang terhubung ke SW4 (Tombol 4) =
Pin yang terhubung ke SW1 (Tombol 1) =
void loop() { Pin yang terhubung ke Potensiometer
17.
if (digitalRead(11) == 1 && digitalRead(10) == 1) { // 1 && 1 = Maju
18. digitalWrite(5, LOW);
digitalWrite(6, HIGH);
19. }
else if (digitalRead(11) == 1 || digitalRead(10) == 0) { // 1 || 0 =
20. mundur
21. digitalWrite(5, LOW);
22. digitalWrite(6, HIGH);
23. }
24. else if (digitalRead(11) == 0 || digitalRead(10) == 1) { //0 || 1 =
mundur
25. digitalWrite(5, LOW);
26. digitalWrite(6, HIGH);
27. }
28.
29. else { // 0 && 0 = mati
30. digitalWrite(5, LOW);
31. digitalWrite(6, LOW);
32. }
33. /*
34.
IN1
35. 1
36. 0
0

IN2 Motor
0 Bergerak (CCW)
1 Bergerak (CW)
0 Berhenti
CCW = bergerak searah jarum jam
CW = bererak berlawanan jarum jam
Jika intruksi di atas tidak sesaui, maka kita cukup membalik Logikanya
saja
contoh--> digitalWrite(6, LOW);
digitalWrite(5, HIGH);
Untuk dapat menagtur kecepatan putaran motor DC, kita dapat menggunakan
intruksi "analogWrite(pin, speed)"
contoh--> analogWrite(6, 200);--> Artinya isikan pin 6, dengan nilai
200
Untuk kecepetan yang dapat di atur adalah (0 - 255)
Nilai (0- 255) merupakan nilai PWM, yang dapat dikeluarkan
oleh Arduino Nanonya
37. */
38. }

You might also like