- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
单片机原理及应用技术学校名称:平顶山工业职业技术学院主讲人:高同辉项目八智能指纹锁设计任务2步进电机使用技能点编程实现步进电机运行
授课内容任务描述一任务布置二任务实施三
一、任务描述由于步进电机具有复杂、精密的线性运动控制,在办公自动化、数码相机、家用电器、3D打印、太阳能发电、医疗设备、安防监控、汽车应用等广泛应用。
二、任务布置利用Arduino开发板、ArduinoIDE开发环境、杜邦线若干、28BJY-48步进电机、L298N电机驱动模块搭建硬件电路。编程实现步进电机转动。材料清单:L298N电机驱动模块直流电机杜邦线Arduino开发板1.选择合适器件搭建硬件电路2.编写软件程序实现
三、任务实施1.硬件电路接线IN1、IN2、IN3、IN4分别连接UNO开发板的数字引脚2,3,4,5;驱动板电源输入+、-引脚分别连接UNO开发板的5V、GND。
三、任务实施2.软件程序编写-1voidsetup(){for(inti=2;i6;i++){pinMode(i,OUTPUT);}}voidclockwise(intnum){for(intcount=0;countnum;count++){for(inti=2;i6;i++){digitalWrite(i,HIGH);delay(3);digitalWrite(i,LOW);}}}voidanticlockwise(intnum){for(intcount=0;countnum;count++){for(inti=5;i1;i--){digitalWrite(i,HIGH);delay(3);digitalWrite(i,LOW);}}}voidloop(){clockwise(512);delay(10);anticlockwise(512);}
三、任务实施2.软件程序编写-2#includeStepper.hconstintSTEPS_PER_ROTOR_REV=32;//电机内部输出轴旋转一周步数constintGEAR_REDUCTION=64;//减速比//电机外部输出轴旋转一周步数2048constfloatSTEPS_PER_OUT_REV=STEPS_PER_ROTOR_REV*GEAR_REDUCTION;intStepsRequired;//电机旋转步数//电机控制引脚为In1,In2,In3,In4分别8,9,10,11Steppersteppermotor(STEPS_PER_ROTOR_REV,8,10,9,11);voidsetup(){}
三、任务实施2.软件程序编写-2voidloop(){steppermotor.setSpeed(1);//极慢转动4步StepsRequired=4;steppermotor.step(StepsRequired);delay(1000);//慢速顺时针旋转一圈StepsRequired=STEPS_PER_OUT_REV;steppermotor.setSpeed(500);steppermotor.step(StepsRequired);delay(1000);//快速逆时针旋转一圈StepsRequired=-STEPS_PER_OUT_REV;steppermotor.setSpeed(800);steppermotor.step(StepsRequired);delay(2000);}
三、任务实施3.相关函数介绍(1)Stepper函数
函数调用形式:Stepper(steps,pin1,pin2)或Stepper(steps,pin1,pin2,pin3,pin4)说明:主要是电机是两相还是四相,该函数作用是创建Stepper类的实例,该函数需要写在程序开始,即voidsetup()之上。steps:电机旋转一周的步数(脉冲数,整数型)
pin1,pin2:连接电机的引脚编号(整数型)
pin3,pin4:连接电机的引脚编号(整数型)
三、任务实施3.相关函数介绍(2)setSpeed(rpm)函数说明
文档评论(0)