Percobaan V
Kontrol Putaran motor DC
- Rangkailah seperti rangkaian berikut
- Buka Arduino IDE dan masukan listing program
- Upload program ke arduino
- Kombinasikan dipswitch dan amati hasil
2. Hardware dan Diagram Blok
[Kembali]
1. Arduino Uno
2. LCD 2x16
3. Switch
5. Ground
Diagram Blok:
7. L293D
8. Power supply
1. Arduino Uno
2. Sensor Infrared
3. Motor DC
5. Dot Matrix
6. MAX7219
7. L293D
9. Ground
Gambar 1. Rangkaian Simulasi. Prinsip Kerja: Ketika sensor infrared aktif, Arduino Uno akan menerima input dari Dip Switch. Jika nilai input Dip Switch di switch 1, 2, dan 4 adalah pull up, maka output yang dihasilkan adalah motor DC yang berputar ke arah kanan. Sementara itu, dot matrix akan aktif dan menyalakan LED pada setiap titik yang membentuk panah mengarah ke kiri. Di sisi lain, jika nilai input Dip Switch di switch 1, 2, dan 3 adalah pull up, output yang dihasilkan adalah motor DC yang berputar ke arah kiri, sementara dot matrix menunjukkan tanda panah mengarah ke kanan. |
Flowchart:
Listing Program:
#include <LedControl.h>
// Inisialisasi modul MAX7219
LedControl lc = LedControl(9, 10, 11); // Pin DIN, CLK, LOAD (CS) dihubungkan ke Arduino
// Inisialisasi servo motor
Servo servoMotor;
// Pengaturan pin untuk dipswitch dan motor
const int switch1 = A0;
const int switch2 = A1;
const int switch3 = A2;
const int switch4 = A3;
const int infrared = 8;
const int enable = 4;
const int motor1Pin1 = 2;
const int motor1Pin2 = 3;
void setup() {
// Set up dot matrix module
lc.shutdown(0, false); // Mengaktifkan modul
lc.setIntensity(0, 8); // Mengatur kecerahan (0-15)
lc.clearDisplay(0); // Membersihkan tampilan
// Mengatur pin-pin sebagai output untuk motor
pinMode(enable, OUTPUT);
pinMode(infrared, INPUT);
pinMode(motor1Pin1, OUTPUT);
pinMode(motor1Pin2, OUTPUT);
// Mengatur pin-pin sebagai input dengan pull-up untuk dipswitch
pinMode(switch1, INPUT_PULLUP);
pinMode(switch2, INPUT_PULLUP);
pinMode(switch3, INPUT_PULLUP);
pinMode(switch4, INPUT_PULLUP);
// Attach servo motor ke pin 5
servoMotor.attach(5);
Serial.begin(9600);
}
void loop() {
// Membaca nilai dari infrared
int infrarednya = digitalRead(infrared);
// Mengendalikan arah motor berdasarkan nilai dipswitch
if (infrarednya == HIGH) {
digitalWrite(enable, HIGH);
if (digitalRead(switch1) == LOW && digitalRead(switch2) == LOW && digitalRead(switch4) == LOW) {
// Motor ke kanan
digitalWrite(motor1Pin1, HIGH);
digitalWrite(motor1Pin2, LOW);
displayArrowLeft(); // Panah ke kiri
}
else if (digitalRead(switch1) == LOW && digitalRead(switch2) == LOW && digitalRead(switch3) == LOW) {
// Motor ke kiri
digitalWrite(motor1Pin1, LOW);
digitalWrite(motor1Pin2, HIGH);
displayArrowRight(); // Panah ke kanan
}
else {
// Berhenti
digitalWrite(motor1Pin1, LOW);
digitalWrite(motor1Pin2, LOW);
displayLetterX(); // Tidak ada panah
}
}
else {
digitalWrite(enable, LOW);
}
}
// Fungsi untuk menampilkan panah pada dot matrix
void displayArrow(byte pattern) {
for (int row = 0; row < 8; row++) {
lc.setRow(0, row, pattern);
}
}
// Menampilkan panah ke kiri
void displayArrowLeft() {
byte arrowLeft[8] = {
B00011000,
B00110000,
B01100000,
B11111111,
B01100000,
B00110000,
B00011000,
B00000000
};
for (int row = 0; row < 8; row++) {
lc.setRow(0, row, arrowLeft[row]);
}
}
// Menampilkan panah ke kanan
void displayArrowRight() {
byte arrowRight[8] = {
B00011000,
B00001100,
B00000110,
B11111111,
B00000110,
B00001100,
B00011000,
B00000000
};
for (int row = 0; row < 8; row++) {
lc.setRow(0, row, arrowRight[row]);
}
}
// Menampilkan huruf "X"
void displayLetterX() {
byte letterX[8] = {
B10000001,
B01000010,
B00100100,
B00011000,
B00011000,
B00100100,
B01000010,
B10000001
};
for (int row = 0; row < 8; row++) {
lc.setRow(0, row, letterX[row]);
}
}
Semua switch pull up, switch 1, 2, 4 motor ke kanan dan panah ke kiri, switch 1, 2, 3 motor kekiri dan panah ke kanan
6. Video Simulasi
[Kembali]
᭒ HTML↠ klik disini
᭒ Rangkaian Simulasi ↠ klik disini
᭒ Rangkaian Simulasi ↠ klik disini
᭒ Gambar Simulasi ↠ klik disini
᭒ Video Simulasi ↠ klik disini
᭒ Listing Program ↠ klik disini
᭒ Video Simulasi ↠ klik disini
᭒ Listing Program ↠ klik disini