Mục lục:

Bộ đếm sử dụng MAX7221: 4 bước
Bộ đếm sử dụng MAX7221: 4 bước

Video: Bộ đếm sử dụng MAX7221: 4 bước

Video: Bộ đếm sử dụng MAX7221: 4 bước
Video: [SPI] MAX7221 (Max7219-later) 2024, Tháng bảy
Anonim
Bộ đếm sử dụng MAX7221
Bộ đếm sử dụng MAX7221

Tạo bộ đếm tăng lên khi nhấn một nút bằng MAX7221.

Bước 1: Các bộ phận

MAX7221 hoặc MAX7219

Chuyển

4 Màn hình 7 đoạn (cực âm chung)

2 Điện trở: 10k và 9.53k (Tôi đã sử dụng 9.1k và nó vẫn hoạt động)

Arduino

Bước 2: Xây dựng mạch

Xây dựng mạch
Xây dựng mạch
Xây dựng mạch
Xây dựng mạch
Xây dựng mạch
Xây dựng mạch

Tôi chỉ viết ra các ghim mà tôi đã sử dụng, bạn có thể tìm thấy bố cục ghim hoàn chỉnh trên biểu dữ liệu hoặc tôi đính kèm nó. Đảm bảo tra cứu Hiển thị 7 phân đoạn của bạn vì nó có thể khác với của tôi nhưng quy trình thì giống nhau.

1. Kết nối chữ số 0 - 3 trên MAX7221 với chữ số 1 - 4 trên màn hình. Chữ số TỐI ĐA 0 kết nối với chữ số 1 của màn hình, v.v … Màn hình chỉ độc đáo và bắt đầu từ 1 thay vì 0.

2. Kết nối Phân đoạn A - G trên MAX7221 với Phân đoạn A - G trên màn hình.

3. Cấp nguồn và nối đất cho MAX. VCC đi đến chân 19. Điện trở 10k cũng được kết nối với chân 19 và 18. Nối đất vào chân 4 và 9.

4. MAX7221 giao tiếp với Arduino qua SPI (Giao diện ngoại vi nối tiếp). Trong trường hợp này, chỉ cần 3 dây vì tôi không sử dụng MISO (Master In Slave Out). Trên MAX7221 kết nối chân 1 (Din) với Arduino, trong trường hợp của tôi, tôi đã sử dụng chân 12. Đây là MOSI (Master Out Slave In) của bạn hoặc dữ liệu. Chân 12 trên MAX là CS (Đầu vào Chọn chip) và là cách dữ liệu được tải vào Thanh ghi Shift, tôi đã kết nối chân này với chân 9 trên Arduino. Kết nối cuối cùng là CLK là chân 13 trên MAX, tôi đã kết nối này với chân 10 trên Arduino.

Đảm bảo cung cấp nguồn và nối đất qua Arduino bằng cách sử dụng 5 volt. Tôi đã gặp phải vấn đề trong đó Arduino của tôi không cung cấp đủ năng lượng cho bảng mạch của tôi.

Đây là cho Biểu dữ liệu MAX7221. Ngoài ra những hình ảnh đến từ đâu.

www.mouser.com/datasheet/2/256/max7219-max…

Bước 3: Công tắc

Công tắc
Công tắc

Tôi đã nối dây chuyển đổi từ Sơ đồ ở trên. Tìm thấy tại

Tôi đã sử dụng chân 8 trên Arduino để điều khiển công tắc và một điện trở 10k.

Bước 4: Mã

Tôi đã sử dụng thư viện LedControl.h được tìm thấy trên GitHub và mã cơ bản của chúng để bật MAX7221. Sau đó, tôi đã sửa đổi mã để đếm từ 0 - 9999 khi nút đang được nhấn.

#include "LedControl.h"

nút int = 8;

LedControl lc = LedControl (12, 10, 9, 1);

void setup () {

pinMode (nút, INPUT);

lc.shutdown (0, sai); // MAX7221 đang ở chế độ tiết kiệm năng lượng, vì vậy chúng tôi phải đánh thức nó

lc.setIntensity (0, 15); // Đặt độ sáng, tối đa 15

lc.clearDisplay (0); // xóa màn hình

}

void loop () {

int state = digitalRead (nút);

int i = 0;

int j = 0;

int k = 0;

int l = 0;

trong khi (1) {

state = digitalRead (nút);

trong khi (trạng thái == 1) {

state = digitalRead (nút);

lc.setDigit (0, 3, i, false);

i ++;

chậm trễ (100); // bạn có thể lộn xộn với điều này

nếu (tôi == 10) {

i = 0;

j ++;

nếu (j == 10) {

j = 0;

k ++;

nếu (k == 10) {

k = 0;

l ++;

nếu (l == 10) {

trong khi (1) {

lc.setRow (0, 0, 0x3E); // khi hiển thị đạt đến 9999 nó sẽ hiển thị U - 1

lc.setRow (0, 1, 0x1); // Theo giá trị thập phân Hexi

lc.setRow (0, 2, 0x1);

lc.setDigit (0, 3, 1, false);

}

}

lc.setDigit (0, 0, l, false);

}

lc.setDigit (0, 1, k, false);

}

lc.setDigit (0, 2, j, false);

}

}

}

}

Đề xuất: