Chúng tôi sẽ giới thiệu cho bạn về cách lập trình điều khiển bảng hiệu màn hình led ma trận điểm 8 * 8 để thực hiện hiển thị đồ họa và kỹ thuật số.
Nội dung
Các thành phần màn hình ma trận led 8*8
- 1 * Một UNO rduino
- 1 * Cáp USB
- Ma trận điểm 1 * 8 * 8
- 2 * 74HC595
- 1 * Breadboard
- Một số dây nhảy

Nguyên tắc
1. Màn hình ma trận điểm
Màn hình ma trận điểm là một thiết bị hiển thị được sử dụng để hiển thị thông tin trên máy móc, đồng hồ, đèn báo khởi hành của đường sắt và nhiều thiết bị khác yêu cầu một thiết bị hiển thị đơn giản có độ phân giải hạn chế.
Màn hình bao gồm ma trận điểm các đèn hoặc chỉ báo cơ học được sắp xếp theo cấu hình hình chữ nhật (các hình dạng khác cũng có thể có, mặc dù không phổ biến) sao cho bằng cách bật hoặc tắt các đèn đã chọn, văn bản hoặc đồ họa có thể được hiển thị. Bộ điều khiển ma trận điểm chuyển đổi các lệnh từ bộ xử lý thành các tín hiệu bật hoặc tắt đèn trong ma trận để hiển thị theo yêu cầu được tạo ra.
Cấu trúc bên trong và hình thức của màn hình ma trận điểm như được minh họa dưới đây:
Màn hình ma trận điểm 8 * 8 bao gồm 64 đèn LED và mỗi đèn LED được đặt ở giao điểm của các dòng và cột. Khi hàng tương ứng được đặt ở mức cao và cột được đặt ở mức thấp, thì đèn LED sẽ sáng.
Cần có một dòng ổ đĩa nhất định cho màn hình ma trận điểm. Ngoài ra, cần nhiều chân hơn để kết nối màn hình ma trận điểm với bộ điều khiển. Do đó, để tiết kiệm GPIO của Arduino , trình điều khiển IC 74HC595 được sử dụng trong thử nghiệm.

2. 74HC595
74HC595 là một thanh ghi dịch nối tiếp 8 giai đoạn với một thanh ghi lưu trữ và các đầu ra 3 trạng thái. Thanh ghi ca và thanh ghi lưu trữ có đồng hồ riêng biệt. Dữ liệu được thay đổi khi chuyển đổi tích cực của đầu vào SH_CP.
Dữ liệu trong mỗi thanh ghi được chuyển đến thanh ghi lưu trữ trên quá trình chuyển đổi tích cực của đầu vào ST_CP. Thanh ghi dịch chuyển có một đầu vào nối tiếp (DS) và một đầu ra tiêu chuẩn nối tiếp ( ) để xếp tầng . Nó cũng được cung cấp tính năng thiết lập lại không đồng bộ (hoạt động LOW) cho tất cả 8 giai đoạn thanh ghi dịch chuyển. Thanh ghi lưu trữ có 8 đầu ra trình điều khiển bus 3 trạng thái song song. Dữ liệu trong thanh ghi lưu trữ xuất hiện ở đầu ra bất cứ khi nào đầu vào cho phép đầu ra (OE) ở mức THẤP.
Trong thử nghiệm này, chỉ có 3 chân của Arduino được sử dụng để điều khiển màn hình ma trận điểm do sự tồn tại của 74HC595.
Dòng chảy là chức năng của mỗi pin:
- DS : Đầu vào dữ liệu nối tiếp
- Q0-Q7 : Đầu ra dữ liệu song song 8 bit
- Q7 ‘ : Chân đầu ra dữ liệu chuỗi, luôn được kết nối với chân DS của 74HC595 tiếp theo
- OE : Chân cho phép đầu ra, có hiệu lực ở mức thấp, được kết nối trực tiếp với đất
- MR : Chân thiết lập lại, có hiệu lực ở mức thấp, kết nối trực tiếp với mức cao 5V trong các ứng dụng thực tế
- SH_CP : Đầu vào đồng hồ thanh ghi dịch chuyển
- ST_CP : đầu vào đồng hồ thanh ghi lưu trữ

