1. Rangkai semua komponen sesuai kondisi yang dipilih.
2. Buat program di aplikasi arduino IDE.
3. Setelah selesai masukkan program ke arduino di proteus.
4. Jalankan program pada simulasi dan cobakan sesuai dengan
modul dan kondisi.
5. Selesai.
2. Hardware dan diagram blok
[Kembali]
Hardware
1. Arduino Uno
2. Dipswitch
3. Max7219
Diagram Blok
3. Rangkaian simulasi dan prinsip kerja
[Kembali]
Rangkaian percobaan sebelum disimulasi
Rangkaian percobaan setelah disimulasi
Prinsip Kerja
Pada rangkaian percobaan 6 modul 3 terdapat 2 arduino uno, dipswitch 18 pin, max 7219 dan dot matrix 8x8. Arduino yang dihubungkan ke dipswitch di deklarasikan programnya sebagai master (pengontrol) dan Arduino yang dihubungkan ke max 7219 dan dot matrix di deklarasikan programnya sebagai slave (dikontrol). Prinsip kerjanya , ketika rangkaian di running dipswitch yang di program sebagai master akan mengontrol output dari matrix yang diprogram sebagai slave, ketika pin pertama dipswitch diaktifkan maka pada baris pertama dot matrix akan hidup dan jika pin pertama dipswitch di non aktifkan maka pada baris pertama dot matrix akan mati , begitu juga dengan pin-pin yg lain sesuai dengan barisnya.
Flowchart
Listing Program
Master:
//Master
#include <SPI.h>
const int SS_PIN = 10; // Slave Select pin
const int DIP_Pins[] = {2, 3, 4, 5, 6, 7, 8, 9}; // Pin DIP switch terhubung ke Arduino
byte patterns[8] = {0}; // Pola LED untuk ditampilkan
void setup() {
SPI.begin();
pinMode(SS_PIN, OUTPUT);
digitalWrite(SS_PIN, HIGH); // Tidak memilih slave saat ini
for (int i = 0; i < 8; i++) {
pinMode(DIP_Pins[i], INPUT_PULLUP); // Mengatur pin DIP switch sebagai input dengan pull-up resistor
}
}
void loop() {
// Membaca status DIP switch dan mengupdate pola LED
for (int i = 0; i < 8; i++) {
if (digitalRead(DIP_Pins[i]) == LOW) {
patterns[i] = B11111111; // Mengatur semua LED menyala jika sakelar diaktifkan
} else {
patterns[i] = 0; // Mengatur semua LED mati jika sakelar tidak diaktifkan
}
}
// Mengirim data pola LED ke slave
digitalWrite(SS_PIN, LOW); // Memilih slave
for (int i = 0; i < 8; i++) {
SPI.transfer(patterns[i]);
}
digitalWrite(SS_PIN, HIGH); // Melepas slave
delay(100); // Delay untuk tampilan LED stabil
}
Slave:
//Slave
#include <SPI.h>
#include <LedControl.h>
const int SS_PIN = 10; // Slave Select pin
LedControl lc = LedControl(2, 3, 4, 1); // Pin DIN, CLK, LOAD (CS), dan jumlah Dot Matrix yang dihubungkan ke Arduino
void setup() {
SPI.begin();
pinMode(SS_PIN, INPUT); // SS_PIN sebagai input agar Arduino berperan sebagai slave
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() {
if (digitalRead(SS_PIN) == LOW) { // Jika dipilih oleh master
byte patterns[8];
// Menerima data pola LED dari master
for (int i = 0; i < 8; i++) {
patterns[i] = SPI.transfer(0);
}
// Menampilkan pola LED pada dot matrix
for (int row = 0; row < 8; row++) {
lc.setRow(0, row, patterns[row]);
}
}
}
Percobaan 6 tanpa kondisi : setiap pin dipswitch on maka tiap baris dot matrix on.
7. Link Download
[Kembali]
Download HTML klik disini
Download Video Praktikum klik disini
Download Listing Program klik disini
Download Library Arduino Uno klik disini
Donwload Datasheet Arduino Uno klik disini
Donwload Datasheet Max7219 klik disini
Donwload Datasheet Dot Matrix klik disini
Download Datasheet Dipswitch klik disini
0 komentar:
Posting Komentar