电机专项--学自太极创客

一、电机的基本知识

1.通过电磁感应定律,将电能转化为机械能,并使用机械能产生动能的设备。

2.分类:a. 直流电机(DC)、交流电机(AC)、交直流两用电机(Universal)

              b.有刷直流电机(BDC)、无刷直流电机(BLDC)

二、直流电机以及arduino驱动直流电机的方法

1.主要参数:

额定电压、电流

空载转速(电机不带任何负载的转速)

2.控制:

a.控制对象主要是输出轴的旋转方向(H桥电路闭合开关)旋转速度(PWM控制)

b.控制电机的法一:H桥电路(需要焊接电路,不太方便)

H桥电路闭合开关改变旋转方向;利用arduino控制开关闭合的时间长短/使得电机两端电压为pwm模式/从而达到改变旋转速度的效果

(设闭合左上和右下的开关,输出轴旋转方向为顺时针;则闭合右上和左下,输出轴旋转方向为逆时针)(:改变流过电机的电流方向即可实现改变旋转方向)

c.控制方法二:使用电机控制模块(简单、方便)

买对应模块时要注意电机控制模块的电源与电机的额定电压、电流是否相匹配、合适;

查看控制模块的引脚信息--这样自己写程序的时候才知道要设置哪些引脚为高电平或低电平

电机控制模块的相关引脚的介绍

利用arduino设置引脚状态实现电机的不同状态

三、步进电机的基本原理及控制

1.分类:单极性步进电机、双极性步进电机

2.对应的原理:

(中间一直接电源正极不会改变,通过改变接地的位置,产生不同的磁场,从而使转子发生转动)

(交替改变线圈的电极性,使得转子不停的转动)

3.比较:

4.反应式步进电机(下次我还是看视频吧。。。)

四、arduino控制步进电机用到的库:Stepper库、AccelStepper库
五、Stepper库里面的函数

注意:只能控制一个电机,不能同时控制两个或以上个电机。同时在使用Arduino官方stepper库时,Arduino开发板在控制步进电机的过程中是无法进行其它工作的。

a.Stepper(steps,pin1,pin2,pin3,pin4)

作用:建立步进电机对象。

steps:电机内部转子转一周的步数;

pin1:电机控制模块in1与arduino连接的引脚;

pin2in3与arduino连接的引脚;

pin3in2与arduino连接的引脚;

(没有错,就是这样,pin2位置放的就是in3的,pin3放的就是in2的)

piin4:in4与arduino连接的引脚。

举例:Stepper  steppermotor(32,8,10,9,11)

解释:建立一个名为steppermotor的电机,其基本信息为括号的内容。(电机旋转一周需要走32步,电机控制模块上的in1、in2、in3、in4分别与arduino的引脚8、9、10、11相连)

b.setSpeed(rpm)

作用:设置步进电机运行速度(每分钟转数)。(此函数无法让电机旋转,只用于设置转速。如要让电机旋转,需要使用step函数。)

rpm:电机每分钟转速

c.step(steps)

作用:通过step函数您可以让步进电机旋转相应的步数。(旋转速度则由 setSpeed函数决定。)

steps:电机运行的步数。

注意:此函为“blocking”类型函数,即Arduino在运行此函数时,将会等待电机执行完运行要求以后才会执行下一条语句。举例说明,假如您通过setSpped函数设置电机的运行速度为1。然后通过调用step(100)指令让电机运转100步。这一操作的执行时间可能要一分多钟才能完成。为了让程序可以更好的运行,建议每一次调用step函数时尽量让电机少执行步数,同时提高电机的运行速度。

六、AccelStepper库里面的函数

定义步进电机对象:AccelStepper(a,pin1,pin2,pin3,pin4)

表示电机的步进方式(全步进、半步进、四分之一步进......)

pin2为in3与arduino连接的引脚;

pin3为in2与arduino连接的引脚;

举例:AccelStepper stepper1(HALFSTEP, motor1Pin1, motor1Pin3, motor1Pin2, motor1Pin4);

解释:定义一个名为stepper1的步进电机,步进方式为半步进,电机控制模块的in1、in2、in3、in4分别与单片机上的motor1Pin1、motor1Pin2、motor1Pin3、motor1Pin4相连。

a.setMaxSpeed -设置步进电机最大运行速度

b.setAcceleration -设置步进电机加速度

c.setSpeed -设置步进电机运行速度

d.targetPosition -获取步进电机运行目标位置

e.currentPosition -获取步进电机运行当前位置

f.setCurrentPosition -复位步进电机初始位置

g.move – 设置步进电机运动的相对目标位置

h.moveTo -设置步进电机运动的绝对目标位置

i.run -步进电机运行(先加速后减速模式)

j.runSpeed -步进电机运行(匀速模式)

k.runToNewPosition – 电机运行到用户指定位置值,目标位置为绝对位置。此函数将“block”程序运行。即电机没有到达目标位置前,Arduino将不会继续执行后续程序内容。这一点很像Arduino官方Stepper库中的step函数。

  • 21
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值