MODUL 2
PERCOBAAN 5 KONDISI 2
1. Rangkai rangkaian di proteus sesuai dengan kondisi percobaan.
2. Tulis program untuk arduino di software Arduino IDE.
3. Compile program tadi, lalu upload ke dalam arduino.
4. Setelah program selesai di upload, jalankan simulasi rangkaian pada proteus.
2. Tulis program untuk arduino di software Arduino IDE.
3. Compile program tadi, lalu upload ke dalam arduino.
4. Setelah program selesai di upload, jalankan simulasi rangkaian pada proteus.
2. Hardware dan diagram blok
[Kembali]
a. hardware
1. SW SPDT
2. Arduino Uno
3. Driver Motor L293D
4. Motor DC
5. Max7219
6. Dot Matrix
b. Digram Blok
3. Rangkaian Simulasi dan Prinsip kerja
[Kembali]
→Gambar Rangkaian Sebelum Disimulasikan
→Gambar Rangkaian Setelah Disimulasikan
PRINSIP KERJA
Dalam rangkaian ini, menggunakan konfigurasi INPUT PULL DOWN dimana switch terhubung ke tegangan eksternal dan resistor terhubung ke ground. Sebuah resistor diletakkan di antara switch dan Arduino, membolehkan aliran arus dari tingkat potensial yang tinggi ke tingkat potensial yang rendah. Ketika switch dihidupkan, tegangan dari luar mengalir melalui switch dan tidak menuju ke ground karena adanya hambatan. Hal ini menyebabkan input Arduino ketika switch dalam posisi ON menjadi HIGH. Namun, ketika beralih ke mode mati, Arduino tidak mendapatkan suplai listrik dari luar dan sinyal input-nya berada dalam keadaan rendah. Pull Down Configuration ini bertolak belakang dengan Pull Up.
Pada proyek ini, Arduino dan modul MAX7219 digunakan untuk mengontrol motor DC dan menampilkan gambar pada dot matrix. Proses awal dimulai dengan mengatur modul MAX7219 menggunakan objek LedControl. Pin yang terhubung ke saklar dan mesin ditentukan apakah sebagai masukan atau keluaran. Dalam bagian utama perulangan, nilai dari setiap saklar didapat dengan menggunakan fungsi digitalRead(). Jika semua sakelar dalam keadaan aktif (HIGH), motor akan dimatikan dan tampilan dot matrix akan dikosongkan. Jika tidak, program akan memperoleh arah pergerakan motor berdasarkan kombinasi switch yang sedang aktif. Dalam hal mengendalikan putaran motor DC:Jika switch1 dan switch3 dalam keadaan aktif, motor akan bergerak ke arah kanan.
Apabila switch2 dan switch4 dalam keadaan hidup, maka displayArrowRight() akan dipanggil untuk menampilkan gambar panah menghadap kanan pada dot matrix, sementara motor tidak bergerak.
Array byte mengandung informasi dari panah dan akan ditampilkan menggunakan metode setRow() dari objek LedControl.
4. FlowChart
[Kembali]
#include <LedControl.h>
// Inisialisasi modul MAX7219
LedControl lc = LedControl(5, 6, 7, 1); // Pin DIN, CLK, LOAD (CS) dihubungkan ke Arduino
const int switch1Pin = A0; // Switch 1 connected to pin A0
const int switch2Pin = A1; // Switch 2 connected to pin A1
const int switch3Pin = A2; // Switch 3 connected to pin A2
const int switch4Pin = A3; // Switch 4 connected to pin A3
const int pin3Output = 3; // Output pin connected to pin 3 (motor control)
const int pin4Output = 4; // Output pin connected to pin 4 (motor control)
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
// Set up pins for motor
pinMode(pin3Output, OUTPUT);
pinMode(pin4Output, OUTPUT);
pinMode(motor1Pin1, OUTPUT);
pinMode(motor1Pin2, OUTPUT);
pinMode(switch1Pin, INPUT);
pinMode(switch2Pin, INPUT);
pinMode(switch3Pin, INPUT);
pinMode(switch4Pin, INPUT);
Serial.begin(9600);
}
void loop() {
int switch1State = digitalRead(switch1Pin);
int switch2State = digitalRead(switch2Pin);
int switch3State = digitalRead(switch3Pin);
int switch4State = digitalRead(switch4Pin);
// Check if all switches are active (LOW)
if (switch1State == HIGH && switch2State == HIGH && switch3State == HIGH && switch4State == HIGH) {
digitalWrite(pin3Output, LOW);
digitalWrite(pin4Output, LOW);
lc.clearDisplay(0);
} else {
if (switch1State == HIGH && switch3State == HIGH) {
digitalWrite(pin3Output, HIGH);
digitalWrite(pin4Output, LOW);
lc.clearDisplay(0);
} else {
digitalWrite(pin3Output, LOW);
}
if (switch2State == HIGH && switch4State == HIGH) {
digitalWrite(pin3Output, LOW);
digitalWrite(pin4Output, LOW);
displayArrowRight();
}
}
}
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]);
}
delay(500);
lc.clearDisplay(0);
delay(500);
}
b. Flowchart
Kondisi →Percobaan 5 Kondisi 2
Semua Switch pull-down, switch 1 dan 3 motor ke kanan, switch 2 dan 4 panah ke kanan
6. Video Simulasi
[Kembali]
7. Download File
[Kembali]
Download HMTL Klik disini
Download Simulasi Rangkaian Klik disini
Download Video Simulasi Klik disini
Download Datasheet ARDUINO UNO klik disini
Download Datasheet Driver Motor L293D klik disini
Download Datasheet dotmatrix klik disini
Download Datasheet MAX7219 klik disini
Download Datasheet motor dc klik disini
Tidak ada komentar:
Posting Komentar