Tugas Pendahuluan 2 : Modul 2 Percobaan 5 Kondisi 3
*Klik teks untuk menuju
1. Prosedur [Kembali]
Langkah-langkah percobaan :
1. Siapkan alat dan bahan yaitu dengan komponen utama Arduino Uno, Switch, LCD
2. Rangkai sesuai gambar percobaan
3. Rancang kerja rangkaian sesuai flowchat
4. Tekan tombol “Play” untuk menjalankan simulasi
2. Hardaware dan Diagram Blok [Kembali]
- Max 7219
- Infrared sensor
- Arduino
- 8 x 8 Dot Matrix
- Keypad
- Motor DC
3. Rangkaian Simulasi dan Prinsip Kerja [Kembali]
Prinsip Kerja
Pada Percobaan IR digunakan untuk membolehkan rangkaian Kontrol sebelah kanan untuk dapat dijalankan, jika IR mengirimkan sinyal High.
Untuk kondisi switch 1 dan 3 aktif maka motor akan berputar ke arah kiri dan menampilkan indikator arah kiri pada dot matrix
Untuk kondisi switch 2 dan 4 aktif maka motor berputar ke arah kanan dan menampilkan indikator arah kanan pada dot matrix
Diluar kondisi tersebut aka motor tidak akan berputar dan Tampil Indikator X pada dot matrix
4. Flowchart dan listing Program [Kembali]
Flowchart :
#include <LedControl.h>
// Inisialisasi modul MAX7219
LedControl lc = LedControl(9, 10, 11, 1); // Pin DIN, CLK, LOAD (CS) dihubungkan ke Arduino
byte patterns[8] = {0, 0, 0, 0, 0, 0, 0, 0}; // Pola LED untuk ditampilkan
// Pengaturan pin untuk saklar dan motor
const int switch1 = 2;
const int switch2 = 3;
const int switch3 = 4;
const int switch4 = 5;
const int enable = 6;
const int motor1Pin1 = 7;
const int motor1Pin2 = 8;
const int infrared = A0;
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(motor1Pin1, OUTPUT);
pinMode(motor1Pin2, OUTPUT);
// Mengatur pin-pin sebagai input untuk saklar dan sensor infrared
pinMode(switch1, INPUT);
pinMode(switch2, INPUT);
pinMode(switch3, INPUT);
pinMode(switch4, INPUT);
pinMode(infrared, INPUT);
Serial.begin(9600);
}
void loop() {
// Membaca status saklar
int switch1Status = digitalRead(switch1);
int switch2Status = digitalRead(switch2);
int switch3Status = digitalRead(switch3);
int switch4Status = digitalRead(switch4);
// Membaca nilai dari sensor infrared
int infraredValue = analogRead(infrared);
// Mengendalikan motor berdasarkan status saklar dan sensor infrared
if (switch1Status == HIGH && switch3Status == HIGH) {
// Motor ke kiri
digitalWrite(enable, HIGH);
digitalWrite(motor1Pin1, LOW);
digitalWrite(motor1Pin2, HIGH);
displayArrowLeft();
} else if (switch2Status == HIGH && switch4Status == HIGH) {
// Motor ke kanan
digitalWrite(enable, HIGH);
digitalWrite(motor1Pin1, HIGH);
digitalWrite(motor1Pin2, LOW);
displayArrowRight();
} else {
// Motor berhenti
digitalWrite(enable, LOW);
digitalWrite(motor1Pin1, LOW);
digitalWrite(motor1Pin2, LOW);
displayLetterX();
}
}
// Fungsi untuk menampilkan panah pada dot matrix
void displayArrow(byte pattern) {
for (int row = 0; row < 8; row++) {
lc.setRow(0, row, pattern);
}
delay(500); // Mengatur kecepatan animasi
lc.clearDisplay(0);
delay(500); // Jeda sebelum membaca input lagi
}
// 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 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 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]);
}
}
5. Kondisi [Kembali]
Semua Switch pull-down, switch 1 dan 3 motor ke kiri, switch 2 dan 4 panah ke kanan dan motor ke kanan
6. Video Simulasi [Kembali]
7. Download File [Kembali]
HTML Disini
Simulasi Disini
Gambar Hardware Disini
Video Simulasi Disini
Listing Program Disini
Tidak ada komentar:
Posting Komentar