Mục lục:

Lắp ráp và kiểm tra ma trận chấm LED MAX7219: 6 bước (có hình ảnh)
Lắp ráp và kiểm tra ma trận chấm LED MAX7219: 6 bước (có hình ảnh)

Video: Lắp ráp và kiểm tra ma trận chấm LED MAX7219: 6 bước (có hình ảnh)

Video: Lắp ráp và kiểm tra ma trận chấm LED MAX7219: 6 bước (có hình ảnh)
Video: #VIXULY GIỚI THIỆU VỀ LED MA TRẬN, CÁCH KẾT NỐI, LẬP TRÌNH, MÔ PHỎNG 2024, Tháng bảy
Anonim
Image
Image
Kiểm tra gói hàng
Kiểm tra gói hàng

Màn hình ma trận điểm là một thiết bị hiển thị có chứa các điốt phát sáng được căn chỉnh dưới dạng ma trận. Chuyển động cuộn. Màn hình ma trậnot được sản xuất theo nhiều kích thước khác nhau như 5x7, 8x8, 16x8, 128x16, 128x32 và 128x64 trong đó các con số đại diện cho đèn LED trong các hàng và cột, Ngoài ra, các màn hình này có các màu khác nhau như Đỏ, Xanh lá cây, Vàng, Xanh lam, Màu cam, màu trắng.

Trong phần Có thể hướng dẫn này, tôi sẽ đi qua giao tiếp Ma trận chấm 8x8 có trình điều khiển MAX7219 với Arduino Uno. Hãy bắt đầu.

Quân nhu

MAX7219

Bước 1: Kiểm tra gói hàng

Như bạn có thể thấy, tôi có phiên bản smt của bảng trình điều khiển, điều rất quan trọng là phải xác minh từng thành phần cần thiết vì các thành phần smd có kích thước rất nhỏ và bạn có thể dễ dàng đánh mất chúng. Ngoài ra, có sẵn phiên bản nhúng trực tuyến nhưng tôi đã sử dụng phiên bản smt cho kích thước của nó.

Bước 2: Một chút về ma trận chấm cụ thể này

Một chút về ma trận chấm cụ thể này
Một chút về ma trận chấm cụ thể này

mô-đun đơn có thể điều khiển cực âm chung ma trận điểm 8x8.

Điện áp hoạt động: 5 v

Kích thước: dài 3,2 cm X rộng 3,2 cm X cao 1,3 cm, lỗ có bốn vít, đường kính 3 mm

Các mô-đun có giao diện đầu vào và đầu ra, hỗ trợ xếp tầng nhiều mô-đun.

Các thiết bị đầu cuối IN và OUT dữ liệu được chỉ định trên mô-đun.

Bước 3: Trình điều khiển MAX7219

Trình điều khiển MAX7219
Trình điều khiển MAX7219
Trình điều khiển MAX7219
Trình điều khiển MAX7219

MAX7219 là một vi mạch được thiết kế để điều khiển MATRIX LED 8x8. IC là trình điều khiển màn hình cực âm chung đầu vào nối tiếp (Cực âm chung) giao tiếp bộ vi xử lý (hoặc vi điều khiển) với màn hình LED số 7 đoạn lên đến 8 chữ số, hiển thị biểu đồ thanh hoặc 64 đèn LED riêng lẻ.

Các tính năng và thông số kỹ thuật

Dải điện áp hoạt động: +4.0 đến + 5.5V

Điện áp hoạt động được đề xuất: + 5V

Điện áp cung cấp tối đa: 6V

Dòng điện tối đa được phép rút qua mỗi chân phân đoạn: 100mA

Dòng điện tối đa cho phép qua mỗi chân nối đất DIGIT: 500mA

Sự tiêu thụ ít điện năng

Thời gian trễ từ dữ liệu đến phân đoạn: 2,2mSec

Nhiệt độ hoạt động: 0 ° C đến + 70 ° C

Nhiệt độ bảo quản: -65 ° C đến + 150 ° C

Bước 4: Mạch

Mạch
Mạch
Mạch
Mạch

Mạch khá đơn giản và có thể được xây dựng bằng cách sử dụng dây nối từ nam đến nữ. Chỉ cần làm theo sơ đồ chân và xây dựng mạch. Sau đó, bạn có thể lắp ráp nó trên PCB nếu bạn đang tạo ứng dụng vĩnh viễn cho Ma trận.

Cấu hình Pin như sau:

  • Vcc đến Chân 5V của Arduino.
  • Gnd đến Gnd Pin của Arduino.
  • DIN đến Chân số 12 của Arduino.
  • CS đến Chân số 11 của Arduino
  • CLK đến Chân số 10 của Arduino.

