PERCOBAAN 6 (TANPA KONDISI)
Tanpa kondisi
2. Rangkaian Simulasi
[Kembali]
Listning Program:
#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); // Perbaikan pada penulisan fungsi pinMode
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] = 0xFF; // 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
}
3. Video [Kembali]
Program membaca status dari serangkaian saklar DIP yang terhubung ke pin-pin digital Arduino. Ketika saklar diaktifkan (dalam posisi LOW), program akan mengatur pola LED menjadi menyala, sedangkan jika saklar tidak diaktifkan (dalam posisi HIGH), pola LED akan dimatikan. Data pola LED kemudian dikirim melalui SPI ke perangkat lain (misalnya, mikrokontroler atau IC lain) sebagai 'slave'. Proses ini terus berulang di dalam loop(), dengan penundaan 100 milidetik di antara setiap pembaruan untuk memastikan tampilan LED stabil.
5. Link Download
[Kembali]
- HTML [disini]
- File Simulasi [disini]
- Video [disini]
- Datasheet LED matrix 8x8 [disini]
- Datasheet Arduino Uno [disini]
0 comments:
Posting Komentar