设为首页收藏本站

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

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

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

2.png

  • 数字蜂鸣器模块 × 1

2323.png

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

尼龙柱.png             尼龙带.png


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

   蜂鸣器1.png 蜂鸣器2.png

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

LED.png

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

L1.png

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

L2.png L3.png
STEP 3: 制作LED连接线
虽然这里使用到了4个LED,但同侧灯我们是做相同的控制,所以,为了减少IO口的使用,最简单的方法就是将信号线一分为二。以下步骤就是教你如何制作这样一根线。
先取出两根数字口信号线,并用剪刀将其一剪为二,如下图所示。

LINE1.png LINE2.png

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

LINE3.png

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

LINE4.png
以相同方法焊接黑线和绿线,完成后的样子是这样的!

LINE5.png

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

LINE8.png     LINE9.png   

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

L4.png

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

CHE.png CHE1.png

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

硬件连接:
可以从连线图看出,同侧的两个LED是共用一个信号口的,左右分别用B,A来代替。A侧的LED连接的数字信号2, B侧的LED连接的是数字信号11。蜂鸣器则接的是数字信号3。
    说明:红色为VCC,黑色为GND,绿色为信号线。
1.png

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


上层板.png


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

ino.png

下载完成后,你看到的效果应该是,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和蜂鸣器的方法已经学过了,那就试试自己做一个音效声出来,可结合各种各样的形式。在之后综合部分就能使用你自己特制的音效了。



LINE6.png
LINE7.png

Code.zip

695 Bytes, 下载次数: 2, 下载积分: 创造力 -1

发表于 2016-6-10 08:20:43 | 显示全部楼层
学习学习
回复 支持 反对

使用道具 举报

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

本版积分规则 允许回帖同步到新浪微博  

  • 管理员
  • 4369
  • 103
  • 活跃会员

    活跃会员

  • 版主限定

    版主限定

  • 特邀作者

    特邀作者

  • 牛X认证

    牛X认证

  • 小蘑菇勋章

    小蘑菇勋章

  • 蘑菇人勋章

    蘑菇人勋章

  • 教师荣誉徽章

    教师荣誉徽章

  • 蘑菇老人勋章

    蘑菇老人勋章

推荐阅读

精华导读




公司简介| 联系我们| 小黑屋| 加入我们| 微博| 优酷| 英文网站| DF创客社区 ( 沪ICP备09038501号-4  
友情链接| 硬创邦| 花生壳社区| 模友之吧| 电子发烧友社区| 创客星球| 云汉电子社区| 电子工程网| 与非网| Arduino中文社区| 南极熊3D打印网| OneNET|

上海智位机器人有限公司  沪ICP备09038501号-4   

Powered by Discuz! X3.1

Licensed Comsenz Inc.

返回顶部 返回列表