#led #ledmatran #led8×8
Ứng dụng: Hiển thị thông tin, Làm thông báo của thang máy, Quảng Cáo
Ma trận điểm mà chúng ta sẽ sử dụng trong hướng dẫn này là ma trận 8 × 8 có nghĩa là nó có 8 cột và 8 hàng, vì vậy nó chứa tổng cộng 64 đèn LED.
Bạn có thể nối nhiều ma trận cùng một lúc. Bạn chỉ cần kết nối chúng với nhau, vì chúng có các chân ở cả hai phía để mở rộng.
Sơ đồ chân
Chương trình
Bạn cần tải về thư viện sau: https://github.com/wayoda/LedControl/archive/master.zip
Các hàm của thư viện LedControl
Cách dễ nhất để hiển thị một cái gì đó trên ma trận điểm là sử dụng các function setLed(), setRow() hoặc setColumn()
setLed(addr, row, col, state)
- addr là địa chỉ của ma trận của bạn, ví dụ, nếu bạn chỉ có 1 ma trận, addr = 0
- row là hàng led
- col là cột led
- state muốn led sáng thì giá trị bằng 1, 0 thì led tắt
Tương tự với
setRow(addr, row, value)
setCol(addr, column, value)
2 hàm hày chỉ cho sáng hoặc tắt 1 hàng hoặc 1 cột
Ví dụ hiển thị biểu tượng lên LED mà trận
Trong ví dụ này, bạn sẽ hiển thị một khuôn mặt lên ma trận: mặt cười, mặt trung tính, và mặt buồn
Nếu bạn muốn hiển thị một cái gì đó trong ma trận, bạn chỉ cần xác định hàng hoặc cột, đèn LED bật hoặc tắt.
Mặt cười
Sơ đồ mạch
Chương trình
/*
Created by Rui Santos
All the resources for this project:
http://randomnerdtutorials.com/
*/
#include "LedControl.h"
#include "binary.h"
/*
DIN connects to pin 12
CLK connects to pin 11
CS connects to pin 10
*/
LedControl lc=LedControl(12,11,10,1);
// delay time between faces
unsigned long delaytime=1000;
// mặt cười
byte hf[8]= {B00111100,B01000010,B10100101,B10000001,B10100101,B10011001,B01000010,B00111100};
// mặt bình thường
byte nf[8]={B00111100, B01000010,B10100101,B10000001,B10111101,B10000001,B01000010,B00111100};
// mặt buồn
byte sf[8]= {B00111100,B01000010,B10100101,B10000001,B10011001,B10100101,B01000010,B00111100};
void setup() {
lc.shutdown(0,false);
// Set brightness to a medium value
lc.setIntensity(0,8);
// Clear the display
lc.clearDisplay(0);
}
void drawFaces(){
// Display sad face
lc.setRow(0,0,sf[0]);
lc.setRow(0,1,sf[1]);
lc.setRow(0,2,sf[2]);
lc.setRow(0,3,sf[3]);
lc.setRow(0,4,sf[4]);
lc.setRow(0,5,sf[5]);
lc.setRow(0,6,sf[6]);
lc.setRow(0,7,sf[7]);
delay(delaytime);
// Display neutral face
lc.setRow(0,0,nf[0]);
lc.setRow(0,1,nf[1]);
lc.setRow(0,2,nf[2]);
lc.setRow(0,3,nf[3]);
lc.setRow(0,4,nf[4]);
lc.setRow(0,5,nf[5]);
lc.setRow(0,6,nf[6]);
lc.setRow(0,7,nf[7]);
delay(delaytime);
// Display happy face
lc.setRow(0,0,hf[0]);
lc.setRow(0,1,hf[1]);
lc.setRow(0,2,hf[2]);
lc.setRow(0,3,hf[3]);
lc.setRow(0,4,hf[4]);
lc.setRow(0,5,hf[5]);
lc.setRow(0,6,hf[6]);
lc.setRow(0,7,hf[7]);
delay(delaytime);
}
void loop(){
drawFaces();
}
Kết quả