Percobaan 3 Kondisi 4
Ketika 1 switch aktif dot matrix akan menampilkan angka 5,7,7
Ketika 1 switch aktif dot matrix akan menampilkan angka 5,7,7
- Rangkailah semua komponen
- Buat program di aplikasi arduino IDE
- Setelah selesai, masukkan program ke arduino
- Jalankan program pada simulasi dan lakukan sesuai kondisi
2. Hardware dan diagram blok
[Kembali]
a. hardware
- arduino uno
- dot matrix 8x8
- ic max7219
- dipswitch
b. Digram Blok
3. Rangkaian Simulasi dan Prinsip kerja
[Kembali]
- Gambar rangkaian sebelum disimulasikan
- Gambar rangkaian setelah disimulasikan
Prinsip Kerja :
Ketika hanya 1 switch yang dihidupkan maka dot matrix akan menampilkan angka 5 lalu 5 lagi kemudian angka 7. Dan ketika dua atau lebih switch hidup maka dot matrik tidak akan menampilkan angka.
Hal ini disebabkan oleh fungsi pada codingan yang mana memiliki syarat bahwa ketika hanya 1 switch yang dihidupkan maka baru ditampilkan angka pada dot matrix.
Hal ini disebabkan oleh fungsi pada codingan yang mana memiliki syarat bahwa ketika hanya 1 switch yang dihidupkan maka baru ditampilkan angka pada dot matrix.
4. FlowChart
[Kembali]
a. Listing Program
#include <LedControl.h>
const int numSwitches = 8;
const int switches[numSwitches] = {1, 0, A0, A1, A2, A3, A4, A5};
const int dataInPin = 13;
const int clkPin = 11;
const int csPin = 12;
const int displayDelay = 500; // Delay antara tampilan angka
LedControl lc = LedControl(dataInPin, clkPin, csPin, 1);
void setup() {
// Set up switches
for (int i = 0; i < numSwitches; ++i) {
pinMode(switches[i], INPUT_PULLUP);
}
// Initialize the display
lc.shutdown(0, false);
lc.setIntensity(0, 8);
lc.clearDisplay(0);
}
void loop() {
// Hitung jumlah switch yang tertutup
int closedSwitches = 0;
for (int i = 0; i < numSwitches; ++i) {
if (digitalRead(switches[i]) == LOW) { // Jika switch tertutup
closedSwitches++;
}
}
// Tampilkan angka hanya jika hanya satu switch yang tertutup
if (closedSwitches == 1) {
displayNumber(5);
delay(displayDelay);
lc.clearDisplay(0); // Hapus tampilan sebelum menampilkan angka berikutnya
delay(displayDelay); // Delay tambahan antara tampilan angka
displayNumber(7);
delay(displayDelay);
lc.clearDisplay(0);
delay(displayDelay);
displayNumber(7);
delay(displayDelay);
lc.clearDisplay(0);
delay(displayDelay);
}
}
void displayNumber(int num) {
byte rows[] = {
B11111111, // 0
B11111111, // 1
B11111111, // 2
B11111111, // 3
B11111111, // 4
B11111111, // 5
B11111111, // 6
B11111111 // 7
};
switch (num) {
case 0:
rows[0] = B00111100;
rows[1] = B01000010;
rows[2] = B01000010;
rows[3] = B01000010;
rows[4] = B01000010;
rows[5] = B01000010;
rows[6] = B00111100;
rows[7] = B00000000;
break;
case 5:
rows[0] = B01111110;
rows[1] = B01000000;
rows[2] = B01000000;
rows[3] = B01111100;
rows[4] = B00000010;
rows[5] = B00000010;
rows[6] = B01111100;
rows[7] = B00000000;
break;
case 7:
rows[0] = B01111110;
rows[1] = B00000010;
rows[2] = B00000100;
rows[3] = B00001000;
rows[4] = B00010000;
rows[5] = B00100000;
rows[6] = B00100000;
rows[7] = B00000000;
break;
}
for (int i = 0; i < 8; ++i) {
lc.setRow(0, i, rows[i]);
}
}
b. Flowchart
5. Kondisi
[Kembali]
Ketika 1 switch aktif dot matrix akan menampilkan angka 5,7,7
6. Video Simulasi
[Kembali]
7. Download File
[Kembali]
.jpeg)
.jpeg)
Tidak ada komentar:
Posting Komentar