Saya sudah:
- 2 Matriks LED 8x8 , dan
- sebuah MAX7219 Chip.
T: Saya hanya ingin tahu bagaimana saya bisa menghubungkannya ke Arduino Duemilanove ?
Saya telah googling tetapi saya tidak tahu caranya.
Saya sudah:
T: Saya hanya ingin tahu bagaimana saya bisa menghubungkannya ke Arduino Duemilanove ?
Saya telah googling tetapi saya tidak tahu caranya.
Jawaban:
Bryan Chung memiliki tutorial yang masih tersedia di Internet Archive tentang cara menghubungkan Matriks LED ke Arduino menggunakan MAX7219:
Berikut ini adalah percobaan dengan matriks LED 8 × 8, didorong oleh IC MAX7219, yang dikendalikan melalui papan pengontrol mikro Arduino. PCB kustom telah dibuat oleh Tan dari DinoTech untuk merapikan semua kabel yang menghubungkan matriks LED dan IC. Itu datang dengan catu daya 12V terpisah, agar tidak menguras semuanya dari papan Arduino.
Hanya 4 kabel yang diperlukan untuk mengontrol IC driver MAX7219. Mereka adalah
Data Clock Latch / load Ground
Pin data dan jam harus cocok dengan yang untuk perintah shiftOut () di Arduino. Pin kait akan memberikan pulsa RENDAH ke TINGGI setelah perintah shiftOut. Saya telah menulis program asli untuk Stamp Javelin. Karena Arduino hanya dapat menggeser 8 bit data, saya harus menggunakan 2 perintah terpisah untuk menggeser byte atas dan bawah ke MAX7219, yang membutuhkan kontrol 2 byte untuk setiap perintah.
Untuk struktur data matriks LED 8 × 8, saya menggunakan array byte - matriks panjang 8. Setiap baris dalam matriks sesuai dengan dimensi Y. Setiap bit dalam satu baris berhubungan dengan dimensi X. Digit 1 aktif; 0 tidak aktif. Arah X terbalik dan ada juga pergeseran 1 bit. Fungsi updateLED () melayani untuk ini.
Program pertama adalah animasi gerakan satu baris.
int CLOCK = 12;
int LATCH = 13;
int DATA = 11;
byte matrix[8];
int idx = 0;
void setup() {
pinMode(CLOCK, OUTPUT);
pinMode(LATCH, OUTPUT);
pinMode(DATA, OUTPUT);
digitalWrite(CLOCK, LOW);
digitalWrite(LATCH, LOW);
digitalWrite(DATA, LOW);
initLED();
clearLED();
}
void loop() {
for (int j=0;j<8;j++) {
updateLED(idx, j, true);
}
refreshLED();
delay(200);
for (int j=0;j<8;j++) {
updateLED(idx, j, false);
}
refreshLED();
delay(100);
idx++;
idx %= 8;
}
void ledOut(int n) {
digitalWrite(LATCH, LOW);
shiftOut(DATA, CLOCK, MSBFIRST, (n>>8));
shiftOut(DATA, CLOCK, MSBFIRST, (n));
digitalWrite(LATCH, HIGH);
delay(1);
digitalWrite(LATCH, LOW);
}
void initLED() {
ledOut(0x0B07);
ledOut(0x0A0C);
ledOut(0x0900);
ledOut(0x0C01);
}
void clearLED() {
for (int i=0;i<8;i++) {
matrix[i] = 0x00;
}
refreshLED();
}
void refreshLED() {
int n1, n2, n3;
for (int i=0;i<8;i++) {
n1 = i+1;
n2 = matrix[i];
n3 = (n1<<8)+n2;
ledOut(n3);
}
}
void updateLED(int i, int j, boolean b) {
int t = 1;
int n = 0;
int m = 0;
if (j==0) {
m = 7;
}
else {
m = j-1;
}
n = t<<m;
if (b) {
matrix[i] = n | matrix[i];
}
else {
n = ~n;
matrix[i] = n & matrix[i];
}
}
Maaf jika ini agak terlambat untuk Anda, tetapi saya baru saja menulis posting tentang menggunakan MAX7219 dengan matriks LED dan 7-segment LED Display.