电子发烧友App

硬声App

0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示
电子发烧友网>电子资料下载>电子资料>闪烁LED的构建

闪烁LED的构建

2023-07-04 | zip | 0.00 MB | 次下载 | 免费

资料介绍

描述

与往常一样,闪烁的 LED 是学习硬件的最佳方式!该项目将带您一步步组装和编程由五个 RGB LED 模块 (H01R00) 和单个 3.3V DC-DC 模块 (H03R00) 组成的演示 Hexabitz 阵列。

了解如何组装阵列、将固件加载到模块、使用 CLI 以及编写自己的 C 代码。涵盖的主题包括同步和异步消息传递、输入按钮和远程内存访问。

它是什么?

一系列闪烁的 LED 让您习惯于 Hexabitz 硬件和软件工作流程。随时向我们发送任何改进建议或您尝试过且效果良好的替代方法

预计硬件构建时间:10-15 分钟

预计软件开发时间:每个示例 10-15 分钟

构建说明

第 1 步 - 规划您的阵列

在将东西焊接在一起之前,计划总是明智的!通过在所示方向 (P2) 或您喜欢的任何方向上并排对齐模块,暂存项目组件 (P1) 并规划您的阵列设计。

 

 
 
 
 
pYYBAGOX8VKAI8eBABXBYDFdOHE104.jpg
 
1 / 2
 

 

第 2 步 - 组装硬件

是时候做一些有趣的事情并组装阵列了!首先制作基本的焊点以将模块固定在一起(P3)。这对前进有很大帮助。

 

 
poYBAGOX8VWAQsb3AACk-jB84F4183.png
 

 

然后完成剩余的关节。您不必做所有这些,但最好提供结构支持。不要忘记在底部工作(P4)。

 

 
poYBAGOX8ViAPrmbAAClIopWmEI975.png
 

 

最后添加按钮(P5)(如果您之前没有加载固件,请确保您让工厂引导加载程序编程端口 P2 空闲)。添加您可能需要的任何额外连接器/接头,现在硬件组装完成!(P6)。

 

 
 
 
 
pYYBAGOX8WiAW0bhAACt0FUSYZk561.jpg
 
1 / 2
 

 

 

 

第 3 步 - 获取源代码

从 H01R00 代码库复制一个空的 H01Rx 项目,重命名文件夹并打开位于 MDK-ARM 文件夹 (P7) 中的 uVision 项目。您也可以使用随附的 zip 文件夹中的固件。

 

 
pYYBAGOYuMuAGv1YAAJU9TVpuqU132.png
 

 

第 4 步 - 生成和编译数组代码

首先,我们需要添加一个拓扑定义文件来告诉模块它们将如何相互连接。打开“project.h”,取消注释拓扑头文件定义并打开 topology_1.h 头文件。修改此文件以适应阵列,如图所示(P8、P9 和 P10)。更多关于稍后制作拓扑头文件的内容!完成后重新编译项目。

 

 
 
 
 
poYBAGOYuM2Aa8YmAAFXuBrXlk0709.jpg
 
1 / 3
 

 

现在是时候根据其在阵列中的位置为每个模块生成个性化的源代码了。单击 Manage Project Items 并添加其他四个目标(如果它们尚不存在)。(P11)。从下拉菜单中选择每个模块,然后单击“目标选项”。 将“C/C++”选项卡中的_module=1修改 为模块编号(1 到 5),并修改“输出”选项卡中的可执行文件名称以匹配模块编号。单击 批量构建>>全选>>重建

 

 
pYYBAGOYuNOAWWzoAAJDF6eTDao341.png
 

 

注 1 :有一种方法可以在运行时自动生成阵列拓扑文件。我们将在其他项目中使用它

注2 :本项目有单一类型的可编程模块(H01R00)。如果您有其他类型的可编程模块,请按照相同的步骤下载其源代码并添加相同的拓扑文件。

第 5 步 - 开机!

