- 1、本文档共10页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《讲义3
LED、电机控制实验 【实验目的】了解LED灯的控制原理和使用方法;了解直流电机的控制方法和原理;掌握在Z-STACK协议中网关向传感器节点广播数据包的方法;学习在传感器中接收和处理数据的方法;掌握在Z-STACK任务中添加事件的方式;6、掌握周期性事件的处理方法。【实验设备】装有IAR8.10软件的PC机一台;CC2530仿真器一台;3、物联网教学实验平台试验箱一台。【实验要求】编程要求:按照实验步骤实现应用程序;实现功能:通过串口助手实现对电机模块上的四个LED和电机状态的控制。 LED能够单独和整体开关,电机能够正转、反正和停止。【实验原理】LED控制电路和CC2530连接原理图如下所示从原理图可以看出,四个独立的IO口控制四个LED,当控制LED的IO口为低电平时,LED点亮,当IO口为高电平时LED熄灭。2、电机控制电路和CC2530连接原理图由原理图可以看出,通过CC2530的P0_0和P0_1实现对电机的控制,当P0_0等于P0_1时,电机停止转动;当P0_0不等于P0_1时,电机转动,反转两个IO口的电平即可实现正反转。LG9110为电机驱动芯片,具有以下特点:◆ 低静态工作电流;◆ 宽电源电压范围,2.5V-12V;◆ 每通道具有800mA连续电流输出能力;◆ 较低的饱和压降;◆ TTL/CMOS输出电平兼容,可直接CPU;◆ 输出内置钳位二极管,适用于感性负载;◆ 控制和驱动集成于单片IC;◆ 具备管脚高压保护功能。LG9110引脚图和定义如下所示:逻辑关系如下图所示:典型应用电路如下图所示:【实验步骤】1、编写基于Z-STACK的LED和电机驱动程序;在电机控制模块中接收并解析协调器发来的控制命令,并回复;在协调器代码中添加串口接收数据的功能,然后将数据发送给电机控制节点;4、分别烧写网关和传感器对应的代码;5、通过串口助手发送命令,并观察传感器结果。【关键代码分析】1、static void Motor_Init(void){ P0DIR |= 0x03; //P0_0,P0_1设置为输出模式 LG9110_MF = LOW; //MF端口设置为低电平 LG9110_MR = LOW; //MR端口设置为低电平}函数功能:初始化电机控制IO,并给其一个初始状态,停止转动。2、static void LED_Init(void) { P0DIR |= 0xf0; //P0_4到P0_7设置为输出 LED_1 = HIGH; //熄灭所有LED LED_2 = HIGH; LED_3 = HIGH; LED_4 = HIGH;}函数功能:初始化LED控制引脚,并熄灭所有LED。3、static void Motor_Control(uint8 command) { if(command == FRONT) { LG9110_MF = HIGH; LG9110_MR = LOW; } else if(command == BACK) { LG9110_MF = LOW; LG9110_MR = HIGH; } else { LG9110_MF = LOW; LG9110_MR = LOW; }}函数功能:根据接收到的命令来控制电机转动。入口参数:command,电机的控制命令,定义如下:#define FRONT9#define BACK10#define HALT114、static void LED_Control(uint8 option) { switch(option) { case LED_1_ON: LED_1 = ON; break; case LED_1_OFF: LED_1 = OFF; break; case LED_2_ON: LED_2 = ON; break; case LED_2_OFF: LED_2 = OFF; break; case LED_3_ON: LED_3 = ON; break; case LED_3_OFF: LED_3 = OFF; break; case LED_4_ON: LED_4 = ON; break; case LED_4_OFF: LED_4 = OFF; break; case LED_ALL_OFF: LED_1 = LED_2 = LED_3 = LED_4 = OFF; break; case LED_ALL_ON: LED_1 = LED_2 = LED_3 = LED_4 = ON; break; default:break; }}函数功能:控制LED。入口参数:option,LED的状态,定义如下:#define LED_1_ON 1#define LED_1_OFF
文档评论(0)