-
-
-
Tổng tiền thanh toán:
-
Hướng dẫn làm Led ma trận 8x8 chạy chữ
29/05/2015
Hướng dẫn làm Led ma trận 8x8 chạy chữ
Bạn đã khi nào nghĩ tới tự tạo một bảng chạy chữ bằng đèn Led? Tự tạo 1 biển quảng cáo theo phong cách của riêng mình? Điểm thú vị của đèn led này là bạn có thể tự lập trình và thay đổi bộ chữ theo ý thích của mình.
Hôm nay mình xin hướng dẫn các bạn 1 bước cơ bản: Lắp đặt và lập trình cơ bản led ma trận 8x8
CHUẨN BỊ:
1 Bo mạnh chủ Arduino Uno 3
2 Modul vi điều khiển led 8x8
3 Dây cắm đực cái
THỰC HIỆN
1 _Lắp đặt
Trên modul led 8x8 sẽ có 5 chân nối các bạn thực hiện nối như sau:
Led8x8 – Arduino uno 3
VCC - 5v
GND - GND
DIN - 12
CS - 11
2_ Nạp phần mềm cho modul ( Các bạn có thể tham khảo trên thêm những bài viết mình đã hướng dẫn về cách nạp )
Thư viện cho module ma trận led 8x8
https://github.com/wayoda/LedControl
Sau khi nạp thư viện các bạn có thể sử dụng code sau để chạy thử
#include <LedControl.h>
int DIN = 12;
int CS = 11;
int CLK = 10;
byte e[8]= {0x7C,0x7C,0x60,0x7C,0x7C,0x60,0x7C,0x7C};
byte d[8]= {0x78,0x7C,0x66,0x66,0x66,0x66,0x7C,0x78};
byte u[8]= {0x66,0x66,0x66,0x66,0x66,0x66,0x7E,0x7E};
byte c[8]= {0x7E,0x7E,0x60,0x60,0x60,0x60,0x7E,0x7E};
byte eight[8]= {0x7E,0x7E,0x66,0x7E,0x7E,0x66,0x7E,0x7E};
byte s[8]= {0x7E,0x7C,0x60,0x7C,0x3E,0x06,0x3E,0x7E};
byte dot[8]= {0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18};
byte o[8]= {0x7E,0x7E,0x66,0x66,0x66,0x66,0x7E,0x7E};
byte m[8]= {0xE7,0xFF,0xFF,0xDB,0xDB,0xDB,0xC3,0xC3};
LedControl lc=LedControl(DIN,CLK,CS,0);
void setup(){
lc.shutdown(0,false); //The MAX72XX is in power-saving mode on startup
lc.setIntensity(0,15); // Set the brightness to maximum value
lc.clearDisplay(0); // and clear the display
}
void loop(){
byte smile[8]= {0x3C,0x42,0xA5,0x81,0xA5,0x99,0x42,0x3C};
byte neutral[8]= {0x3C,0x42,0xA5,0x81,0xBD,0x81,0x42,0x3C};
byte frown[8]= {0x3C,0x42,0xA5,0x81,0x99,0xA5,0x42,0x3C};
printByte(smile);
delay(1000);
printByte(neutral);
delay(1000);
printByte(frown);
delay(1000);
printEduc8s();
lc.clearDisplay(0);
delay(1000);
}
void printEduc8s()
{
printByte(e);
delay(1000);
printByte(d);
delay(1000);
printByte(u);
delay(1000);
printByte(c);
delay(1000);
printByte(eight);
delay(1000);
printByte(s);
delay(1000);
printByte(dot);
delay(1000);
printByte(c);
delay(1000);
printByte(o);
delay(1000);
printByte(m);
delay(1000);
}
void printByte(byte character [])
{
int i = 0;
for(i=0;i<8;i++)
{
lc.setRow(0,i,character[i]);
}
}