关键时刻!将输入电压 (5-40V DC) 连接到 H03R00 输入连接器,一旦为阵列供电,您应该会看到绿色的电源正常 LED。您可以使用任何 12V 直流电源适配器(P12 和 P13)。 

 

 
 
 
 
pYYBAGOYuNqAWbHlAAJUl5yM2ok638.jpg
 
1 / 2
 

 

第 6 步 - 对模块进行编程

是时候在这些模块上加载固件了。USB-UART 电缆和我们方便的 Kelvin 夹连接到模块 1 的编程端口 P2,并注意 USB-UART 电缆的极性(TXD/顶部 > 黄色,RXD/底部 > 橙色)。也不要忘记在阵列 GND 和电缆 GND(黑色)之间连接一根跳线。 

如果模块是新的且为空,则使用 ST Loader Demonstrator加载适当的 hex 文件如果已经编程,请先在 CLI 中使用更新命令。请查看固件更新文章了解详细步骤。(P14)

 

 
poYBAGOYuN6ACYrIAAKEDA4i_QE373.png
 

 

根据模块的 ID(P15 和 P16)将固件加载到所有模块,并确保不加载相同的文件!(尽管到目前为止我已经编写了 500 多个模块,但我这样做了很多次 :))

 

 
 
 
 
poYBAGOYuOGAGtcwAAK0v369Tiw929.jpg
 
1 / 2
 

 

第 7 步 - CLI 测试!

连接到模块 1 CLI 并测试一些命令。如果你想测试广播,禁用响应:

set BOS.response none

 然后输入:

all.ping

 

 

 

你都准备好了!接下来,我们将开始编写一些实际的 C 代码,以在即将到来的项目日志中执行更复杂的技巧。

示例 1 - 弄脏你的手!

准备好采取行动了吗?

这是一个向您展示 C 编码工作流程的简单示例。我们将向所有五个 LED 模块发送广播ping消息,以便它们闪烁红色指示灯 LED。该消息将每 500 毫秒重复一次。

在 main.c 的 FrontEnd 任务中,在无限循环之前编写以下内容:

#if _module == 1 BOS.response = BOS_RESPONSE_NONE; #endif

这在循环内:

#if _module == 1 SendMessageToModule(BOS_BROADCAST, CODE_ping, 0); Delay_ms(500); #endif

重新编译模块 1 并加载。由于dim消息在每个模块上启用了单独的内部计时器,它们最终以一种漂亮的方式不同步:D 请注意,32 位大小的消息参数如何转换为字节宽的参数。

您可以将下面的代码直接复制到User 文件夹中的main.c文件中,或者将main_ex2.c文件重命名为main.c并替换旧的。

 

 

 

 
pYYBAGOYuOWAA99aAAFLdz773_I900.png
 

示例 3 - 同步舞灯

广播暗淡(与前 2 完全相同)但完全同步。模块 1 模拟了暗淡功能并以不同的强度广播彩色消息。这样,您可以将计时器保留在单个模块上并保持它们全部同步。循环前的 500ms 延迟是为了确保所有模块在发送第一条消息之前完成启动。

 

 

 

 
poYBAGOYuOeAFo23AAE0jQ0Qg3E410.png
 

 

示例 4 - 按钮激活的舞灯

在模块 1 上定义一个按钮并启用其Click事件。此事件用于在事件回调中设置标志。该标志用于生成一些跳舞的灯光。

 
 
 
 
pYYBAGOYuOuAIgFyAAE6-QSUg68119.png
 
1 / 2
 

示例 5

与 ex 4 相同的概念,但每个按钮上的舞蹈模式不同。代码看起来又长又吓人,但都是重复的相同代码!如那里所示,您可以使用编译器定义:

#if _module == 1
xxxxxxxxxx 
#endif 

在特定模块内执行特定代码。如果您的所有或部分模块具有相同的部件号,这将为您节省创建单独项目的麻烦。

 

 

示例 6 - 远程写入 API

