- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
单片机原理及应用技术学校名称:平顶山工业职业技术学院主讲人:高同辉项目八智能指纹锁设计任务3步进电机使用技能点编程实现舵机按要求角度运行
授课内容任务描述一任务布置二任务实施三
一、任务描述伺服电机在ATM机、喷绘机、刻字机、写真机、喷涂设备、医疗仪器、机器人、数控机床等广泛应用。特别适合要求运行平稳、低噪音、响应快、使用寿命长、高输出扭矩的应用场合。
二、任务布置利用Arduino开发板、ArduinoIDE开发环境、杜邦线若干、舵机、电位器模块搭建硬件电路。编程实现电位器控制舵机转动角度。材料清单:舵机杜邦线Arduino开发板1.选择合适器件搭建硬件电路2.编写软件程序实现
三、任务实施1.硬件电路接线舵机红色线接开发板5V,棕色线接开发板GND,橙色信号线接开发板数字引脚9。电位器接A0。
三、任务实施2.软件程序编写-1#includeServo.h//声明调用Servo.h库Servomyservo;//创建一个舵机对象intpotpin=0;//连接到模拟口A0intval;//变量val用来存储从模拟口A0读到的值voidsetup(){myservo.attach(9);//将引脚9上的舵机与声明的舵机对象连接起来}voidloop(){val=analogRead(potpin);//从模拟口A0读值,并通过val记录val=map(val,0,1023,0,179);//通过map函数进行数值转换myservo.write(val);//给舵机写入角度delay(15);//延时15ms让舵机转到指定位置}
三、任务实施2.软件程序编写-2#includeServo.hServomyservo;//定义一个伺服电机intpos=0;//循环变量(角度)voidsetup(){myservo.attach(8);//使用pin8控制伺服电机}voidloop(){for(pos=0;pos180;pos+=1)//0-180正转{myservo.write(pos);//设置电机转角为pos度delay(15);//休息}for(pos=180;pos=1;pos-=1){myservo.write(pos);delay(15);}}
三、任务实施3.相关函数介绍(1)attach()函数描述:将Servo变量附加到引脚,注意:Arduino0016及之前的版本,Servo库仅支持将舵机连接至第9和第10脚上。语法:servo.attach(pin)或servo.attach(pin,min,max)参数说明:pin:连接至舵机的引脚编号min(可选):舵机为最小角度(0度)时的脉冲宽度,单位为微秒,默认为544max(可选):舵机为最大角度(180度时)的脉冲宽度,单位为微秒,默认为2400
三、任务实施3.相关函数介绍(2)write()函数描述:向舵机写入一个数值,直接控制舵机的轴。一个标准的舵机中,这将设定齿轮的角度,将齿轮转到对应的位置。在一个连续旋转的舵机中,这将设置一个舵机的角度(0作为全速向一边,180为全速向另一边,在90附近的值为停止)。语法:servo.write(angle)
参数说明:angle:写向舵机的角度,从0到180之间。(3)read()函数描述:读取舵机当前的角度(最后一次用write()函数写入的值)语法:servo.read()返回值:舵机的角度,从0至180度
三、任务实施4.编译、下载、验证5.结果分析
单击编辑标题单击此处可编辑内容,根据您的需要自由拉伸文本框大小谢谢收看
文档评论(0)