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ố.

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
màn hình ma trận
Màn hình ma trận led giá rẻ tại Nguyễn Long

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.

màn hình ma trận
Hướng dẫn làm bảng hiệu led ma trận 8×8 cho người mới

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ữ
màn hình ma trận
Hướng dẫn làm bảng hiệu led ma trận 8×8 cho người mới

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

màn hình ma trận
Hướng dẫn làm bảng hiệu led ma trận 8×8 cho người mới
màn hình ma trận
Hướng dẫn làm bảng hiệu led ma trận 8×8 cho người mới

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.

Rate this post