此示例演示了远程写入 API 的使用。

按钮 1(连接到模块 1)用作所有 LED 的开/关开关。按钮 2 用于循环显示基本颜色 ( WHITE, RED, BLUE, YELLOW, CYAN, MAGENTA, GREEN)。按钮 4 用于增加强度,按钮 5 用于降低强度(每次单击为 10%)。

所有模块都定义了三个 BOS 变量:一个描述 LED 状态的布尔变量和两个UINT8描述强度和颜色的变量。它们分别被初始化为ON, 50(%) 和WHITE

首先,全局变量链接到 BOS 变量,这样我们就可以使用地址 1、2 和 3 来跨数组寻址它们。然后,定义所有四个按钮并启用单击事件。在 click 事件中,每个模块在本地执行其任务(例如,循环显示颜色)然后将 a 广播RemoteWrite到适当的 BOS 变量。LED 指示灯也会闪烁以显示咔哒声。在无限循环内部,setColorAPI 用于根据在阵列中共享的 BOS 变量的值来控制本地 LED。这个例子展示了如何使用RemoteWrite来控制数组中的所有内容。

 

 

 


下载该资料的人也在下载 下载该资料的人还在阅读
更多 >

评论

查看更多

下载排行

本周

  1. 1山景DSP芯片AP8248A2数据手册
  2. 1.06 MB  |  532次下载  |  免费
  3. 2RK3399完整板原理图(支持平板,盒子VR)
  4. 3.28 MB  |  339次下载  |  免费
  5. 3TC358743XBG评估板参考手册
  6. 1.36 MB  |  330次下载  |  免费
  7. 4DFM软件使用教程
  8. 0.84 MB  |  295次下载  |  免费
  9. 5元宇宙深度解析—未来的未来-风口还是泡沫
  10. 6.40 MB  |  227次下载  |  免费
  11. 6迪文DGUS开发指南
  12. 31.67 MB  |  194次下载  |  免费
  13. 7元宇宙底层硬件系列报告
  14. 13.42 MB  |  182次下载  |  免费
  15. 8FP5207XR-G1中文应用手册
  16. 1.09 MB  |  178次下载  |  免费

本月

  1. 1OrCAD10.5下载OrCAD10.5中文版软件
  2. 0.00 MB  |  234315次下载  |  免费
  3. 2555集成电路应用800例(新编版)
  4. 0.00 MB  |  33566次下载  |  免费
  5. 3接口电路图大全
  6. 未知  |  30323次下载  |  免费
  7. 4开关电源设计实例指南
  8. 未知  |  21549次下载  |  免费
  9. 5电气工程师手册免费下载(新编第二版pdf电子书)
  10. 0.00 MB  |  15349次下载  |  免费
  11. 6数字电路基础pdf(下载)
  12. 未知  |  13750次下载  |  免费
  13. 7电子制作实例集锦 下载
  14. 未知  |  8113次下载  |  免费
  15. 8《LED驱动电路设计》 温德尔著
  16. 0.00 MB  |  6656次下载  |  免费

总榜

  1. 1matlab软件下载入口
  2. 未知  |  935054次下载  |  免费
  3. 2protel99se软件下载(可英文版转中文版)
  4. 78.1 MB  |  537798次下载  |  免费
  5. 3MATLAB 7.1 下载 (含软件介绍)
  6. 未知  |  420027次下载  |  免费
  7. 4OrCAD10.5下载OrCAD10.5中文版软件
  8. 0.00 MB  |  234315次下载  |  免费
  9. 5Altium DXP2002下载入口
  10. 未知  |  233046次下载  |  免费
  11. 6电路仿真软件multisim 10.0免费下载
  12. 340992  |  191187次下载  |  免费
  13. 7十天学会AVR单片机与C语言视频教程 下载
  14. 158M  |  183279次下载  |  免费
  15. 8proe5.0野火版下载(中文版免费下载)
  16. 未知  |  138040次下载  |  免费