Laporan SR Motor Driver Lengkap PDF
Laporan SR Motor Driver Lengkap PDF
Laporan SR Motor Driver Lengkap PDF
KU
AL
ITA
S&PROFESIONAL
SISTEM ROBOTIK
MOTOR DRIVER
L9283D
20
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.
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() {
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() {
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);
15. }
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
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
18. }
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
18. }
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. }