M1_Tugas Pendahuluan_P3K6
1. Kondisi [back]
Percobaan 3 Kondisi 6 : Ketika 3 switch aktif, dot matriks akan menampilkan kombinasi angka 2, 2, dan 4
2. Gambar Rangkaian Simulasi [back]
3.Video Simulasi [back]
4.Prinsip Kerja[back]
Prinsip Kerja Dot Matriks
Prinsip kerja dot matrik sebenarnya menggunakan system Scanning kolom. Scanning kolom adalah pada satu waktu dari sekian banyak kolom pada gambar 1 hanya satu kolom yang menyala merah. Karena proses pengulangan penyalaan kolom dari kolom 1 sampai kolom 15 begitu cepat dan berulang-ulang maka huruf ABH tampak nyala bersamaan. Proses scanning kolom yang cepat menipu mata atau penglihatan manusia sehingga mata menangkap huruf ABH seolah-olah menyala secara bersamaan. Apabila proses scanning kolom dipelankan sampai mata dapat melihat, maka pergeseran penyalaan kolom akan terlihat satu persatu..
Prinsip Kerja Dot Matriks
Prinsip kerja dot matrik sebenarnya menggunakan system Scanning kolom. Scanning kolom adalah pada satu waktu dari sekian banyak kolom pada gambar 1 hanya satu kolom yang menyala merah. Karena proses pengulangan penyalaan kolom dari kolom 1 sampai kolom 15 begitu cepat dan berulang-ulang maka huruf ABH tampak nyala bersamaan. Proses scanning kolom yang cepat menipu mata atau penglihatan manusia sehingga mata menangkap huruf ABH seolah-olah menyala secara bersamaan. Apabila proses scanning kolom dipelankan sampai mata dapat melihat, maka pergeseran penyalaan kolom akan terlihat satu persatu..
#include <LedControl.h> //Library untuk LED Dot Matrixconst int DIP_Pins[] = {13, 12, A0, A1, A2, A3, A4, A5}; // Pin DIP switch terhubung ke ArduinoLedControl lc=LedControl(2,3,4,1); // Pin DIN, CLK, LOAD (CS), dan jumlah Dot Matrix yang dihubungkan ke Arduinobyte patterns[8] = {0, 0, 0, 0, 0, 0, 0, 0}; // Pola LED untuk ditampilkanvoid 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, 2, dan 4 secara berurutan jika 3 saklar aktif if (activeSwitches == 3) { byte pattern1[] = { B00011000, B00100110, B00000110, B00001100, B00011000, B00110000, B11111111, B11111111 }; // Pola LED untuk angka 2 byte pattern2[] = { B00011000, B00111100, B11000110, B11000110, B11111111, B00000110, B00000110, B00000110 }; // Pola LED untuk angka 4 // Menampilkan angka 2 for (int i = 0; i < 8; i++) { lc.setRow(0, i, pattern1[i]); delay(100); // Delay untuk efek tampilan } // Menampilkan angka 2 for (int i = 0; i < 8; i++) { lc.setRow(0, i, pattern1[i]); delay(100); // Delay untuk efek tampilan } // Menampilkan angka 4 for (int i = 0; i < 8; i++) { lc.setRow(0, i, pattern2[i]); delay(100); // 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}
#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, 2, dan 4 secara berurutan jika 3 saklar aktif
if (activeSwitches == 3) {
byte pattern1[] = { B00011000, B00100110, B00000110, B00001100, B00011000, B00110000, B11111111, B11111111 }; // Pola LED untuk angka 2
byte pattern2[] = { B00011000, B00111100, B11000110, B11000110, B11111111, B00000110, B00000110, B00000110 }; // Pola LED untuk angka 4
// Menampilkan angka 2
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, pattern1[i]);
delay(100); // Delay untuk efek tampilan
}
// Menampilkan angka 2
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, pattern1[i]);
delay(100); // Delay untuk efek tampilan
}
// Menampilkan angka 4
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, pattern2[i]);
delay(100); // 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
}
Penjelasan Codingan :
Pertama dilakukan deklarasi library ledcontrol yang biasa digunakan untuk melakukan pengendalian dari dot matriks, lalu dideklarasikan pin yang akan digunakan untuk mengaktifkan dan mengendalikan led pada dot matriks. Dilakukan juga deklarasi nilai led dari dot matriks, dimana semua nilai led diberi nilai 0 yang artinya LOW, dimana led tidak aktif.
Selanjutnya dibuatkan program untuk mengatifkan lampu led secara berurutan dari atas kebawah, dimana lampu akan aktid semua apabila semua switch tertutup, dan sebaliknya.
Diberikan kondisi dimana apabila terdapat 3 switch yang tertutup, maka akan keluar angka 2, 2, dan 4 yang muncul secara berurutan di dot matriks. Kondisi ini akan terpenuhi tanpa melihat switch mana yang aktif.
Apabila switch yang aktif lebih atau kurang dari 3, maka matriks dot akan aktif sepanjang kolom dari switch yang aktif. Terakhir diberikan delay dari arduino untuk menampilkan hasil program di dot matriks.
5. File Download [back]
Download HTML Link Download
Download Simulasi Proteus Link Download
Download Listing Program Link Download
Download Video Link Download
Dataheet Dot Matriks Link Download
Datasheet Arduino UNO Link Download
No comments:
Post a Comment