构建一个蓝牙控制的无线记分牌

电子记分牌是任何人在任何体育比赛中都可以拥有的最重要的小工具之一。使用传统方法的旧手动记分牌非常耗时且容易出错,因此在需要实时更改显示单元的情况下,必须使用计算机记分牌。这就是为什么在这个项目中,我们将构建一个蓝牙控制的无线记分牌,我们可以通过使用一个安卓应用程序来更改板上的分数。这个项目的大脑是一个 arduino nano,对于显示部分,我们将使用 p10 led 矩阵来实时远程显示分数。
p10 led显示矩阵
p10 led 矩阵显示器是制作户外或室内led 广告板的最佳方式。该面板共有 512 个高亮度 led,安装在塑料外壳上,旨在实现最佳显示效果。它还具有 ip65 防水等级,非常适合户外使用。有了这个,您可以通过在任何行和列结构中组合任意数量的此类面板来制作大型led 招牌。
我们的模组尺寸为32*16,也就是说每行32个led,每列16个led。因此,每个 led 招牌中共有 512 个 led。除此之外,它的防水等级为ip65,可以由单个5v电源供电,具有非常宽的视角,亮度可以达到4500尼特。因此,您将能够在日光下清楚地看到它。之前我们也使用这个p10 显示器和 arduino来构建一个简单的 led 板。
p10 led 矩阵管脚说明:
该led 显示板使用 10 针邮件头进行输入和输出连接,在本节中,我们已经描述了该模块的所有必要针脚。此外,您可以看到模块中间有一个外部 5v 连接器,用于将外部电源连接到电路板。
启用:此引脚用于控制 led 面板的亮度,通过给它一个 pwm 脉冲。
a、b:这些称为多路复用选择引脚。它们采用数字输入来选择任何多路复用行。
移位时钟 (clk)、存储时钟 (sclk) 和数据:这些是正常的移位寄存器控制引脚。这里使用了移位寄存器 74hc595。
将 p10 led 显示模块连接到 arduino:
将p10矩阵显示 模块连接到 arduino 是一个非常简单的过程,在我们的电路中,我们将 arduino 的引脚 9 配置为使能引脚,引脚 6 为引脚 a,引脚 7 为引脚 b,引脚 13 为 clk,引脚 8 为sclk,引脚11是data,最后引脚gnd是模块和arduino的gnd引脚,下面的完整表格清楚地解释了引脚配置。
p10 led模组arduino uno
注意:将p10模块的电源端接外接5v电源,因为512个led会消耗很多功率。建议将 5v、3 amp 直流电源连接到单个 p10 led 模块。如果您计划连接更多号码模块,请相应增加您的 smps 容量。
arduino 记分板所需的组件
由于这是一个非常简单的项目,组件要求非常通用,所需组件列表如下所示,您应该可以在当地的爱好商店中找到所有列出的材料。
arduino纳米
p10 led矩阵显示
面包板
5v、3 安培开关电源
hc-05 蓝牙模块
连接电线
arduino记分牌电路图
arduino led scoreboard的原理图如下所示,因为这个项目非常简单,我使用了流行的软件 fritzing 来开发原理图。
电路的工作很简单,我们有一个安卓应用程序和一个蓝牙模块,要成功与蓝牙模块通信,你必须将hc-05模块与安卓应用程序配对。连接好后就可以发送我们想要显示的字符串了,一旦发送了字符串,arduino会处理这个字符串,并将其转换为内部74hc595移位电阻可以理解的信号,数据发送到移位后电阻,它准备显示。
arduino记分牌代码说明
成功完成硬件设置后,现在是 arduino nano 编程的时候了。下面给出代码的逐步描述。此外,您可以在本教程的底部获取完整的arduino 记分板代码。
首先,我们需要包含所有的库。我们使用dmd.h库 来控制 p10 led 显示屏。您可以从给定的 github 链接下载并包含它。之后,您需要包含 timerone.h库,它将用于在我们的代码中进行中断编程。
这个库中有很多可用的前端,我们在这个项目中使用了“ arial_black_16 ”。
#include #include #include #include systemfont5x7.h #include arial_black_16.h  
在下一步中,为我们的 led 矩阵板定义行数和列数。我们在这个项目中只使用了一个模块,所以 row 值和 column 值都可以定义为 1。
#define row 1 #define column 1 #define font arial_black_16 dmd led_module (row, column);  
之后,定义了代码中使用的所有变量。一个字符变量用于接收来自 android app 的串行数据,两个整数值用于存储分数,并定义了一个数组来存储最终要显示在 matrix 上的数据。
字符输入;整数a = 0,b = 0;整数标志 = 0;字符 cstr1[50];  
定义了一个函数scan_module(),它通过spi持续检查来自 arduino nano 的任何传入数据。如果是,那么它将触发中断以执行用户在程序中定义的某些事件。
无效 scan_module() { led_module.scandisplaybyspi(); }  
在setup()内部,定时器被初始化,中断被附加到函数scan_module,这在前面已经讨论过了。最初,使用函数clear screen(true) 清除屏幕,这意味着所有像素都定义为 off。
在设置中,还使用函数serial.begin(9600)启用了串行通信,其中 9600 是蓝牙通信的波特率。
无效设置(){ 序列.开始(9600); timer1.initialize(2000); timer1.attachinterrupt(scan_module); led_module.clearscreen(真);}  
在这里,检查串行数据的可用性,是否有来自 arduino 的有效数据。从 app 接收到的数据存储在一个变量中。
if(serial.available() > 0) { flag = 0; 输入 = serial.read();  
然后,将接收到的值与预定义的变量进行比较。在这里,在 android 应用程序中,使用两个按钮来选择两支球队的分数。当按下按钮 1 时,字符“a”被传输到 arduino,当按下按钮 2 时,字符“b”被传输到 arduino。因此,在本节中,此数据是匹配的,如果匹配,则相应的分数值会增加,如代码所示。
if (input == 'a' && flag == 0) { flag = 1; 一个++; } else if (input == 'b' && flag == 0) { flag = 1; b++; } 其他;  
然后,将接收到的数据转换为字符数组,因为 p10 矩阵函数只能显示字符数据类型。这就是为什么所有变量都被转换并连接成一个字符数组的原因。
(string(home:)+string(a) + string( - ) + string(away:)+string(b)).tochararray(cstr1, 50);  
然后,为了在模块中显示信息,使用selection()函数选择字体。然后drawmarquee()函数用于在 p10 板上显示所需的信息。
led_module.selectfont(字体); led_module.drawmarquee(cstr1,50, (32 * row), 0);  
最后,由于我们需要滚动消息显示,我编写了一个代码,使用特定周期将整个消息从右向左移动。
长开始 = 毫秒(); 长时间的计时=开始; 布尔标志 = 假; while (!flag) { if ((timming + 30) 0)
{
标志 = 0;
输入 = serial.read();
如果(输入 == 'a' && 标志 == 0)
{
标志 = 1;
一个++;
}
else if (input == 'b' && flag == 0)
{
标志 = 1;
b++;
}
别的;
}
(string(home:)+string(a) + string( - ) + string(away:)+string(b)).tochararray(cstr1, 50);
led_module.selectfont(字体);
led_module.drawmarquee(cstr1,50, (32 * row), 0);
长开始 = 毫秒();
长时间的计时=开始;
布尔标志 = 假;
而(!标志)
{
if ((timming + 30) < 毫秒())
{
flag = led_module.stepmarquee(-1, 0);
计时 = 毫秒();
}
}
}

郭台铭:台湾很有机会发展电动车产业
3gqq.com 网页登录
电视机用集成电路简介
锡焊的定义
澳洲电讯在主要城市和地区城镇推出NB-IoT网络,以加强其物联网能力
构建一个蓝牙控制的无线记分牌
数字孪生助力城市数字化转型,打造智慧城市新生态
为什么基因组是决定一个人特征的独特遗传密码
浅析轧钢生产工艺,它都有哪些注意事项
英特尔将重塑台式机产品:着眼高端产品
Aptera连接器平台为未来的系统设计提供可扩展性要求
IP6829支持PD 输入全集成5W/7.5W/10W/15W 无线充电发射SOC
lebview信号占空比怎么设置
Molex Coeur CST互联系统的独一无二技术:浮动设计支持无损伤接插
数字货币将被大规模采用成为一种支付商品和服务的方式
vivo iQOO Z1手机有什么优点?
马云亲自点赞并现身淘宝造物节 影驰联合FUXK MOD主机创造性理念登场
电子元器件真伪检测案例展示
柯尼塞格“消灭”了凸轮轴 FreeValve是什么黑科技?
电梯加装安全锁,直线电机在电梯驱动中的应用