深圳市宏维微电子有限公司
SHENZHEN HONGWEIWEI ELECTRONICS CO., LTD.
服务热线: 18098972264

新闻资讯

构建程序驱动步进电机

Date: 2019-09-19
Views: 1253

      我以2相4线步进电机为例介绍步进电机驱动原理。大家都知道:通电的导体在磁场中产生力的作用;通电的线圈产生磁场。前一条是直流电机驱动原理,这里不作介绍。后一条原理是步进电机的运动依据。先来看看2相4线步进电机构造示意图,如下:

构建程序驱动步进电机

从上图我们可以看出,步进电机有一个转子和一个定子。所谓转子,就是该器件是活动的,可以转动的。所谓定子,就是该器件是固定,不动的。转子,就是中间那个磁体,我们可看到它的N极、S极已经标出。定子,外围那个环,它上面绕着有A(A+)、B(B+)、A()(A-)、B()(B-)4个线圈,每个线圈都有引出一条给外部连接的线,其中A、A是一相,是连通的,暂且叫它A相,B、B是一相,是连通的,暂且叫它B相。2相4线的说法就是来自这里。A相或B相通电时,会让它自身变为一个磁体,这个磁体会对转子上的磁体产生强大引力,从而拉动转子的转动。当然,磁体的极性要有一定规律,力矩才能按照自己的需求作用在一个方向,不然力可能会被抵消,导致电机通电后不转动或者乱抖动。A相或B相通电的通电规律,就是我们熟悉的步进电机的时序问题。关于电机的时序,下面我们会用程序来介绍。先说明3个重要参数,如下:

  齿距角: 表示两个齿距之间的夹角,我用的42步进电机有50个齿,齿距角α=360/50=7.2°       

       拍数:转过一个齿距角所需脉冲数,或者说完成一个磁场周期性变化所需脉冲数,用n表示,

                下面程序是4拍运行方式,即AB→BAAB→AB

       步距角:表示控制系统每发送一个脉冲信号,电机所转动的角度θ。θ=齿距角/拍数=7.2/4=1.8°。    


我们需要用到的关于步进电机的关键信息上面已经介绍完,接下来要说的是这里所用2相4线步进电机的接线示意图,如下图:

构建程序驱动步进电机

      最后,我以一个Arduino程序来说明步进电机的驱动过程。这里我用到:42步进电机 ;控制板,arduino nano开发板(HW-284);驱动板,L298N(HW-095)。接线示意图如下:

构建程序驱动步进电机

构建程序驱动步进电机

程序如下:

#include

 

#define D2 2 //A+  黑线 OUT1

#define D3 3 //A-  绿线 OUT2

#define D4 4 //B+  红线 OUT3

#define D5 5 //B-  蓝线 OUT4

 

void setup() {

 

  pinMode(D2,OUTPUT);

  pinMode(D3,OUTPUT);

  pinMode(D4,OUTPUT);

  pinMode(D5,OUTPUT);

 

}

 

void loop() {

 //我使用的步进电机为50齿,齿距角为α=7.2°,让电机全步运行,也就是4拍,那么步距角 β=α/4,也就是发一个脉冲,电机转1.8°

 //我想让电机转速为V=2转/s,那么可以算出每个脉冲的长度PL=(1000/2)/(360°/1.8°)=2.5ms

 //AB通电

  digitalWrite(D2,HIGH);

  digitalWrite(D3,LOW);//A相正向通电

  digitalWrite(D4,HIGH);

  digitalWrite(D5,LOW);//B相正向通电

  delay(2.5);//设置脉冲长度为2.5ms,电机转速为2转每秒

 

 //BA()通电

  digitalWrite(D2,LOW);

  digitalWrite(D3,HIGH);//A相反向通电

  digitalWrite(D4,HIGH);

  digitalWrite(D5,LOW);//B相正向通电

  delay(2.5);

 

 //A()B()通电

  digitalWrite(D2,LOW);

  digitalWrite(D3,HIGH);//A相反向通电

  digitalWrite(D4,LOW);

  digitalWrite(D5,HIGH);//B相反向通电

  delay(2.5);

 

 //AB()通电

  digitalWrite(D2,HIGH);

  digitalWrite(D3,LOW);//A相正向通电

  digitalWrite(D4,LOW);

  digitalWrite(D5,HIGH);//B相反向通电

  delay(2.5);

}

深圳市宏维微电子有限公司:20190922

News / 相关新闻 More
2019 - 08 - 06
1.简介Arduino Due是一款32位ARM内核的开源开发板,它的引脚与Arduino Mega2560完全兼容。芯片采用的是Atmel公司的ATSAM3X8E,Atmel在生产芯片时就将bootloader预烧进ROM里。Arduino Due有54个数字IO口 (其中12个可用于PWM输出),12个模拟输入口,4路UART硬件串口, 84 MHz的时钟频率, 一个USB OTG接口, 两路DAC(模数转换),两路TWI,一个电源插座,一个SPI接口,一个JTAG接口,一个复位按键和一个擦写按键。2.下载程序(1).插上Arduino Due开发板,打开Arduino,点击工具-管理库,在搜索栏输入“Arduino&Due”,回车搜索,选择最新版本安装。如下图。(2).等待第一步Arduino Due的库安装成功之后。点击 工具-端口,先选择端口,若端口为Arduino Du...
2019 - 08 - 06
准备软件:ST Visual Programmer1. 读保护设定:点击选项字操作栏:Option byte点击ROP选项,选择打开读出保护:Read Out Protection ON以上更改后,即不能再对芯片进行读操作!烧录HEX文件时会有读保护提示。提示如下:处于读保护状态 Read Out Protection ON该操作相当于一级保护,还可以用以上操作关闭读保护,若选择二级保护:读写保护,则会彻底锁死芯片。 2. 解除读保护的方法如下:点击ROP选项,选择关闭读出保护:Read Out Protection OFF关闭读出保护,然后就可以正常下载HEX文件了。深圳市宏维微电子有限公司  20190922
2019 - 08 - 06
目前发现在Arduino1.8.5以上的版本下载程序时需要进行设置,接下来以Arduino1.8.5/Arduino1.8.8/arduino1.8.9和Arduino为例做出说明。开发板通过USB线连接电脑,在设备管理器中查看端口号。如图所示一、以Arduino 1.8.5为例打开Arduino软件,进行工具设置,如图所示二、以Arduino 1.8.8为例打开Arduino软件,进行工具设置,如图所示注意1:ArduinoNANO出厂固件版本不同,对处理器的选项是不同的。一个是ATmega328P,另一个是ATmega328P(Old Bootloader),注意区分。注意2:ArduinoNANO出厂固件版本是随着Arduino IDE更新的,Arduino IDE更新比较快,存在ArduinoNANO制造商没有及时跟进更新,或者老版本库存,所以会有1.85以上版本默认最新固件时,不...
Copyright ©2019 - 2021
深圳市宏维微电子有限公司
犀牛云提供企业云服务
地址:深圳市福田区福田中航路4号都会100大厦金都A座31F
电话:+86 0755-2955 6666
传真:+86 0755-2788 8009
邮编:330520
销售热线 18098972264 邮箱 3004130168@qq.com
5
电话
  • 18098972264
1
二维码
回到顶部