用户
 找回密码
 立即注册

QQ登录

只需一步,快速开始

点击进入授权页面

只需一步,快速开始

  • QQ空间
  • 回复
  • 收藏
  • TA的每日心情
    开心
    2018-2-13 11:50
  • 签到天数: 1 天

    [LV.1]初来乍到


    图1 步进电机与驱动器连线图(图片摘自网络)

    一.步进电机控制程序及分析
    话不多说,先上图和程序,时间比较急的可以直接拿去用,下面分析可以不看。
    #define vcc 2
    #define pls 3
    #define dir 4
    #define ena 5
    void setup() {
      Serial.begin(9600);
      pinMode(vcc,OUTPUT);
      pinMode(pls,OUTPUT);
      pinMode(dir,OUTPUT);
      pinMode(ena,OUTPUT);
      }
    void loop() {
      digitalWrite(vcc,HIGH);
      digitalWrite(pls,HIGH);
      digitalWrite(dir,HIGH);
      digitalWrite(ena,HIGH);
      tone(pls,200);
    }
    接下来是程序讲解,最开始几个define是定义引脚,VCC是给驱动器提供电源引脚,pls是给步进电机提供脉冲引脚,dir决定电机正转还是反转,ena相当于步进电机驱动器的开关,控制电路给ena引脚高电压那么就相当于让驱动器能够接受控制信号,如果ena给的是低电压,那么不论你怎么给脉冲信号电机都不会动。
    在arduino里面有一个tone函数可以产生脉冲


    图2 tone()函数官方文档介绍

    由上可知我们直接调用tone函数,即可在pls引脚产生一定频率的脉冲,并控制脉冲时间,上面程序中只设定了脉冲频率没有设定时长。至此驱动程序完成,如果感兴趣可以看一看下面为什么步进电机需要驱动。
    二.步进电机与普通直流电机区别
    步进电机是将电脉冲信号转变为角位移或线位移的开环控制电机,是现代数字程序控制系统中的主要执行元件,应用极为广泛。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数。


    图3 步进电机原理(图片摘自网络)

            如上图2所示,步进电机内部有多对磁极,若通电状态保持不变,则步进电机会保持在某个固定状态,只有不断改变各个磁极对的通电状态,才能让步进电机不断旋转。所以步进电动机不能直接接到直流或交流电源上工作,必须使用专用的驱动电源(步进电动机驱动器)。控制器(脉冲信号发生器)可以通过控制脉冲的个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。
            直流电机原理,电机内部有由永磁铁形成的磁场,当线圈通电时由于受到电磁力而转动,转动到平衡位置后,由于电源没有随着线圈转动,故线圈受力依然使其朝同一个方向运动。如此往复,导致线圈可以不断朝一个方向转动。


    图4 直流电机原理图(图片摘自网络)


    打赏作者鼓励一下!
    Rico_chen 发表于 2018-2-24 22:35
    没有试过,刚刚查了下GRBL,这个是在上位机上直接控制吧,我现在这种主要是用那个脉冲频率参数来通过APPi ...

    也可以不用。年前就弄了一个,一个NANO烧了GBRL 当G代码解释器,另一个UNO接了个旋转编码器,当手操器了。它们之间用115200  ,然后UNO就串口发 : G01 X1 F200 之类 就可以了。上电后要给定一次F ,不然会报错。
    打赏作者鼓励一下!
    tone()最高输出6.5k的频率?一般的步进,8000或10k细分,这个6.5k转速……
    要是到200k就可以了……
    xo37 发表于 2018-2-13 12:28
    tone()最高输出6.5k的频率?一般的步进,8000或10k细分,这个6.5k转速……
    要是到200k就可以了…… ...

    受教了,tone函数的最高频率我没研究过,看到官方文件只说了最低频率要为31HZ,我这边负载较大,对转速要求低,如果对转速要求比较高的情况还们怎么碰到
    打赏作者鼓励一下!

    1人打赏

    好像不可以同时用两路脉冲输出,

    没有试过,刚刚查了下GRBL,这个是在上位机上直接控制吧,我现在这种主要是用那个脉冲频率参数来通过APPinventor写的程序控制电机。
    打赏作者鼓励一下!
    红海盗qs 发表于 2018-2-15 21:19
    好像不可以同时用两路脉冲输出,

    嗯,这个我还没试过,改天试下
    打赏作者鼓励一下!
    wwwusr 发表于 2018-2-25 18:40
    也可以不用。年前就弄了一个,一个NANO烧了GBRL 当G代码解释器,另一个UNO接了个旋转编码器,当手操器了 ...

    厉害,学习了
    打赏作者鼓励一下!
    发新帖
    发表评论
    高级模式  
    您需要登录后才可以回帖 登录 | 立即注册  
    关闭

    推荐主题 上一条 /2 下一条