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
byte patterns[8]
= {0, 0, 0, 0, 0, 0, 0, 0}; // Pola LED untuk ditampilkan
Kemudian pada codingan kita masukan kode untuk menampilkan angka 1,2,3 dengan menggunakan code dibawah
byte pattern1[] =
{ B01000000,B11000000,B01000000,B01000000,B01000000,B01000000,B11100000,}; //
Pola LED untuk angka 1
byte pattern2[] = {
B01110000,B10001000,B00001000,B00010000,B00100000,B01000000,B11111000, }; //
Pola LED untuk angka 2
byte pattern3[] = {
B11111000,B00010000,B00100000,B00010000,B00001000,B10001000,B01110000 }; //
Pola LED untuk angka 3
#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() {
// Membaca status DIP switch dan
mengupdate pola LED
int activeSwitches = 0; // Jumlah
saklar yang aktif
for (int i = 0; i < 8; i++)
{
if (digitalRead(DIP_Pins[i]) ==
LOW) {
activeSwitches++; //
Menghitung jumlah saklar yang aktif
}
}
// Menampilkan angka 2, k, dan 3
secara berurutan jika 2 saklar aktif
if (activeSwitches == 2) {
byte pattern1[] = {
B01000000,B11000000,B01000000,B01000000,B01000000,B01000000,B11100000,}; //
Pola LED untuk angka 1
byte pattern2[] = {
B01110000,B10001000,B00001000,B00010000,B00100000,B01000000,B11111000, }; //
Pola LED untuk angka 2
byte pattern3[] = {
B11111000,B00010000,B00100000,B00010000,B00001000,B10001000,B01110000 }; //
Pola LED untuk angka 3
// Menampilkan angka 1
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, pattern1[i]);
delay(1000); // Delay untuk efek
tampilan
}
// Menampilkan angka 2
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, pattern2[i]);
delay(1000); // Delay untuk efek
tampilan
}
// Menampilkan angka 3
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, pattern3[i]);
delay(1000); // Delay untuk efek
tampilan
}
} else {
// Menampilkan pola LED sesuai
dengan status saklar DIP seperti sebelumnya
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
}
}
// 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
}
Tidak ada komentar:
Posting Komentar