- + Rangkai semua komponen
- + buat program di aplikasi arduino IDE
- + setelah selesai masukkan program ke arduino
- + jalankan program pada simulasi dan cobakan dengan modul
2. Hardware dan Diagram Blok
[Kembali]
A. Hardware
1. Arduino UNO
3. Rangkaian Simulasi dan Prinsip kerja
[Kembali]
A. Rangkaian Simulasi
B. Prinsip Kerja
Pada percobaan 3 Kondisi 1 diminta untuk ketika 1 switch aktif dot matrix akan menampilkan huruf L,E,I. DIP Switch dihubungkan pada kaki A0 - A5, 12, 13 Arduino. Kemudian MAX7219 dihubungkan pada kaki 2 - 4 Arduino. MAX7219 terhubung pada DOT Matriks.
* DOT Matriks merupakan sekumpulan LED yang dihubungkan
* Apabila 1 switch saja yang aktif maka dot matriks akan menampilkan hurup L,E,I secara bergantian, dengan waktu tampil masing masing 1 detik. Apabila switch yang aktif lebih atau kurang dari 3 maka dot matriksnya tidak akan menyala.
* Dapat dilihat pada program untuk mengatur bagian mana dari dot matriks yang menyala maka di program diberi kode 1, dan yang d matikan diberi kode 0, kita dapat menyesuaikan pola untuk bagian mana saja yang menyala pada program arduino.
4. Flowchart dan Listing Program[Kembali]
a. Flowchart
b. Listing program
#include <LedControl.h>
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 patternL[] = {
B11000000,
B11000000,
B11000000,
B11000000,
B11000000,
B11000000,
B11111111,
B11111111}; // Pola untuk huruf L
byte patternE[] = {
B11111111,
B11000000,
B11000000,
B11111111,
B11111111,
B11000000,
B11000000,
B11111111}; // Pola untuk huruf E
byte patternI[] = {
B11111111,
B11111111,
B00011000,
B00011000,
B00011000,
B00011000,
B11111111,
B11111111}; // Pola untuk huruf I
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() {
int activeSwitchCount = 0; // Menghitung jumlah DIP switch yang aktif
// Membaca status DIP switch
for (int i = 0; i < 8; i++) {
if (digitalRead(DIP_Pins[i]) == LOW) {
activeSwitchCount++; // Menambah jumlah DIP switch yang aktif
}
}
// Menampilkan pola LED pada dot matrix jika hanya satu DIP switch yang aktif
if (activeSwitchCount == 1) {
displayNumber(patternL); // Menampilkan huruf L pada dot matrix
delay(1000); // Delay agar huruf L ditampilkan selama 1 detik
displayNumber(patternE); // Menampilkan huruf E pada dot matrix
delay(1000); // Delay agar huruf E ditampilkan selama 1 detik
displayNumber(patternI); // Menampilkan huruf I pada dot matrix
delay(1000); // Delay agar huruf I ditampilkan selama 1 detik
} else {
lc.clearDisplay(0); // Membersihkan dot matrix jika tidak ada atau lebih dari satu DIP switch yang aktif
}
}
// Fungsi untuk menampilkan pola pada dot matrix
void displayNumber(byte pattern[]) {
for (int row = 0; row < 8; row++) {
lc.setRow(0, row, pattern[row]);
}
}
5. Kondisi
[Kembali]
Percobaan 3 kondisi 1 :
Ketika 1 switch aktif dot matrix akan menampilkan huruf L,E,I
6. Video Simulasi
[Kembali]
Tidak ada komentar:
Posting Komentar