智能LED灯 第2节 硬件端的开发

第2节 硬件端的开发

现在,我们开始实现智能LED灯硬件相关部分的设计。

2.1 硬件连接

选择了Arduino MEGA 、HC-06蓝牙模块、LED灯模块和三引脚按钮开关以后,我们就需要把它们组合起来,为我们所用了。

因为同一个开发板要连接多个外接硬件,这时就需要Arduino扩展板出场了。

Arduino拥有很多的扩展板,其中有一种扩展板可以把Arduino开发板中的引脚,按照引脚-电源VCC-接地GND这样的组合,一组一组的扩展出来,方便开发者插拔。这个开发板就能很方便的解决我们现在遇到的VCC接口不够用的问题。

将Arduino开发板和扩展板上下插入后,引脚就扩展出来了,


HC-06蓝牙模块有4个引脚需要与开发板连接,这里我们选择使用MEGA开发板的Serial2作为蓝牙模块的通信端口。Serial2使用D16作为TX、D17作为RX,

扩展板引脚 连接 蓝牙模块引脚
17组V <---> 电源VC
17组G <---> 接地GND
16组S(TX) <---> 输入RX
17组S(RX) <---> 输出TX

没有选择Serial(D0和D1引脚)是因为,希望用它来输出调试信息到电脑的串口,如果都使用Serial的话,同一个通路就会出现两类完全没有联系的信息,

*如果你对蓝牙模块详细的使用方式感到陌生的话,请先参考蓝牙传输一文。


LED灯模块有3个引脚需要与开发板连接。这里我们选择MEGA板的D45引脚作为LED灯的PWM控制引脚(当然可以选择任何其它具有PWM功能的引脚),

扩展板引脚 连接 LED灯模块引脚
45组V <--->
45组G <---> G
45组S <---> S

*如果你对LED灯模块详细的使用方式感到陌生的话,请先参考控制LED灯一文。


最后,将按钮开关接入Arduino MEGA开发板的D44引脚,

扩展板引脚 连接 LED灯模块引脚
44组V <---> 中间未标注
44组G <--->
44组S <---> S

*如果你对按钮模块详细的使用方式感到陌生的话,请先参考按钮开关一文。


全部组装好后,如下图,

2.2 代码实现

2.2.1 亮度调节命令

要控制LED灯,就要给LED灯发送命令。因此我们需要定一个命令的格式,让Arduino开发板读懂操作者的意图。

为了简单,我们将命令定义成最简单的形式:一个命令只有一个字节(1byte),一个字节有八位(8bit)。而调解LED灯模块的PWM引脚刚好有256级,也就是8bit的大小(00000000~11111111,刚好是256级)。所以我们定义,手机控制端每发送给LED灯的每一个字节的内容,就是要求LED灯显示的亮度。

发送的命令 对应的亮度
0x00 0级
0x01 1级
0x2F 47级
0xFF 255级

2.2.2 控制逻辑

  1. 初始化时,在setup()函数中,

  2. 系统运行当中,不断的尝试从蓝牙模块读取命令,一旦接收到命令,就根据命令的内容,调整LED灯的灯光亮度。

  3. 增加对按钮开关的逻辑控制,

  4. 将程序部署到Arduino MEGA开发板上。


***************************************


本系列课程使用到的Arduino开发板、扩展板以及其他相关的传感器,各位可以根据我们文章中介绍的硬件在淘宝网选购。
您也可以在我们的网店安豆的杂货铺中购买,这些相关硬件都由我们为您把关购买,为大家节省选择的精力与时间。同时也感谢大家对我们这些码农的支持。

最后再次感谢各位读者对安豆的支持,谢谢:)