- Ma trận màn hình LED P10
- Các thành phần cần thiết cho Bảng điểm Arduino
- Sơ đồ mạch cho Bảng điểm Arduino
- Giải thích mã bảng điểm Arduino
Bảng điểm điện tử là một trong những tiện ích quan trọng nhất mà ai cũng có thể có trong bất kỳ giải đấu thể thao nào. Bảng điểm thủ công cũ sử dụng các phương pháp thông thường rất tốn thời gian và dễ xảy ra lỗi, do đó bảng điểm được vi tính hóa trở nên cần thiết khi đơn vị hiển thị cần được thay đổi trong thời gian thực. Đây là lý do tại sao trong dự án này, chúng tôi sẽ xây dựng một bảng điểm không dây được điều khiển bằng Bluetooth, trong đó chúng tôi có thể thay đổi điểm số trên bảng chỉ bằng cách sử dụng một ứng dụng Android. Bộ não của dự án này là Arduino Nano và đối với phần hiển thị, chúng tôi sẽ sử dụng ma trận LED P10 để hiển thị điểm từ xa trong thời gian thực.
Ma trận màn hình LED P10
Một P10 LED Matrix Display là cách tốt nhất có sẵn để tạo ra một bảng LED để sử dụng ngoài trời hoặc trong nhà. Bảng điều khiển này có tổng cộng 512 đèn LED độ sáng cao được gắn trên một vỏ nhựa được thiết kế để có kết quả hiển thị tốt nhất. Nó cũng đi kèm với xếp hạng IP65 cho khả năng chống thấm nước, giúp nó hoàn hảo để sử dụng ngoài trời. Với điều này, bạn có thể làm một bảng hiệu LED lớn bằng cách kết hợp bất kỳ số lượng bảng nào như vậy trong bất kỳ cấu trúc hàng và cột nào.
Mô-đun của chúng tôi có kích thước 32 * 16, có nghĩa là có 32 đèn LED trong mỗi hàng và 16 đèn LED trong mỗi cột. Vì vậy, có tổng cộng 512 đèn LED hiện diện trong mỗi bảng hiệu đèn led. Ngoài ra, nó có xếp hạng IP65 cho khả năng chống thấm nước, nó có thể được cung cấp bởi một nguồn điện 5V duy nhất, nó có góc nhìn rất rộng và độ sáng có thể lên đến 4500 nits. Vì vậy, bạn sẽ có thể nhìn thấy nó rõ ràng trong ánh sáng ban ngày. Trước đây, chúng tôi cũng đã sử dụng Màn hình P10 này với Arduino để xây dựng một Bảng LED đơn giản.
Mô tả chân của Ma trận LED P10 :
Bảng hiển thị LED này sử dụng đầu thư 10 chân để kết nối đầu vào và đầu ra, trong phần này, chúng tôi đã mô tả tất cả các chân cần thiết của mô-đun này. Ngoài ra, bạn có thể thấy có một đầu nối 5V bên ngoài ở giữa mô-đun được sử dụng để kết nối nguồn điện bên ngoài với bo mạch.
- Kích hoạt: Chân này được sử dụng để điều khiển độ sáng của bảng LED, bằng cách cung cấp xung PWM cho nó.
- A, B: Chúng được gọi là các chân chọn đa kênh. Họ lấy đầu vào kỹ thuật số để chọn bất kỳ hàng ghép nào.
- Đồng hồ dịch chuyển (CLK), Đồng hồ lưu trữ (SCLK) và Dữ liệu: Đây là các chân điều khiển thanh ghi dịch chuyển bình thường. Ở đây, một thanh ghi ca 74HC595 được sử dụng.
Giao diện mô-đun hiển thị LED P10 với Arduino:
Kết nối mô-đun hiển thị ma trận P10 với Arduino là một quá trình rất đơn giản, trong mạch của chúng tôi, chúng tôi đã cấu hình chân 9 của Arduino là chân Bật, chân 6 là chân A, chân 7 là chân B, chân 13 là CLK, chân 8 là SCLK, Pin 11 là DATA, và cuối cùng Pin GND là chân GND cho mô-đun và Arduino, bảng đầy đủ bên dưới giải thích rõ về cấu hình chân.
Mô-đun LED P10 |
Arduino UNO |
BẬT |
9 |
A |
6 |
B |
7 |
CLK |
13 |
SCLK |
số 8 |
DỮ LIỆU |
11 |
GND |
GND |
Lưu ý: Kết nối đầu cuối nguồn của mô-đun P10 với nguồn điện 5V bên ngoài, vì 512 đèn LED sẽ tiêu thụ rất nhiều năng lượng. Bạn nên kết nối nguồn điện một chiều 5V, 3 Amp với một khối duy nhất của mô-đun LED P10. Nếu bạn đang có kế hoạch kết nối nhiều mô-đun số hơn, thì hãy tăng dung lượng SMPS của bạn cho phù hợp.
Các thành phần cần thiết cho Bảng điểm Arduino
Vì đây là một dự án rất đơn giản, các yêu cầu về thành phần rất chung chung, danh sách các thành phần bắt buộc được hiển thị bên dưới, bạn sẽ có thể tìm thấy tất cả các vật liệu được liệt kê trong cửa hàng sở thích tại địa phương của bạn.
- Arduino Nano
- Màn hình ma trận LED P10
- Breadboard
- 5V, 3 AMP SMPS
- Mô-đun Bluetooth HC-05
- Kết nối dây
Sơ đồ mạch cho Bảng điểm Arduino
Sơ đồ cho Bảng điểm Arduino LED được hiển thị bên dưới vì dự án này rất đơn giản, tôi đã sử dụng fritzing phần mềm phổ biến để phát triển sơ đồ.
Hoạt động của mạch rất đơn giản, chúng ta có một ứng dụng Android và một mô-đun Bluetooth, để giao tiếp thành công với mô-đun Bluetooth, bạn phải ghép nối mô-đun HC-05 với ứng dụng Android. Khi chúng tôi đã kết nối, chúng tôi có thể gửi chuỗi mà chúng tôi muốn hiển thị, sau khi chuỗi được gửi, Arduino sẽ xử lý chuỗi và chuyển đổi nó thành tín hiệu mà điện trở dịch chuyển 74HC595 bên trong có thể hiểu được, sau khi dữ liệu được gửi đến ca điện trở, nó đã sẵn sàng để hiển thị.
Giải thích mã bảng điểm Arduino
Sau khi hoàn thành thành công quá trình thiết lập phần cứng, bây giờ là lúc lập trình Arduino Nano. Mô tả từng bước của mã được đưa ra dưới đây. Ngoài ra, bạn có thể nhận mã Bảng điểm Arduino đầy đủ ở cuối Hướng dẫn này.
Trước hết, chúng ta cần bao gồm tất cả các thư viện. Chúng tôi đã sử dụng Thư viện DMD.h để điều khiển màn hình led P10. Bạn có thể tải xuống và bao gồm nó từ liên kết GitHub đã cho. Sau đó, bạn cần bao gồm Thư viện TimerOne.h, sẽ được sử dụng để lập trình ngắt trong mã của chúng tôi.
Có nhiều mặt trước trong thư viện này, chúng tôi đã sử dụng “ Arial_black_16 ” cho dự án này.
#include
Trong bước tiếp theo, số hàng và cột được xác định cho bảng ma trận LED của chúng tôi. Chúng tôi chỉ sử dụng một mô-đun trong dự án này, vì vậy cả giá trị ROW và giá trị COLUMN đều có thể được xác định là 1.
#define ROW 1 #define COLUMN 1 #define FONT Arial_Black_16 DMD led_module (ROW, COLUMN);
Sau đó, tất cả các biến được sử dụng trong mã được xác định. Một biến ký tự được sử dụng để nhận dữ liệu nối tiếp từ Ứng dụng Android, hai giá trị số nguyên được sử dụng để lưu trữ điểm số và một mảng được xác định để lưu trữ dữ liệu cuối cùng sẽ được hiển thị trên Ma trận.
đầu vào char; int a = 0, b = 0; cờ int = 0; char cstr1;
Hàm scan_module () được định nghĩa, liên tục kiểm tra mọi dữ liệu đến từ Arduino Nano thông qua SPI. Nếu có, thì nó sẽ kích hoạt một ngắt để thực hiện các sự kiện nhất định như được xác định bởi người dùng trong chương trình.
void scan_module () { led_module.scanDisplayBySPI (); }
Bên trong setup (), bộ đếm thời gian được khởi tạo và ngắt được gắn vào hàm scan_module, đã được thảo luận trước đó. Ban đầu, màn hình bị xóa bằng chức năng màn hình rõ ràng (true), có nghĩa là tất cả các pixel được xác định là TẮT.
Trong thiết lập, giao tiếp nối tiếp cũng được bật bằng cách sử dụng chức năng Serial.begin (9600) trong đó 9600 là tốc độ truyền cho giao tiếp Bluetooth.
void setup () { Serial.begin (9600); Timer1.initialize (2000); Timer1.attachInterrupt (scan_module); led_module.clearScreen (true); }
Ở đây, tính khả dụng của dữ liệu nối tiếp được kiểm tra, nếu có dữ liệu hợp lệ đến từ Arduino hay không. Dữ liệu nhận được từ Ứng dụng được lưu trữ trong một biến.
if (Serial.available ()> 0) { flag = 0; đầu vào = Serial.read ();
Sau đó, giá trị nhận được được so sánh với biến xác định trước. Ở đây, trong ứng dụng Android, hai nút được đưa ra để chọn điểm số cho cả hai đội. Khi nhấn nút 1, Ký tự 'a' được truyền đến Arduino và khi nhấn nút 2, Ký tự 'b' được truyền tới Arduino. Do đó, trong phần này, dữ liệu này được khớp và nếu khớp, thì các giá trị điểm tương ứng sẽ được tăng lên như được hiển thị trong mã.
if (input == 'a' && flag == 0) { flag = 1; a ++; } else if (input == 'b' && flag == 0) { flag = 1; b ++; } khác;
Sau đó, dữ liệu nhận được được chuyển thành Mảng ký tự, vì hàm ma trận P10 chỉ có khả năng hiển thị kiểu dữ liệu ký tự. Đây là lý do tại sao tất cả các biến được chuyển đổi và nối thành một mảng ký tự.
(String ("HOME:") + String (a) + String ("-") + String ("AWAY:") + String (b)). ToCharArray (cstr1, 50);
Sau đó, để hiển thị thông tin trong mô-đun, phông chữ được chọn bằng cách sử dụng hàm select (). Sau đó, hàm drawMarquee () được sử dụng để hiển thị thông tin mong muốn trên bảng P10.
led_module.selectFont (FONT); led_module.drawMarquee (cstr1,50, (32 * ROW), 0);
Cuối cùng, khi chúng ta cần một màn hình hiển thị thông báo cuộn, tôi đã viết một đoạn mã để chuyển toàn bộ thông báo của chúng ta từ các hướng Phải sang Trái bằng một khoảng thời gian nhất định.
khởi động dài = millis (); long timming = bắt đầu; boolean flag = false; while (! flag) { if ((timming + 30) <millis ()) { flag = led_module.stepMarquee (-1, 0); timming = millis (); } }
Điều này đánh dấu sự kết thúc của quá trình mã hóa của chúng tôi. Và bây giờ nó đã sẵn sàng để tải lên.
Bảng điểm do điện thoại thông minh kiểm soát - Thử nghiệm
Sau khi tải mã lên Arduino, đã đến lúc kiểm tra dự án. Trước đó, ứng dụng Android cần được cài đặt trên điện thoại thông minh của chúng tôi. Bạn có thể tải ứng dụng Bảng điểm P10 từ liên kết cho sẵn. Sau khi cài đặt, hãy mở ứng dụng và màn hình chính sẽ giống như hình dưới đây.
Nhấp vào nút QUÉT để thêm mô-đun Bluetooth với Ứng dụng. Thao tác này sẽ hiển thị danh sách các thiết bị Bluetooth được ghép nối của điện thoại. Nếu bạn chưa ghép nối mô-đun Bluetooth HC-05 trước đó, hãy ghép nối mô-đun bằng cài đặt Bluetooth của điện thoại và sau đó thực hiện bước này. Màn hình sẽ giống như sau:
Sau đó, từ danh sách, nhấp vào “HC-05” vì đây là tên của mô-đun Bluetooth của chúng tôi được sử dụng ở đây. Sau khi nhấp vào nó, nó sẽ hiển thị kết nối trên màn hình. Sau đó, chúng tôi có thể tiếp tục với bảng điểm.
Nhấp vào bất kỳ nút nào giữa “Trang chủ” và “Đi vắng” như được hiển thị trong Ứng dụng. Nếu nút Màn hình chính được chọn, điểm số Màn hình chính sẽ được tăng lên trên màn hình P10. Tương tự, nếu nút Away được chọn, số điểm của Away sẽ được tăng lên. Hình ảnh dưới đây cho thấy màn hình cuối cùng trông như thế nào.
Tôi hy vọng bạn thích dự án và học được điều gì đó mới, nếu bạn có bất kỳ câu hỏi nào khác liên quan đến dự án, vui lòng bình luận xuống bên dưới hoặc bạn có thể đặt câu hỏi của bạn trong diễn đàn của chúng tôi.