TUGAS PENDAHULUAN MODUL 1 PERCOBAAN 3 KONDISI 5
Modul 1 General Input dan Output
- Buatlah rangkaian sesuai dengan kondisi yang telah dipilih
- Buat Program pada software Arduino IDE
- Masukkan program yang telah dibuat pada software Arduino IDE sebagai library Arduino
- Jalankan rangkaian, sesuai dengan kondisi yang diinginkan
a. Rangkaian Simulasi
Gambar Rangkaian Disimulasikan
b. Prinsip Kerja
Pada percobaan 3 kondisi 5, kita menggunakan Dip Switch sebagai input dan Dot Matrix 8x8 sebagai outputnya. Pada rangkaian kali ini, kaki 9-16 Dip Switch terhubung lansung dengan ground dimana kondisi ini disebut normally closed (kondisi default nya terhubung ke ground). Selanjutnya kaki 1 dan 2 Dip Switch terhubung dengan kaki 12 dan 13 arduino dan kaki 3-8 Dip Switch terhubung dengan kaki A0-A5 arduino.
Selanjutnya kita juga menggunakan driver IC MAX7219 untuk mengontrol display Dot Matrix 8x8. Kaki ISET dan DOUT menuju ke VCC dan GND pada Arduino dan tiga pin lainnya, DIN, CLK, dan LOAD menuju ke pin digital Arduino.
Untuk skematik isi dot marix dapat dilihat pada gambar dibawah
Pada percobaan 3 kondisi 5 sendiri, diminta suatu kondisi ketika 2 switch pada dot matrix aktif, maka akan menampilkan angka 1,2,3 pada Dot Matrix 8x8. Sesuai dengan kondisi yang sudah dimasukkan dalam ARDUINO IDE,
patterns[0] = B00000000;
yang berarti untuk menampilkan angka 1,2,3 kita harus menjadikan semua led dot marix pada baris 1 kolom 1,2,3,4,5,6,7,8 menjadi bernilai 0.
patterns[1] = B10111011;
patterns[2] = B10001001;
patterns[3] = B10001001;
patterns[4] = B10111011;
patterns[5] = B10100001;
patterns[6] = B10100001;
patterns[7] = B10111011;
begitupun selanjutnya hingga baris ke-8
a. Flowchart
b. Listing Program
#include <LedControl.h> //Library untuk LED Dot Matrix
const int DIP_Pins[] = {13, 12, A0, A1, A2, A3, A4, A5}; // Pin DIP switch terhubung ke Arduino
LedControl lc = LedControl(2, 3, 4, 1); // Pin DIN, CLK, LOAD (CS), dan jumlah Dot Matrix yang dihubungkan ke Arduino
byte patterns[8] = {0, 0, 0, 0, 0, 0, 0, 0}; // Pola LED untuk ditampilkan
void setup() {
for (int i = 0; i < 8; i++) {
pinMode(DIP_Pins[i], INPUT_PULLUP); // Mengatur pin DIP switch sebagai input dengan pull-up resistor
}
lc.shutdown(0, false); // Mengaktifkan display
lc.setIntensity(0, 8); // Mengatur kecerahan LED (nilai antara 0 dan 15)
lc.clearDisplay(0); // Membersihkan tampilan dot matrix
}
void loop() {
// Menghitung jumlah switch yang aktif
int activeSwitches = 0;
for (int i = 0; i < 8; i++) {
if (digitalRead(DIP_Pins[i]) == LOW) {
activeSwitches++;
}
}
// Menampilkan angka "123" jika 2 switch aktif
if (activeSwitches == 2) {
patterns[0] = B00000000;
patterns[1] = B10111011;
patterns[2] = B10001001;
patterns[3] = B10001001;
patterns[4] = B10111011;
patterns[5] = B10100001;
patterns[6] = B10100001;
patterns[7] = B10111011;
}
else {
// Menampilkan pola default jika ada 3, 5, atau 7 switch yang aktif
for (int i = 0; i < 8; i++) {
patterns[i] = 0;
}
}
// Menampilkan pola LED pada dot matrix
for (int row = 0; row < 8; row++) {
lc.setRow(0, row, patterns[row]);
}
delay(100); // Delay untuk tampilan LED stabil
}
Ketika 2 switch aktif dot
matrix akan menampilkan
angka 1,2,3
Download HTML klik disini
Download Rangkaian Proteus klik disini
Download Program Arduino klik disini
Download Video klik disini
Download Datasheet Driver IC MAX7219 klik disini
Download Datasheet Arduino klik disini
Download Datasheet Dip Switch klik disini
Komentar
Posting Komentar