[Matrix LED] Bài 11: Tìm hiểu module LED ma trận P10 Full Color

led ma tran p10

Module led ma trận P10 Full color 32×16 gồm 32 led hàng ngang và 16 led hàng dọc, bản thân mỗi led bên trong có 3 led với 3 màu RGB, mỗi pixel cách nhau 1cm. Tổng số led RGB là 32×16=512 LED RGB

Ảnh mặt trước module
Ảnh mặt sau module
Sơ đồ kết nối đầu vào ( đầu ra tương tự)

Chức năng của các chân

R1: Chân data cho màu đỏ của 8 hàng led bên trên
R2: Chân data cho màu đỏ của 8 hàng led phía dưới
G1: Chân data cho màu xanh lá của 8 hàng led bên trên
G2: Chân data cho màu xanh lá của 8 hàng led phía dưới
B1: Chân data cho màu xanh dương của 8 hàng led bên trên
B2: Chân data cho màu xanh dương của 8 hàng led phía dưới
CLK: Chân đẩy data vào ic ghi dịch
LAT: Chân chốt data ( đẩy data lưu trong ic ghi dịch ra ngoài led)
OE: Chân cho phép bảng led sáng ( OE=0 thì bảng led được phép sáng, OE=1 thì bảng led auto tắt)
A,B,C: 3 chân của ic vào 3 ra 8, tức 3 chân dùng để quét led, cho phép hàng nào sáng. Với 3 chân ABC ta điều khiển đc 8 hàng độc lập, nhưng module P10 có tới 16 hàng => trong 1 thời điểm có 2 hàng cùng sáng => module này quét kiểu 2/16 = 1/8
=> Trong 1 thời điểm số led RGB ta có thể điều khiển là 512 x 1/8 = 64 LED RGB

Chiều đi của data

Với P10 1 màu, data đi theo chiều zigzac, thì P10 FULL, data đi theo đường thẳng

Các bạn có thể thấy, module này chia ra làm 2 nửa theo chiều ngang, với dữ liệu của 8 hàng trên do RGB1 quyết định, còn 8 hàng dưới do RGB2 quyết định. Chân ABC sẽ quyết định hàng nào trong 8 hàng của cả 2 nửa được sáng.

Trong 1 thời điểm sẽ có 2 hàng được phép sáng ( do ABC quyết định)

Demo điều khiển led ma trận P10 7 màu (màu 1bit)

Cũng giống như P10 mình sẽ tạo 1 mảng 2 chiều với 1bit là 1 led

Tuy nhiên mỗi led có tới 3 màu RGB nên mình sẽ thêm 1 chiều màu nữa

Chương trình truyền data có thể viết như sau:

Chương trình chọn hàng cần sáng:

Chương trình bỏ trong ngắt timer

Công việc của bạn là xây dựng lại trên con vi điều khiển mà các bạn xài, thế là xong lớp dưới ! Bây giờ xây dựng 1 vài hàm graphic để thao tác lên buffer nhé

Vẫn là hàm set_px cơ bản

Ví dụ gọi :

Kêt quả

Hiển thị chữ

Trong bài viết số 4 mình đã tạo sẵn 1 bộ font và hàm để vẽ font ra led, bây giờ chúng ta sẽ sửa lại hàm này 1 chút là có thêm tham số color nữa nhé

Giờ hãy thử in chữ A ra màn hình

Và đây là kết quả

Thử sửa lại thành màu hồng nhé

Tiếp tục thêm hàm gửi cả chuỗi nữa:

Tiếp tục, bây giờ mình muốn mỗi chữ in ra 1 màu khác nhau thì sao nhỉ ? Cách làm của mình là khi truyền vào chuỗi mình sẽ truyền thêm 1 mảng chứa màu chứ không phải 1 màu nữa !

Chúng ta sẽ gọi hàm này như sau:

Thật tuyệt vời phải không :). Mình kiếm mãi mới được tấm P10 để demo cho các bạn xem, thấy hay thì tội gì không cho mình 1 like nhở 🙁

 

Từ tác giả:

Có rất nhiều bạn inbox trực tiếp cho mình để hỏi các vấn đề giống nhau, các bạn vui lòng để lại thắc mắc dưới phần bình luận, mình sẽ phản hồi trong vòng 24h. Điều này sẽ giúp những người cùng thắc mắc có thể tự đọc, tìm hiểu mà không cần mất công hỏi lại mình. Like và comment cũng là một cách rất tốt để Google đánh giá cao bài viết và cho hiển thị lên thanh tìm kiếm, điều này sẽ giúp các bài viết tiếp cận được những người cần đến nó !

Nếu thấy các bài viết thật sự có ích đối với bạn, các bạn có thể donate cho mình tại tài khoản:

Giới thiệu Đào Nguyện 28 bài viết
DIY,chế cháo, viết blog chia sẽ kiến thức về lập trình,điện tử - IoT. Rất mong được giao lưu, kết bạn với các bạn cùng đam mê. Địa chỉ Facebook: https://www.facebook.com/nguyendao207

2 bình luận

Để lại comment nếu có thắc mắc, mình sẽ phản hồi trong 24h