Bước 5: Mã

Ở đây trong Tài liệu hướng dẫn này, tôi sẽ cung cấp cho bạn hai mã khác nhau. Người ta sẽ tạo ra một số bảng chữ cái tiếng Anh và mặt cười trên Ma trận. Cái còn lại sẽ làm cho tất cả 64 đèn LED sáng lên từng cái một. Bạn phải sử dụng thư viện lledcontrol để làm cho nó hoạt động.

Đây là mã cho bảng chữ cái tiếng Anh và nụ cười

#include int DIN = 12; int CS = 11; int CLK = 10; byte e [8] = {0x7C, 0x7C, 0x60, 0x7C, 0x7C, 0x60, 0x7C, 0x7C}; byte d [8] = {0x78, 0x7C, 0x66, 0x66, 0x66, 0x66, 0x7C, 0x78}; byte u [8] = {0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7E, 0x7E}; byte c [8] = {0x7E, 0x7E, 0x60, 0x60, 0x60, 0x60, 0x7E, 0x7E}; byte tám [8] = {0x7E, 0x7E, 0x66, 0x7E, 0x7E, 0x66, 0x7E, 0x7E}; byte s [8] = {0x7E, 0x7C, 0x60, 0x7C, 0x3E, 0x06, 0x3E, 0x7E}; dấu chấm byte [8] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18}; byte o [8] = {0x7E, 0x7E, 0x66, 0x66, 0x66, 0x66, 0x7E, 0x7E}; byte m [8] = {0xE7, 0xFF, 0xFF, 0xDB, 0xDB, 0xDB, 0xC3, 0xC3}; LedControl lc = LedControl (DIN, CLK, CS, 0); void setup () {lc.shutdown (0, false); // MAX72XX đang ở chế độ tiết kiệm năng lượng khi khởi động lc.setIntensity (0, 15); // Đặt độ sáng thành giá trị lớn nhất lc.clearDisplay (0); // và xóa hiển thị} void loop () {byte smile [8] = {0x3C, 0x42, 0xA5, 0x81, 0xA5, 0x99, 0x42, 0x3C}; byte trung tính [8] = {0x3C, 0x42, 0xA5, 0x81, 0xBD, 0x81, 0x42, 0x3C}; byte cau mày [8] = {0x3C, 0x42, 0xA5, 0x81, 0x99, 0xA5, 0x42, 0x3C}; printByte (nụ cười); chậm trễ (1000); printByte (trung tính); chậm trễ (1000); printByte (cau mày); chậm trễ (1000); printEduc8s (); lc.clearDisplay (0); chậm trễ (1000); } void printEduc8s () {printByte (e); chậm trễ (1000); printByte (d); chậm trễ (1000); printByte (u); chậm trễ (1000); printByte (c); chậm trễ (1000); printByte (tám); chậm trễ (1000); printByte (các); chậm trễ (1000); printByte (dấu chấm); chậm trễ (1000); printByte (c); chậm trễ (1000); printByte (o); chậm trễ (1000); printByte (m); chậm trễ (1000); } void printByte (byte character ) {int i = 0; for (i = 0; i <8; i ++) {lc.setRow (0, i, character ); }}

và mã để kiểm tra tất cả 64 đèn LED

// Chúng ta luôn phải bao gồm thư viện # include "LedControl.h"