3. Chức năng chính:
●shiftOut()
Chuyển từng byte dữ liệu ra từng bit một. Bắt đầu từ bit quan trọng nhất (tức là ngoài cùng bên trái) hoặc ít nhất (ngoài cùng bên phải). Mỗi bit lần lượt được ghi vào một chân dữ liệu, sau đó một chân đồng hồ được tạo xung (lấy mức cao, rồi xuống mức thấp) để chỉ ra rằng bit đó có sẵn.
Cú pháp :
shiftOut (dataPin, clockPin, bitOrder, value)
Các thông số :
dataPin: chân để xuất ra từng bit (int) .
clockPin: chân để chuyển đổi sau khi dataPin đã được đặt thành giá trị chính xác .
bitOrder: thứ tự chuyển ra các bit; MSBFIRST hoặc LSBFIRST. (Bit quan trọng nhất đầu tiên hoặc, bit quan trọng nhất đầu tiên)
value: dữ liệu cần chuyển ra ngoài. (byte)
Các bước thiết kế nội dung cho màn hình led ma trận
Bước 1 : Xây dựng mạch (Đảm bảo đấu nối mạch chính xác rồi mới cấp nguồn, nếu không có thể gây cháy chip


Bước 2 : Chương trình
/***********************************************************
Tên tệp: 25_ledMatrix.ino
Mô tả: bạn có thể thấy một "Adeept" cuộn sẽ được hiển thị
trên màn hình ma trận điểm.
Trang web: www.adeept.com
Email: support@adeept.com
Tác giả: Tom
Ngày: 2015/05/02
***********************************************************/
const int latchPin = 12 ; // Chân kết nối với ST_CP của 74HC595
const int clockPin = 8 ; // Chân kết nối với SH_CP của 74HC595
const int dataPin = 11 ; // Pin kết nối với DS của 74HC595
// Quét cột
int data [] = { 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , // Null
0x00 , 0x3E , 0x48 , 0x88 , 0x88 , 0x48 , 0x3E , 0x00 , // A
0x00 , 0x00 , 0x0C , 0x12 , 0x12 , 0xFE , 0x00 , 0x00 , // d
0x00 , 0x00 , 0x7C , 0x92 , 0x92 , 0x92 , 0x70 , 0x00 , // e
0x00 , 0x00 ,0x7C , 0x92 , 0x92 , 0x92 , 0x70 , 0x00 , // e
0x00 , 0x00 , 0xFE , 0x90 , 0x90 , 0x60 , 0x00 , 0x00 , // p
0x00 , 0x00 , 0x10 , 0x10 , 0x7E , 0x12 , 0x10 , 0x00 , // t
0x00 , 0x00 ,0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 //Vô giá trị
};
// Quét dòng
không dấu tab char [] = { 0x7f , 0xbf , 0xdf , 0xef , 0xf7 , 0xfb , 0xfd , 0xfe };
void setup ()
{
// thiết lập các chân để xuất
pinMode (latchPin, OUTPUT ); // Đặt chế độ cổng kỹ thuật số 12, OUTPUT cho pinMode đầu ra
( clockPin, OUTPUT ); // Đặt chế độ cổng số 8, OUTPUT cho pinMode đầu ra
( dataPin, OUTPUT ); // Đặt chế độ cổng 11 kỹ thuật số, OUTPUT cho đầu ra
}
void loop ()
{
for ( int n = 0 ; n < 56 ; n ++) // Gửi dữ liệu chu kỳ quét cột
{
for ( int t = 0 ; t < 100 ; t ++) // Kiểm soát tốc độ cuộn dữ liệu
{
for ( int num = n; num < 8 + n; num ++) // 8 cột dữ liệu được gửi đến ma trận điểm
{
shiftOut (dataPin, clockPin, MSBFIRST, data [num]); // Gửi dữ liệu cột đến một ma trận điểm
shiftOut (dataPin, clockPin, MSBFIRST, tab [num-n]); // Gửi dữ liệu dòng tới ma trận điểm
// Cạnh lên của dịch chuyển dữ liệu
digitalWrite (latchPin, HIGH ); // Chốt điều khiển đầu ra HIGH
digitalWrite (latchPin, LOW ); // Chốt điều khiển đầu ra LOW
}
}
}
}
Bước 3 : Biên dịch chương trình và tải lên board Arduino UNO
Bây giờ, bạn có thể thấy “Adeept” cuộn sẽ được hiển thị trên màn hình ma trận điểm.
Trong thử nghiệm này, chúng tôi không chỉ học cách vận hành màn hình ma trận điểm để hiển thị số và chữ cái, mà còn học cách sử dụng cơ bản của 74HC595, sau đó bạn có thể thử vận hành màn hình ma trận điểm để hiển thị các hình ảnh khác.
Nếu bạn cần làm bảng hiệu ma trận thì bạn có thể liên hệ đến chúng tôi thông qua Facebook Nguyễn Long này nhé!
Cảm ơn bạn đã đọc bài viết này.