Chúng tôi đã trình bày cách giao tiếp của bảng hiệu màn hình LED bảy ​​đoạn với vi điều khiển PIC trong hai phần: Lab 6 và Lab 11 . Hôm nay, chúng ta sẽ chuyển sang giao diện màn hình LED ma trận điểm. Ma trận chấm LED là phương tiện hiển thị thông tin rất phổ biến vì nó cho phép cả văn bản và hình ảnh tĩnh và động.

led
Làm bảng hiệu quảng cáo giá rẻ tại Nguyễn Long này nhé!

Có lẽ, bạn đã từng bắt gặp chúng tại các trạm xăng hiển thị giá xăng, hoặc ở những nơi công cộng và dọc theo đường cao tốc, hiển thị quảng cáo trên các bảng ma trận điểm lớn. Trong thí nghiệm này, chúng ta sẽ thảo luận về cấu trúc cơ bản của ma trận điểm LED đơn sắc (một màu) và giao diện của nó với một bộ vi điều khiển để hiển thị các ký tự và ký hiệu tĩnh.

Chúng tôi sẽ đề cập đến nội dung hoạt hình trong hướng dẫn tiếp theo. Tôi đang sử dụng vi điều khiển PIC18F2550 trên  StartUSB cho bảng PIC để trình diễn, nhưng kỹ thuật này có thể áp dụng cho bất kỳ bộ vi điều khiển nào khác có đủ chân I / O để điều khiển ma trận LED.

Lý thuyết về màn hình ma trận điểm LED

Trong màn hình ma trận điểm, nhiều đèn LED được nối với nhau theo hàng và cột. Điều này được thực hiện để giảm thiểu số lượng chân cần thiết để điều khiển chúng. Ví dụ: ma trận 8 × 8 đèn LED (được hiển thị bên dưới) sẽ cần 64 chân I / O, một chân cho mỗi pixel LED.

Bằng cách nối dây tất cả các cực dương với nhau theo hàng (từ R1 đến R8) và cực âm theo cột (C1 đến C8), số lượng chân I / O cần thiết giảm xuống còn 16. Mỗi đèn LED được đánh địa chỉ bằng số hàng và số cột của nó.

Trong hình bên dưới, nếu R4 được kéo lên cao và C3 được kéo xuống thấp, đèn LED ở hàng thứ tư và cột thứ ba sẽ được bật. Các ký tự có thể được hiển thị bằng cách quét nhanh các hàng hoặc cột. Hướng dẫn này sẽ thảo luận về phương pháp quét cột.

bảng hiệu quảng cáo
Làm bảng hiệu quảng cáo giá rẻ tại Nguyễn Long này nhé!

Ma trận LED được sử dụng trong thí nghiệm này có kích thước 5 × 7. Chúng ta sẽ tìm hiểu cách hiển thị các ký tự tĩnh ở định dạng 5 × 7 pixel tiêu chuẩn. Hình dưới đây cho thấy đèn LED nào sẽ được bật để hiển thị bảng chữ cái tiếng Anh ‘A’. 7 hàng và 5 cột được điều khiển thông qua các chân vi điều khiển. Bây giờ, hãy xem chi tiết nó hoạt động như thế nào.

Cách làm ma trận led

Giả sử, chúng ta muốn hiển thị bảng chữ cái A. Trước tiên, chúng ta sẽ chọn cột C1 (có nghĩa là C1 được kéo xuống thấp trong trường hợp này) và bỏ chọn các cột khác bằng cách chặn đường đi trên mặt đất của chúng (một cách thực hiện là kéo C2 qua C5 chân đến mức logic cao).

led
Làm bảng hiệu quảng cáo giá rẻ tại Nguyễn Long này nhé!

Bây giờ, cột đầu tiên đang hoạt động và bạn cần bật đèn LED trong các hàng từ R2 đến R7 của cột này, điều này có thể được thực hiện bằng cách áp dụng điện áp phân cực thuận cho các hàng này. Tiếp theo, chọn cột C2 (và bỏ chọn tất cả các cột khác) và áp dụng xu hướng chuyển tiếp cho R1 và R5, v.v.

Do đó, bằng cách quét nhanh qua cột (> 100 lần mỗi giây) và bật các đèn LED tương ứng trong mỗi hàng của cột đó, khả năng hiển thị liên tục xuất hiện và chúng tôi cảm nhận hình ảnh hiển thị như tĩnh.

Cách hoạt động của led

Bảng dưới đây cung cấp các mức logic được áp dụng cho R1 đến R7 cho mỗi cột để hiển thị bảng chữ cái ‘A’.

Bạn nên lưu ý rằng trên mỗi hàng, một chân chỉ cung cấp dòng điện cho một đèn LED tại một thời điểm. Nhưng một chân cột có thể phải làm chìm dòng điện từ nhiều hơn một đèn LED. Ví dụ, cột C1 sẽ có thể làm chìm dòng điện từ 6 đèn LED trong khi hiển thị bảng chữ cái ‘A’. 

Chân I / O của vi điều khiển không thể làm chìm quá nhiều dòng điện này, vì vậy cần phải có các dãy bóng bán dẫn bên ngoài. Tôi đang sử dụng vi mạch ULN2003A có bảy mảng bóng bán dẫn Darlington tích hợp sẵn (xem bên dưới).

Các đầu vào của ULN2003A hoạt động cao.

làm bảng hiệu
Làm bảng hiệu quảng cáo giá rẻ tại Nguyễn Long này nhé!

Điều này có nghĩa là các chân đầu vào phải được cung cấp mức logic cao để đưa các chân đầu ra tương ứng xuống đất. Sơ đồ của mảng bóng bán dẫn Darlington bên trong chip ULN2003A được hiển thị bên dưới.

Việc thiết lập mạch cho thí nghiệm này khá đơn giản. Bạn cần bảy 330? điện trở mắc nối tiếp với hàng từ R1 đến R7 để hạn chế dòng điện qua các đèn LED. Sau đó, các hàng được điều khiển bởi RB0 thông qua các chân RB6 của PIC18F2550.

Phần mềm

bảng hiệu
Làm bảng hiệu quảng cáo giá rẻ tại Nguyễn Long này nhé!

Phần chính của thử nghiệm này là quy trình phần mềm quét các cột và cung cấp các hàng với các giá trị thích hợp. Giá trị hàng cụ thể của cột cho các ký tự hiển thị có thể được xác định trong RAM hoặc được lưu trữ trong bộ nhớ chương trình trong trường hợp RAM trên bo mạch không đủ.

Trong mikroC, các biến được lưu trong RAM và các hằng được lưu trong bộ nhớ chương trình. Vì vậy, nếu PIC của bạn không có đủ RAM, bạn có thể xác định một mảng không đổi để lưu trữ các giá trị hàng sao cho một phần của bộ nhớ chương trình bị nó chiếm dụng để giải phóng RAM trên bo mạch.

PIC18F2550 có khá nhiều RAM (2 KB), vì vậy tôi đã sử dụng RAM để lưu trữ các giá trị hàng cho các bảng chữ cái từ A đến Z. Đây là cách tôi xác định nó trong mikroC,

Bảng chữ cái ngắn không dấu

[130] = {0x7e, 0x09, 0x09, 0x09, 0x7e, // A

0x7f, 0x49, 0x49, 0x49, 0x36, // B

0x3e, 0x41, 0x41, 0x41, 0x22,

0x7f, 0x41, 0x41,0x22, 0x1c,

0x7f, 0x49, 0x49, 0x49, 0x63,

0x7f, 0x09, 0x09, 0x09, 0x01,

0x3e, 0x41, 0x41, 0x49, 0x7a,

0x7f, 0x08, 0x08, 0x08, 0x7f,

0x00, 0x41, 0x7f, 0x41, 0x00, // I

0x20, 0x40, 0x41, 0x3f, 0x01,

0x7f, 0x08, 0x14, 0x22, 0x41,

0x7f, 0x40, 0x40, 0x40, 0x60,

0x7f, 0x02, 0x04, 0x02, 0x7f,

0x7f, 0x04, 0x08, 0x10, 0x7f,

0x3e, 0x41, 0x41, 0x41, 0x3e,

0x7f, 0x09, 0x09, 0x09, 0x06,

0x3e, 0x41, 0x51, 0x21, 0x5e,

0x7f, 0x09, 0x19, 0x29, 0x46,

0x46, 0x49, 0x49, 0x49, 0x31, // S

0x01, 0x01, 0x7f, 0x01, 0x01,

0x3f, 0x40, 0x40, 0x40, 0x3f,

0x1f, 0x20, 0x40, 0x20, 0x1f,

0x3f, 0x40, 0x30, 0x40, 0x3f,

0x63, 0x14, 0x08, 0x14, 0x63,

0x07, 0x08, 0x70, 0x08, 0x07,

0x61, 0x51, 0x49, 0x45, 0x43 // Z

};

Và đây là cách mikroC cho phép bạn lưu các mảng trong bộ nhớ chương trình.

const ký tự ngắn không dấu

[30] = {

0x24, 0x2A, 0x7f, 0x2A, 0x12, // $

0x08, 0x14, 0x22, 0x41, 0x00, // <

0x41, 0x22, 0x14, 0x08, 0x00, //>

0x14, 0x14, 0x14, 0x14, 0x14, // =

0x36, 0x49, 0x55, 0x22, 0x50, // &

0x44, 0x3c, 0x04, 0x7c, 0x44, // PI

};

Tôi đã viết một chương trình đơn giản bằng mikroC để hiển thị tuần tự các bảng chữ cái từ A đến Z và một số ký tự đặc biệt nữa.

Nếu bạn cần làm bảng hiệu quảng cáo 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.