/*

Bây giờ chúng ta cần một LedControl để làm việc. ***** Các số pin này có thể sẽ không hoạt động với phần cứng của bạn ***** pin 12 được kết nối với DataIn chân 10 được kết nối với CLK chân 11 được kết nối với TẢI Chúng tôi chỉ có một MAX72XX duy nhất. * / LedControl lc = LedControl (12, 11, 10, 1);

/ * chúng tôi luôn đợi một chút giữa các lần cập nhật màn hình * /

thời gian trễ dài không dấu = 100;

void setup () {

/ * MAX72XX đang ở chế độ tiết kiệm năng lượng khi khởi động, chúng tôi phải thực hiện một cuộc gọi đánh thức * / lc.shutdown (0, false); / * Đặt độ sáng thành giá trị trung bình * / lc.setIntensity (0, 8); / * và xóa màn hình * / lc.clearDisplay (0); }

/*

Phương thức này sẽ lần lượt hiển thị các ký tự của từ "Arduino" trên ma trận. (bạn cần ít nhất 5x7 led để xem toàn bộ ký tự) * / void writeArduinoOnMatrix () {/ * đây là dữ liệu cho các ký tự * / byte a [5] = {B01111110, B10001000, B10001000, B10001000, B01111110}; byte r [5] = {B00111110, B00010000, B00100000, B00100000, B00010000}; byte d [5] = {B00011100, B00100010, B00100010, B00010010, B11111110}; byte u [5] = {B00111100, B00000010, B00000010, B00000100, B00111110}; byte i [5] = {B00000000, B00100010, B10111110, B00000010, B00000000}; byte n [5] = {B00111110, B00010000, B00100000, B00100000, B00011110}; byte o [5] = {B00011100, B00100010, B00100010, B00100010, B00011100};

/ * bây giờ hiển thị từng cái một với độ trễ nhỏ * /

lc.setRow (0, 0, a [0]); lc.setRow (0, 1, a [1]); lc.setRow (0, 2, a [2]); lc.setRow (0, 3, a [3]); lc.setRow (0, 4, a [4]); sự chậm trễ (delaytime); lc.setRow (0, 0, r [0]); lc.setRow (0, 1, r [1]); lc.setRow (0, 2, r [2]); lc.setRow (0, 3, r [3]); lc.setRow (0, 4, r [4]); sự chậm trễ (delaytime); lc.setRow (0, 0, d [0]); lc.setRow (0, 1, d [1]); lc.setRow (0, 2, d [2]); lc.setRow (0, 3, d [3]); lc.setRow (0, 4, d [4]); sự chậm trễ (delaytime); lc.setRow (0, 0, u [0]); lc.setRow (0, 1, u [1]); lc.setRow (0, 2, u [2]); lc.setRow (0, 3, u [3]); lc.setRow (0, 4, u [4]); sự chậm trễ (delaytime); lc.setRow (0, 0, i [0]); lc.setRow (0, 1, i [1]); lc.setRow (0, 2, i [2]); lc.setRow (0, 3, i [3]); lc.setRow (0, 4, i [4]); sự chậm trễ (delaytime); lc.setRow (0, 0, n [0]); lc.setRow (0, 1, n [1]); lc.setRow (0, 2, n [2]); lc.setRow (0, 3, n [3]); lc.setRow (0, 4, n [4]); sự chậm trễ (delaytime); lc.setRow (0, 0, o [0]); lc.setRow (0, 1, o [1]); lc.setRow (0, 2, o [2]); lc.setRow (0, 3, o [3]); lc.setRow (0, 4, o [4]); sự chậm trễ (delaytime); lc.setRow (0, 0, 0); lc.setRow (0, 1, 0); lc.setRow (0, 2, 0); lc.setRow (0, 3, 0); lc.setRow (0, 4, 0); sự chậm trễ (delaytime); }

/*

Chức năng này làm sáng một số Led liên tiếp. Mẫu sẽ được lặp lại trên mỗi hàng. Mẫu sẽ nhấp nháy cùng với số hàng. hàng số 4 (chỉ số == 3) sẽ nhấp nháy 4 lần, v.v. * / void rows () {for (int row = 0; row <8; row ++) {delay (thời gian trễ); lc.setRow (0, hàng, B10100000); sự chậm trễ (delaytime); lc.setRow (0, hàng, (byte) 0); for (int i = 0; i

/*

Chức năng này làm sáng một số Led trong một cột. Mẫu sẽ được lặp lại trên mỗi cột. Mẫu sẽ nhấp nháy cùng với số cột. cột số 4 (chỉ số == 3) sẽ nhấp nháy 4 lần, v.v. * / void column () {for (int col = 0; col <8; col ++) {delay (delaytime); lc.setColumn (0, col, B10100000); sự chậm trễ (delaytime); lc.setColumn (0, col, (byte) 0); for (int i = 0; i

/*

Chức năng này sẽ làm sáng mọi Led trên ma trận. Đèn led sẽ nhấp nháy cùng với số hàng. hàng số 4 (chỉ số == 3) sẽ nhấp nháy 4 lần, v.v. * / void single () {for (int row = 0; row <8; row ++) {for (int col = 0; col <8; col ++) { sự chậm trễ (delaytime); lc.setLed (0, row, col, true); sự chậm trễ (delaytime); for (int i = 0; i

void loop () {

writeArduinoOnMatrix (); hàng (); cột(); Độc thân(); }

Bước 6: Đầu ra

Image
Image
Đầu ra
Đầu ra
Đầu ra
Đầu ra
Đầu ra
Đầu ra

Xem toàn bộ video tại đây: -MAX7219 8x8 LED MATRIX LẮP RÁP VÀ KIỂM TRA bằng ARDUINO

Chà, tất cả công việc khó khăn này, chắc chắn sẽ được đền đáp xứng đáng khi bạn nhìn thấy kết quả. Nó đáng giá !!

Đăng ký kênh youtube của tôi: -Creative Stuff

Đề xuất: