本帖最后由 皈依 于 2015-11-13 21:34 编辑
NO.2:模块介绍(未完待续)在NO.2之前我在前两层楼更新了一些制作的PCB成果与供电系统的介绍,还上传了供电模块核心MP1584的PDF,有需要的小伙伴可以查阅哦~
今天有热心小伙伴问到了触摸模块的问题,正好今天还没想好制作哪些,所以就愉快的决定了介绍一下模块的用法吧。
模块一:触摸模块
讲到这个模块我要向大家道个歉,该模块我搞错名字了,名称不是HC-SR501,名称就是触摸模块,用法很简单。
而HC-SR501是人体红外感应模块,这次的大采购我也买了该模块,但是在该小车上,我没使用到这个模块,具体的模块图片请看我的截图。
触摸模块有三个引脚:GND, VCC, S 供电范围3~5V
具体用法:当用手触摸时,S输出一个高电平,当手放开时,S输出一个低电平。
讲到这里大家应该都会用了,由于是运行姿态的切换开关,重要程度比较高,所以决定用中断来写,在中断中修改标志位,然后在主函数中进行标志位判断。
没错,触摸模块就这么简单,相信各位小伙伴在我的介绍下都非常清楚了!
模块二:DHT11温湿度采集模块 超声波HC-SR04模块
讲到这个模块我又要感慨了,我要感谢一下原子与野火。是他们让我快速了解并熟悉了STM32的MCU,而且他们的外设讲解都很详细。
他们虽然没领过ST的一分钱工资,但是他们教会了中国成千上万的人使用ST的MCU,对ST在中国的推广有不可磨灭的贡献!再次感谢他们!他们在这个时代对于我们这些电子爱好者来说是最可爱的人!
相信有小伙伴会问了,为什么把这两个模块放在一起,没错,原因就是这两个模块在原子和野火的教程中有很详细的介绍。相信很多小伙伴也学习过了。
不过我还是做个简单的讲解让大家了解一下模块的工作原理与我的编程思路。
1,DHT11温湿度采集模块。
该模块同样的也是三根引脚,和MCU的通讯用的也是一根线,采用单总线数据格式。
具体的通讯过程是:
MCU先将信号线的高电平拉低,持续时间保证在18ms以上,然后拉高保持20~40us。
之后DHT11会响应拉低80us,然后拉高80us准备开始传输信号。
传输的信号中:50us的低电平加上26~28us的高电平代表0;50us的低电平加上70us的高电平代表1;
一次完整的传输数据为40位,数据格式是8位湿度整数数据+8位湿度小数数据+8位温度整数数据+8位温度小数数据+8位校验位。
写到这里相信大部分小伙伴都会使用了,如果还有小伙伴不会使用的没关系,我会在附件中上传DHT11的PDF文件与原子哥教程中的底层驱动文件来帮助大家理解和使用。
2,超声波HC-SR04模块。
该模块是四根引脚,其中和MCU通讯的是两根引脚,一根是MCU使能引脚,一根是模块数据传输引脚。
具体的通讯过程是:
MCU先给出10us的TTL的使能信号。即拉高使能信号持续10US,然后拉低该信号。
之后模块内部会向外循环发出8个40KHZ的脉冲进行测距。
当测距完成后,会通过数据传输引脚返回相应长度的高电平信号。而这个高电平信号的长短就是测试的距离。
OK,相信大家都了解了,我的计划呢就是用定时器来测量该高电平信号的长短。
没错,依旧不难。相信小伙伴们也会使用了。同样的HC-SR04超声波模块的PDF和野火教程中的底层驱动文件我也会上传到附件里面。
模块三:红外避障检测模块该模块很简单,讲讲原理相信大家都会秒懂。
该模块采用的是红外发射管与红外接收管。当模块前面有障碍物时,发射的红外光反射回来,接收管接收到红外光导通,信号被拉低。
这样就可以检测前方障碍物了,但如果仅仅是这样那该模块就没意义了,可以直接用两个管子加几个电阻实现了。
该模块的重点就是上面有个LM393,是的,是个电压比较器。
那他存在的原因是什么呢?没错,保证输出到MCU的电平信号为0或者1,这样不会有中间值!方便我们编程。
而选择用该模块做也是出于这个考虑,我可以放心大胆的用中断做了!
同样的,该模块的说明书我会在附件里面上传,相信大家看完后都会操作这个模块了!
模块四:语音提示模块(新增功能)
该模块我决定采用SK020模块与功放GPY0030。
这个芯片操作比较简单,内部的语音是出厂前已经录制好的。
对该芯片好奇的朋友可以通过搜索该语音芯片找到该厂商进行了解,为了避免广告嫌疑,我就不发链接了。
具体的硬件电路请大家看图了解。
那么软件如何编写呢?别急,先简单介绍一下该芯片。
如图所示:该芯片和MCU的通讯线为三根,分别是RST,DATA,BUSY。
具体的时序按照图片来操作,先发送100us的复位信号,然后通过DATA发送N个100us的信号,那么语音芯片就会自动放第N个语音。
怎么样,操作很简单吧~朋友们可以先试试,如果还是不行的话敬请期待后面放出的源代码进行了解~
|