Mục lục:

Ma trận LED nút bấm: 4 bước
Ma trận LED nút bấm: 4 bước

Video: Ma trận LED nút bấm: 4 bước

Video: Ma trận LED nút bấm: 4 bước
Video: Tự học Arduino bài 4: Điều khiển LED Matrix 2024, Tháng mười một
Anonim
Ma trận LED nút bấm
Ma trận LED nút bấm

Dự án này có thể được coi là một dự án Arduino giới thiệu khác, hơi nâng cao hơn so với dự án 'nhấp nháy đèn LED' điển hình của bạn. Dự án này kết hợp một ma trận LED, các nút nhấn, thanh ghi dịch chuyển (có thể lưu các chân trên bảng Arduino của bạn) và một khái niệm chính được gọi là ghép kênh. Tôi hy vọng bạn thấy hướng dẫn này khai sáng và thử thách bản thân để cải thiện nó!

Quân nhu

(1x) Arduino Uno

(5x) Nút ấn xúc giác

(2x) Tụ điện 0,1 uF

(2x) 1 tụ điện uF

(8x) Điện trở 1k

(5x) Điện trở 10k

(2x) thanh ghi dịch chuyển 74HC595

Dây nhảy

Dây đen

Dây điện màu đỏ

Bước 1: Bước 1: Tạo ma trận LED

Bước 1: Tạo ma trận LED
Bước 1: Tạo ma trận LED
Bước 1: Tạo ma trận LED
Bước 1: Tạo ma trận LED
Bước 1: Tạo ma trận LED
Bước 1: Tạo ma trận LED

Hướng dẫn tôi sử dụng để làm ma trận LED 8x8 trong dự án này có thể được tìm thấy ở đây. Có các cấu hình phổ biến cho ma trận LED:

a) Cực dương hàng chung

b) Cathode hàng chung

Vì tôi đã sử dụng cách sắp xếp Cathode Hàng chung của ma trận, tôi chủ yếu sẽ thảo luận về nó ở đây và bạn có thể mở rộng logic tương tự cho cách sắp xếp Anode Hàng Chung. Trong cách sắp xếp Cathode hàng chung, các cực âm của đèn LED (hoặc cực âm là chân ngắn hơn trên đèn LED) được kết nối với nhau thành hàng trong khi các cực dương (hoặc cực dương là chân dài hơn trên đèn LED) được kết nối với nhau theo cột. Để xác định một đèn LED cụ thể, hãy kéo hàng cực âm mà cực âm của đèn LED ở mức thấp và kéo cột cực dương mà cực dương của đèn LED ở mức cao.

Lưu ý: Khi tạo ma trận LED được hiển thị trong liên kết ở trên, hãy đảm bảo kết nối các cột anốt với điện trở 1k ohm trước khi áp dụng bất kỳ lượng điện áp nào cho các đèn LED.

Bước 2: Bước 2: Nối các nút bấm và thanh ghi Shift

Bước 2: Nối các nút bấm và thanh ghi dịch chuyển
Bước 2: Nối các nút bấm và thanh ghi dịch chuyển
Bước 2: Nối các nút bấm và thanh ghi dịch chuyển
Bước 2: Nối các nút bấm và thanh ghi dịch chuyển
Bước 2: Nối các nút bấm và thanh ghi dịch chuyển
Bước 2: Nối các nút bấm và thanh ghi dịch chuyển
Bước 2: Nối các nút bấm và thanh ghi dịch chuyển
Bước 2: Nối các nút bấm và thanh ghi dịch chuyển

Cách đấu dây cho các nút bấm và thanh ghi dịch chuyển được hiển thị ở trên. Tôi muốn lưu ý rằng các thanh ghi dịch chuyển trong sơ đồ mạch không hiển thị các chân nối đất (chân 8 của IC) và Vcc hoặc cấp nguồn (chân 16 của IC) cho các chip; chân nối đất được kết nối với chân GND của bảng Arduino và Vcc được kết nối với chân 5V của bảng Arduino. Chân Vcc của mỗi thanh ghi dịch chuyển cũng được kết nối với tụ điện 0,1uF nối đất.

Lưu ý: Các đầu ra của mỗi thanh ghi dịch chuyển được liệt kê là QA đến QH (bỏ qua QH *). Chúng được liệt kê theo từ bit quan trọng nhất (LSB) (đối với QA) đến bit quan trọng nhất (MSB) (đối với QH), tức là QA sẽ kiểm soát hàng hoặc cột thứ 0, v.v.

Bước 3: Bước 3: Tải lên mã

Mã điều khiển ma trận LED được đính kèm trong hướng dẫn này. Tôi đã cố gắng bình luận càng nhiều mã càng tốt để nó sẽ rất rõ ràng về cách thức hoạt động của chương trình. Cơ sở chính của chương trình là có một ma trận theo dõi đèn LED nào nên bật hoặc tắt. Để các đèn LED khác nhau hiển thị chính xác mà không vô tình bật các điốt không mong muốn là sử dụng một khái niệm gọi là ghép kênh. Ghép kênh về cơ bản là chiếu sáng các đèn LED riêng lẻ trong hàng cụ thể trong khi tất cả các đèn LED khác ở các hàng khác, sau đó làm tương tự cho các hàng còn lại. Bí quyết là nếu các đèn LED quay vòng qua các hàng đủ nhanh, mắt của bạn có thể biết rằng các hàng riêng lẻ đang được chiếu sáng tại một thời điểm. Nếu bạn muốn khám phá thêm những cách có thể đánh lừa thị giác bằng đèn LED, bạn có thể muốn xem xét khái niệm về sự bền bỉ của thị lực (có thể dễ dàng tìm kiếm trên Google hoặc Các trang hướng dẫn).

Cách các cột cực dương và hàng cực âm được cập nhật thông qua một chức năng do người dùng xác định có tên là 'UpdateShiftRegisters'. Đầu tiên, chức năng này xoay chốt chốt, điều khiển xem có một byte mới (8 bit) được gửi đến đầu ra hay không, ở mức thấp để không có thay đổi đối với đầu ra trong khi các bit mới đang được ghi vào chip. Sau đó, sử dụng một chức năng Arduino tích hợp có tên là 'ShiftOut', đặc biệt xử lý việc gửi dữ liệu đến các thanh ghi dịch chuyển, chương trình ghi bất kỳ hàng nào (cực âm) sẽ thấp và cột (cực dương) nào phải cao. Cuối cùng, chốt chốt được kéo lên cao để cập nhật đầu ra (đèn LED).

Bước 4: Thông tin / Tài nguyên bổ sung

Dưới đây là một số liên kết đến các trang web hoặc sách có thể cung cấp thêm thông tin về dự án này:

learn.adafruit.com/adafruit-arduino-lesson-4-eight-leds/arduino-code

www.arduino.cc/en/tutorial/ShiftOut

www.ti.com/lit/ds/symlink/sn74hc595.pdf

www.youtube.com/watch?v=7VYxcgqPe9A

www.youtube.com/watch?v=VxMV6wGS3NY

Bắt đầu với Arduino, Phiên bản thứ 2 của Massimo Banzi

Đề xuất: