求一套单片机控制步进电机课程设计ULN2003APG步进电机的程序大佬们

一、准备工作 TurnipBit 开发板 一块下载数据线 一条微型步进电机(28BYJ-48) 一个步进电机驱动板(ULN2003APG) 一块光敏传感器 一个TurnipBit 扩展板 一块接入网络的电脑 一台在线可视化编程器二、步进电机的介绍 本次实验采用的是28BYJ-48 四相八拍电机,电压DC5V~12V。24BYJ48名称的含义:24:电机外径24mmB:步进电机中步字的拼音首字母Y:永磁中永字的拼音首字母J:减速的减字拼音首字母48:四相8步实物图
步进电机是将电脉冲信号转变为角位移或线位移的开环控制电机,是现代数字程序控制系统中的主要执行元件,应用极为广泛。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度,称为“步距角”,它的旋转是以固定的角度一步一步运行的。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。28BYJ-48 步进电机参数表
上表中启动频率&550 P.P.S(每秒脉冲数),意思是要想正常启动,需要单片机每秒至少给出550个步进脉冲。那么每一节拍需要持续的时间就是1S/550&1.8ms,所以控制节拍刷新的速率应大约1.8ms。驱动原理 当连续不断的给电机发送控制脉冲时,电机就会不断的转动。每一个脉冲信号对应步进电机的某一相或两相绕组的通电状态改变一次,对应转子就会转过一定的角度(步距角)。当通电状态的改变完成一个循环时,转子转过一个齿距。四相步进电机可以在不同的通电方式下运行,常见的通电方式:四拍(单相绕组通电):A-B-C-D-A&双四拍(双相绕组通电):AB-BC-CD-DA-AB-&八拍: A-AB-B-BC-C-CD-D-DA-A&
1、将步进电机白色接头插到驱动板对应的座子上。2、TurnipBit对应插入扩展板,记住带有LED灯和按键的一面朝向扩展板带有针脚的一侧。3、将驱动板与TurnipBit扩展板连接起来。接线图如下:4、将光敏传感器与TurnipBit扩展板连接起来。接线图如下:
1、之前的教程一直都是使用拖拽可视化编程,这种方式可以快速让零基础小伙伴入门,但是在实际项目或工作中,还是要直接敲代码的。今天就给大家介绍一下TurnipBit的可视化编程器的另一项功能&代码编程。之前看过编程的小伙伴,不难发现,一打开编辑器首先进入的就是代码编程器界面。如下图:2、接下来用代码实现对步进电机的控制和光照数据的采集。当光照变弱时,步进电机顺时针旋转一周,模拟关闭窗帘的操作;当光照变强时,步进电机逆时针旋转一周,模拟打开窗帘的操作;完成源代码:# 在这里添加Python代码 from microbit import * Pin_All=[pin5,pin8,pin11,pin12] #转速(ms) 数值越大转速越慢 最小值1.8ms speed=5 STEPER_ROUND=512 #转动一圈(360度)的周期 ANGLE_PER_ROUND=STEPER_ROUND/360 #转动1度的周期 isOpen=False#表示窗帘的状态 True:打开 False:关闭 def SteperWriteData(data): count=0 for i in data: Pin_All[count].write_digital(i) count+=1 def SteperFrontTurn(): global speed SteperWriteData([1,1,0,0]) sleep(speed) SteperWriteData([0,1,1,0]) sleep(speed) SteperWriteData([0,0,1,1]) sleep(speed) SteperWriteData([1,0,0,1]) sleep(speed) def SteperBackTurn(): global speed SteperWriteData([1,1,0,0]) sleep(speed) SteperWriteData([1,0,0,1]) sleep(speed) SteperWriteData([0,0,1,1]) sleep(speed) SteperWriteData([0,1,1,0]) sleep(speed) def SteperStop(): SteperWriteData([0,0,0,0]) def SteperRun(angle): global ANGLE_PER_ROUND val=ANGLE_PER_ROUND*abs(angle) if(angle&0): for i in range(0,val): SteperFrontTurn() else: for i in range(0,val): SteperBackTurn() SteperStop() while True: light=pin0.read_analog()#读取光敏传感器传递过来的模拟量数据 #数值越大说明光照度越小 if light&400: if isOpen: isOpen=False SteperRun(-360)#光照小于设定的值,关闭窗帘 else: if isOpen==False: isOpen=True SteperRun(360)#光照大于设定的值,打开窗帘 * 本文作者:bodasister,转载注明来自FreeBuf.COM特别声明:本文为网易自媒体平台“网易号”作者上传并发布,仅代表该作者观点。网易仅提供信息发布平台。
一键安装官方客户端
重大事件及时推送 阅读更流畅
http://crawl.nosdn.127.net/img/d16c1a1e63e210b3e15dddf.jpg价格从低到高
价格从高到低
相关推荐词
相关推荐词
相关推荐词
[{"chanpin":"tmall","mobileUrl":"https://m.tmall.com/mblist/cp_dWxuMjgwM2FwZyB1bG4yODAzYXA.html","pcUrl":"https://www.tmall.com/mlist/cp_dWxuMjgwM2FwZyB1bG4yODAzYXA.html","word":"uln2803apg uln2803ap"},{"chanpin":"tmall","mobileUrl":"https://m.tmall.com/mblist/cp_1f3Gt3Vsbg.html","pcUrl":"https://www.tmall.com/mlist/cp_1f3Gt3Vsbg.html","word":"正品uln"},{"chanpin":"tmall","mobileUrl":"https://m.tmall.com/mblist/cp_ufqy-nVsbg.html","pcUrl":"https://www.tmall.com/mlist/cp_ufqy-nVsbg.html","word":"国产uln"},{"chanpin":"tmall","mobileUrl":"https://m.tmall.com/mblist/cp_dWxuMjAwMw.html","pcUrl":"https://www.tmall.com/mlist/cp_dWxuMjAwMw.html","word":"uln2003"},{"chanpin":"tmall","mobileUrl":"https://m.tmall.com/mblist/cp_dWxuMjAwNA.html","pcUrl":"https://www.tmall.com/mlist/cp_dWxuMjAwNA.html","word":"uln2004"},{"chanpin":"tmall","mobileUrl":"https://m.tmall.com/mblist/cp_dWxuMjA2NA.html","pcUrl":"https://www.tmall.com/mlist/cp_dWxuMjA2NA.html","word":"uln2064"},{"chanpin":"tmall","mobileUrl":"https://m.tmall.com/mblist/cp_dWxuMjgwMw.html","pcUrl":"https://www.tmall.com/mlist/cp_dWxuMjgwMw.html","word":"uln2803"},{"chanpin":"tmall","mobileUrl":"https://m.tmall.com/mblist/cp_dWxuMjgwMg.html","pcUrl":"https://www.tmall.com/mlist/cp_dWxuMjgwMg.html","word":"uln2802"},{"chanpin":"tmall","mobileUrl":"https://m.tmall.com/mblist/cp_dWxuMjgwNQ.html","pcUrl":"https://www.tmall.com/mlist/cp_dWxuMjgwNQ.html","word":"uln2805"}]不以物喜,不以己悲
Arduino使用步进电机
连线示意图如下: 实际连线图如下: 使用Stepper类库中自带的示例,并简单修改了其中的一些参数。#include&Stepper.h&const int stepsPerRevolution = 500;// 初始化步进电机要使用的Arduino的引脚编号Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11);void setup(){
// 设置转速,单位r/min
myStepper.setSpeed(60);
// 初始化串口
Serial.begin(9600);}void loop(){
// 顺时针一次旋转
Serial.println("clockwise");
myStepper.step(stepsPerRevolution);
delay(500);
// 逆时针一次旋转
Serial.println("counterclockwise");
myStepper.step(-stepsPerRevolution);
delay(500);}为了能够明显的看到步进电机在旋转,将一个小车的轮子放在步进电机上。这样就可以很明显的看到车轮随着步进电机的旋转而正转和反转。下面是视频。
使用Arduino开发板控制步进电机
Arduino(2560)控制两个步进电机通过控制器
Arduino控制步进电机和舵机机器臂
Arduino编程-&步进电机角度控制
自己写的步进电机程序
Arduino 控制减速步进电机 校验
Arduino学习笔记一,电位器控制步进电机。
【Arduino学习笔记】ULN2003APG步进电机控制代码
没有更多推荐了,ULN2003步进电机接线图及程序_百度文库
您的浏览器Javascript被禁用,需开启后体验完整功能,
享专业文档下载特权
&赠共享文档下载特权
&10W篇文档免费专享
&每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
ULN2003步进电机接线图及程序
&&为大家介绍如何用ULN2003来驱动步进机以及用单片机控制的程序
阅读已结束,下载本文需要
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,同时保存到云知识,更方便管理
加入VIP
还剩1页未读,
定制HR最喜欢的简历
你可能喜欢

我要回帖

更多关于 单片机控制步进电机的工作原理 的文章

 

随机推荐