2016-6-9 11:11:11 [显示全部楼层]
8404浏览
查看: 8404|回复: 1

DIY海盗船系列 第5话 --- 灯光声音功能

[复制链接]
DIY海盗船系列 第5话 --- 灯光声音功能
如果你不局限于满足小车行动上的功能的话,还可以添加装饰功能,灯光和声音模块。让小车形象显得更为生动活泼。LED模块非常适合运用于小车,我们分别装在小车的四个角上,代表左右的转向灯,并且可以结合蜂鸣器。

硬件材料:
  • 数字食人鱼白色LED发光模块 × 4

DIY海盗船系列 第5话 --- 灯光声音功能图1

  • 数字蜂鸣器模块 × 1

DIY海盗船系列 第5话 --- 灯光声音功能图2

  • M3*6尼龙柱、尼龙扎带 × 若干

DIY海盗船系列 第5话 --- 灯光声音功能图3DIY海盗船系列 第5话 --- 灯光声音功能图4


组装步骤:
准备完以上这些材料,就开始组装了,组装不难,更着操作就行。
STEP 1: 安装蜂鸣器模块
先将尼龙柱固定到蜂鸣器上,如下图所示。再用螺母将其固定到小车的上层顶板的正面。

DIY海盗船系列 第5话 --- 灯光声音功能图5DIY海盗船系列 第5话 --- 灯光声音功能图6

STEP2: 安装LED模块
安装完蜂鸣器之后,需要安装4个LED。还是先将尼龙柱固定到每个LED灯上。并用螺丝固定,如下图所示。

DIY海盗船系列 第5话 --- 灯光声音功能图7

完成后,分别将4个LED固定到小车的顶板四个角。注意:是安装上层板的背面,如果你想让LED更明显一点的话,当然你也可以安装在正面。

DIY海盗船系列 第5话 --- 灯光声音功能图8

下面两张图分别是上层板的正面和背面。蜂鸣器在正面,LED则在背面。

DIY海盗船系列 第5话 --- 灯光声音功能图9DIY海盗船系列 第5话 --- 灯光声音功能图10
STEP 3: 制作LED连接线
虽然这里使用到了4个LED,但同侧灯我们是做相同的控制,所以,为了减少IO口的使用,最简单的方法就是将信号线一分为二。以下步骤就是教你如何制作这样一根线。
先取出两根数字口信号线,并用剪刀将其一剪为二,如下图所示。

DIY海盗船系列 第5话 --- 灯光声音功能图11DIY海盗船系列 第5话 --- 灯光声音功能图12

取出其中两根带PH2.0母头(白色接头)的杜邦线和一根带3Pin公头(黑色接头)的杜邦线,将杜邦线头部用剥线钳剥去,露出线内部的铜线部分,并且焊上少量锡,便于焊接。

DIY海盗船系列 第5话 --- 灯光声音功能图13

  分别将三股杜邦线中的红色(VCC)焊接在一起,如下图所示。

DIY海盗船系列 第5话 --- 灯光声音功能图14DIY海盗船系列 第5话 --- 灯光声音功能图15
以相同方法焊接黑线和绿线,完成后的样子是这样的!

DIY海盗船系列 第5话 --- 灯光声音功能图16DIY海盗船系列 第5话 --- 灯光声音功能图17

焊接完成后,记得用绝缘胶布将焊点包裹起来,以防在使用的时候出现短路。

DIY海盗船系列 第5话 --- 灯光声音功能图18DIY海盗船系列 第5话 --- 灯光声音功能图19  

       因为我们需要用到两根这样的线,所以以相同的方法再做一根。
STEP 4: 接线
       如果线做好的话,就可以直接连接到4个LED上了,需要提醒的一点是,同侧的2个LED公用一个数字信号口。

DIY海盗船系列 第5话 --- 灯光声音功能图20

STEP 5: 完整效果图
  建议先不要将小车上层的顶板固定上去,因为我们下一步就需要硬件电路连接了。

DIY海盗船系列 第5话 --- 灯光声音功能图21DIY海盗船系列 第5话 --- 灯光声音功能图22

至此就全部安装完了,下面就开始硬件连接了。

硬件连接:
可以从连线图看出,同侧的两个LED是共用一个信号口的,左右分别用B,A来代替。A侧的LED连接的数字信号2, B侧的LED连接的是数字信号11。蜂鸣器则接的是数字信号3。
    说明:红色为VCC,黑色为GND,绿色为信号线。
DIY海盗船系列 第5话 --- 灯光声音功能图23

安装完成后,就可以将上层板固定上去了。准备下载代码…


DIY海盗船系列 第5话 --- 灯光声音功能图24


输入代码:
插上USB线,下载代码。你可在软件包中找到Light_Sound.ino的代码,直接点击下载。当然,不要忘记选择Board和Serial Port。

DIY海盗船系列 第5话 --- 灯光声音功能图25

下载完成后,你看到的效果应该是,4个LED同亮同灭,并伴随蜂鸣器的滴滴声。代码不难,简单来看下。
代码回顾:
代码开始部分,还是一些变量的声明:

  1. int LeftLEDPin = 11;  
  2. int RightLEDPin = 2;
  3. int BuzzerPin = 3;
复制代码
表示左边LED接到数字引脚11,右边LED接到数字引脚2,蜂鸣器则接到数字引脚3
  1. pinMode(LeftLEDPin,OUTPUT);
  2. pinMode(RightLEDPin,OUTPUT);
  3. pinMode(BuzzerPin, OUTPUT);
复制代码
同样需要设置下数字引脚的模式,LED和蜂鸣器都为输出模式(OUTPUT)。
再看下loop()函数,里面只有两个函数LEDState(),TurnOnBuzzer()。
  1. LEDState(LeftLED,RightLED)
复制代码
LEDState()是用来设置左右LED的状态的。就拿程序中的例子来说:
  1. LEDState(HIGH,HIGH);
复制代码
这句话的意思是,左右的LED都设置为HIGH,也就是同时打开左右的LED。
  1. LEDState(LOW,LOW);
复制代码
相反的,这句话意思是,同时关闭左右两边的LED。
如果说,碰到左转,只需打开左边的LED,关闭右边LED的话,就可以这么写:
  1. LEDState(HIGH,LOW);
复制代码
蜂鸣器那个函数很简单,只是打开蜂鸣器。可以看下TurnOnBuzzer()函数。
其实就是通过一个digitalWrite()函数来给蜂鸣器引脚至高,一旦至高后,蜂鸣器就能发出声音了,并通过调节中间的延时时间,来控制播放声音的时间,也就能模拟出一个警报音了。

大改造:
如何控制LED和蜂鸣器的方法已经学过了,那就试试自己做一个音效声出来,可结合各种各样的形式。在之后综合部分就能使用你自己特制的音效了。

Code.zip

695 Bytes, 下载次数: 1314

dsweiliang  初级技神

发表于 2016-6-10 08:20:43

学习学习
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail