arduino 两相步进电机_arduino控制相垂直的两个步进电机 - CSDN
精华内容
参与话题
  • 这种搭配: 上来就放程序给你们!!看了太多理论,写不出驱动程序就很抓急,还是驱动起来,听着滋滋的电磁声,才让人颇有成就感~~ 只需三步,三步登天! 第一步,拷贝驱动程序: #define CLK 7 ...

    【步进电机】Arduino+MR2驱动42步进电机(进阶)


    https://blog.csdn.net/ff_tt/article/details/78397811#commentBox
    http://www.geek-workshop.com/thread-4319-1-1.html
    这种搭配:
    在这里插入图片描述
    驱动起来,听着滋滋的电磁声,才让人颇有成就感~~
    在这里插入图片描述

    只需三步,三步登天!

    第一步,拷贝驱动程序:

    #define CLK 7
    void setup() {
    pinMode(CLK,OUTPUT);
    Serial.begin(9600);
    }
    void loop() {
    digitalWrite(CLK,HIGH);
    delayMicroseconds(1000);//延迟1毫秒
    digitalWrite(CLK,LOW);
    delayMicroseconds(1000);
    }
    

    第二步,细分数设置,设置为16

    在这里插入图片描述

    第三步,我的连线方式,请按实际连线:PUL-连接在arduino 7 引脚,哪个都行的

    在这里插入图片描述
    为什么这样呢?因为:
    在这里插入图片描述
    再看一下程序,7脉冲信号输出,置高置低置高置低置高置低置高置低~~就是500Hz
    在这里插入图片描述

    接下来是理论啦

    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    我的电机:
    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述

    void MOTOR_Init(void)
    {
      RCC->APB2ENR|=1<<2;
      GPIOA->CRL&=0xffff0000;
      GPIOA->CRL|=0x00003333;
    }123456
    
    节拍(8):
    
    //第一拍
      AIN1_1=1;
      AIN1_2=0;
      BIN1_1=0;
      BIN1_2=0;
      delay_us(2500);
      //第二拍
      AIN1_1=1;
      AIN1_2=0;
      BIN1_1=1;
      BIN1_2=0;
      delay_us(2500);
      //第三拍
      AIN1_1=0;
      AIN1_2=0;
      BIN1_1=1;
      BIN1_2=0;
      delay_us(2500);
     //第四拍
      AIN1_1=0;
      AIN1_2=1;
      BIN1_1=1;
      BIN1_2=0;
      delay_us(500);
        //第五拍
      AIN1_1=0;
      AIN1_2=1;
      BIN1_1=0;
      BIN1_2=0;
      delay_us(2500);
      //第六拍
      AIN1_1=0;
      AIN1_2=1;
      BIN1_1=0;
      BIN1_2=1;
      delay_us(2500);
      //第七拍
      AIN1_1=0;
      AIN1_2=0;
      BIN1_1=0;
      BIN1_2=1;
      delay_us(2500);
     //第八拍
      AIN1_1=1;
      AIN1_2=0;
      BIN1_1=0;
      BIN1_2=1;
      delay_us(2500);
    
    ---------------------
    
    本文来自 ff_tt 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/ff_tt/article/details/78397811?utm_source=copy 
    
    展开全文
  • ARDUINO 步进电机驱动(按键控制 速度+位置+复位)

    千次阅读 热门讨论 2020-07-11 12:14:40
    步进电机的转动圈数作为位置(计算实际位移其实只要几个公式就行),用脉冲的周期作为速度(实际速度也很好计算的啦)。 2、因为时间和单片机限制(arduino只有个外部中断口),没有采用中断的...

    前言:这是一个课程设计,比较简单,线路、程序完全是我们自己做出来的(两天时间),分享给需要的同学参考一下。

    1、因为没有限位开关,所以用一个按键代替前后的限位开关。用步进电机的转动圈数作为位置(计算实际位移其实只要几个公式就行),用脉冲的周期作为速度(实际速度也很好计算的啦)。

    2、因为时间和单片机限制(arduino只有两个外部中断口),没有采用中断的形式读取按键。大家可以在此基础上改进哦!

     

    1、设计要求和设计参数

    该模组由57BY系列两相混合步进电机驱动,电机相关参数如下:额定电压:12~48V,额定电流2A,步距角:1.8°,扭矩0.294~0.882N.m。要求:实现对模组速度和位置控制,并有复位功能和限位保护功能。

    2、设计思路

    本设计采用M415B步进电机驱动器控制步进电机,核心控制模块采用Arduino-UNO单片机,通过控制脉冲个数来控制电机的角位移量,从而达到准确定位的目的,通过控制脉冲频率来控制电机转动的速度和加速度,从而到达调速的目的。此外,采用五个按键下达命令:加减速、变向、开始停止、复位、限位开关。系统设计如图 1所示。

    其中,弱电接线信号:

    PUL+:脉冲信号,上升沿有效,每当脉冲由低变高时电机走一步。

    DIR+:方向信号,TTL电平驱动。

    ENA+:使能信号,禁止或允许驱动器工作,低电平禁止。

    PUL-:脉冲信号地。

    DIR-:方向信号地。

    ENA-:使能信号地。

     

    其中,强电接线信号:

    GND:直流电源地。

    +V:直流电源正极,典型24V。

    A+A-:电机A相。

    B+B-:电机B相。

    3、其他

    电机驱动板上还有四个拨码开关,改变拨码开关的组合从而实现精度细分。如果开关都为on(默认情况下),是200脉冲/圈。其他细分情况如下表:

    步进电机驱动的相关连接:https://blog.csdn.net/ylzmm/article/details/78942660

    步进电机AB相的确定及连线:http://m.gkong.com/bbs/439136.ashx?page=1

    4、单片机控制主程序流程图

    5、 程序下载链接https://download.csdn.net/download/weixin_40820983/11187868

     

     

     

     

     

    展开全文
  • Arduino+A4988+步进电机

    万次阅读 2018-05-20 21:10:31
    初识Arduino,有什么错漏的地方请指正.学会使用A4988驱动电机对于DIY3D打印机,雕刻机很有帮助。6线一般是两组,先用万用表接其中一...实验目的:Arduino与A4988驱动42步进电机材料如下:Arduino uno *1A4988 *142步进...
    初识Arduino,有什么错漏的地方请指正.

    学会使用A4988驱动电机对于DIY3D打印机,雕刻机很有帮助。

    6线一般是两组,先用万用表接其中一根线,然后一次点其他线,凡是不同的都是另外一组,每一组有三根线,两两测试,电阻最大的是线圈的两头抽头,剩下一根是中心抽头。

    实验目的:Arduino与A4988驱动42步进电机


    材料如下:

    Arduino uno *1
    A4988            *1
    42步进电机    *1
    面包板            *1
    9V外接电源    *1
    导线               若干

    step 1:接线

    关于接线更详细的相关资料:http://fritzing.org/projects/a4988-single-stepper-test/


    MS1 , MS2 , MS3 跳线说明:(例子里是低电平,悬空或接地线,使用全步进模式)

    分别是全步进,1/2步进,1/4步进,1/8步进,1/16步进模式。

    步进电机走一步是1.8度,一圈就是200步。例如使用1/16步进,则需要走3200步才等于一圈。




    step 2:测试程序程序

    网盘下载程序


    [objc] view plain copy
    1. int x;  
    2.   
    3.   
    4. void setup()  
    5. {  
    6.   pinMode(6,OUTPUT); // Enable  
    7.   pinMode(5,OUTPUT); // Step  
    8.   pinMode(4,OUTPUT); // Dir  
    9.   digitalWrite(6,LOW); // Set Enable low  
    10. }  
    11.   
    12.   
    13. void loop()  
    14. {  
    15.     
    16.   digitalWrite(4,HIGH); // Set Dir high  
    17.     
    18.   for(x = 0; x < 200; x++) // Loop 200 times  
    19.   {  
    20.       digitalWrite(5,HIGH); // Output high  
    21.       delayMicroseconds(800); // Wait 1/2 a ms  
    22.       digitalWrite(5,LOW); // Output low  
    23.       delayMicroseconds(800); // Wait 1/2 a ms  
    24.     }  
    25.   delay(1000); // pause one second  
    26.     
    27.   digitalWrite(4,LOW); // Set Dir low  
    28.     
    29.   for(x = 0; x < 200; x++) // Loop 2000 times  
    30.   {  
    31.       digitalWrite(5,HIGH); // Output high  
    32.       delayMicroseconds(800); // Wait 1/2 a ms  
    33.       digitalWrite(5,LOW); // Output low  
    34.       delayMicroseconds(800); // Wait 1/2 a ms  
    35.     }  
    36.     delay(1000); // pause one second  
    37. }  


    ps后记学习:


    *脚6(-en) 低电平为启动电机(enable),貌似也可以不接,试过一样能运行.但如果要控制电机的启动关闭还是要用上

    *脚4(-dir) 用高低电平控制方向.

    *脚5(-step) 用高低电平驱动电机转动.注意中间间隔等待的微秒值,如果太快会导致电机有声响不转动.



    4988步进电机驱动板常见问题

    1、4988驱动板可以驱动57电机吗?
    4988可以驱动的电机跟尺寸关系不大,主要与工作电流有关,理论上电流小于2A的步进电机都是可以驱动的,不论是42还是57电机。

    2、可以驱动多大的电流?
    如果4988芯片上没有加散热片,电流最好在1.2A以下。如果加散热片,电流可以达到2A。

    3、步进电机的连接方式是什么?
    正如4988板子背面所标识的,连接方式是依次连接步进电机的1B-1A-2A-2B,或者反向为2B-2A-1A-1B,或者1A-1B-2B-2A,其它的方式一次类推。如果你的电机线是标准的红蓝绿黑的颜色,可以按照颜色连接为:红-蓝-绿-黑,或相反:黑-绿-蓝-红。

    4、如何调节相电流?
    相电流的大小跟步进电机的扭力有直接关系,如果感觉你的步进电机扭力不足,可以加大4988板子的电流配置。驱动板是通过一个小的电位器来实现对输出电流的配置的。可以通过用万用表测量电位器中间管脚的电位。电位和电流的关系满足下面的公式:Vref = A*0.8.也就是如果你想配置电机工作电流为1A,则电位应该配置在0.8V。默认的元件配置可以将电流调节到1.5A,如果需要更大电流需要修改电路中的R1,将30K的阻值改为20K(左右),就可以将电流调节到2A左右。

    5、4988板子的细分如何配置?
    4988板子细分配置需要ramps或其它相似板子的短路块来配置。ramps上对应每个4988驱动都有ms1,ms2,ms3三个短路块来调节细分(需要取下4988板子才可以看到),
    ms1 | ms2 | ms3
    no | no | no |全细分
    yes | no | no |1/2(2细分)
    no | yes | no | 1/4 (4细分)
    yes | yes | no |1/8(8细分)
    yes | yes | yes | 1/16(16细分)

    6、接上电机后,电机不能正常运行,在左右抖动,是什么原因?
    电机出现抖动一般有两个原因,
    一是缺相:可能是4988板子没有焊接好或因为外力导致4988的输出端某一相断开,造成电机缺相从而抖动。也有可能是步进电机接线只用一相没有连接好;
    而是两相接错:如果步进电机没有按照正确的顺序进行连接,电机也会出现抖动的情况,请按照问题3进行正确的连接。

    7、4988可以驱动两相六线或两相无线的电机吗?
    可以,两相连线按照问题3连接,将中间抽头悬空即可。

    8、电机停止转动时会有滋滋的电流声。
    首先说明的是这是正常现象。步进电机的特点是走特定的角度而不是一直转,所以步进电机都有一个参数,步距角。如果通过细分,可以最小走 步距角/细分数的角度,比如步距角为1.8度的步进电机,采用16细分,最小可以走的角度是1.8/16=0.1125度。但由于这个角度非常小,并且不一定在电机物理所在的位置(1.8度为一个物理位置),所以步进电机停止时也需要通电,从而保证电机不会自动跳到物理步距角上。因为这个特性使得步进电机在静止时会有电流声,这属于正常现象,不用担心。




    展开全文
  • 实验目的:利用Arduino+TB6600驱动模块控制两相四线42减速步进电机 材料: Arduino Nano *1 TB6600驱动器 *1 42减速步进电机*1 面包板 *1 12V电源适配器*1 导线 若干 接线: 12V电源适配器正负极分别接驱动器VCC...

    实验目的:利用Arduino+TB6600驱动模块控制两相四线42减速步进电机


    材料:

    Arduino Nano   *1

    TB6600驱动器  *1

    42减速步进电机*1

    面包板                *1

    12V电源适配器*1

    导线                   若干


    接线:

    12V电源适配器正负极分别接驱动器VCC和GND

    步进电机黑绿红蓝线分别接驱动器的A+、A-、B+、B-

    Arduino的D5接驱动器PUL+

    Arduino的GND接驱动器PUL-



    程序:

    void loop()  
    {  
        
      digitalWrite(4,HIGH); // Set Dir high  
        
      for(x = 0; x < 1036; x++) // Loop 200 times  
      {  
          digitalWrite(5,HIGH); // Output high  
          delayMicroseconds(483); // Wait
          digitalWrite(5,LOW); // Output low  
          delayMicroseconds(483); // Wait
        }  
    //  delay(1000); // pause one second  
        
      //digitalWrite(4,LOW); // Set Dir low  
        
    //  for(x = 0; x < 200; x++) // Loop 2000 times  
    //  {  
    //      digitalWrite(5,HIGH); // Output high  
    //      delayMicroseconds(10000); // Wait
    //      digitalWrite(5,LOW); // Output low  
    //      delayMicroseconds(10000); // Wait
    //    }  
    //    delay(1000); // pause one second  
    }  


    备注:

    1.由于驱动器设置的细分为200脉冲一圈,但是考虑到5.18的减速比,电机转一圈1036个脉冲

    2.初次实验所以没有接上DIR和ENA

    3.该程序可让电机按每秒钟一转的速度单方向不间断旋转

    展开全文
  • 使用Arduino开发板控制步进电机

    千次阅读 2017-02-06 12:53:03
    目前为止,我还没有真正深入了解过电机,特别是步进电机。 最近我在计划一个项目,需要相对精确的电机控制,所以可能会使用到步进电机,但很快就意识到我首先应该更多地了解这些。 本篇文章主要介绍我到目前为止学到...
  • arduinoarduino uno + A4988控制42步进电机

    万次阅读 多人点赞 2017-12-02 09:21:09
    MS1 , MS2 , MS3 跳线说明:(例子里是低电平,悬空或接地线,使用全步进模式) ...分别是全步进,1/2步进,1/4...步进电机走一步是1.8度,一圈就是200步。例如使用1/16步进,则需要走3200步才等于一圈。 ms1 
  • Arduino编程->步进电机角度控制

    千次阅读 2017-07-20 10:18:43
    #include #define KEY 2 //定义 key_1 I/O number is 2 // 参考文件 ... 该参数根据电机每一转的步数来修改 */ const int stepsPerRevolution = 256; const int stepsDelay = 10000; int stepin=0; int coun
  • 最近自学Arduino,在使用步进电机时开始没能使步进电机转起来,转起来后感觉没法调速,遂完成此篇笔记供自己后续查阅以及方便遇到相同问题的诸君寻找灵感。对于如何使步进电机转动就不详述,网上有很多。 Stepper...
  • 本篇介绍步进电机驱动库的使用,通过读取电位器输入,控制步进电机转动相应角度。
  • 步进电机,由于其独特的设计,可以没有任何反馈机制而控制到一个高度的准确性。一个步进电机的轴,安装有一系列的磁铁,是由一系列的电磁线圈控制,这些线圈按一个特定的序列排列正负极,尤其是向前或向后移动一小...
  • 步进电机 HD6600驱动器 附arduino教程

    千次阅读 2017-12-02 10:26:51
    不过有时可能也会发一点解题的心得,现在主要精力放在学业和嵌入式上面,废话不多说,下面分享一下关于步进电机以及驱动器的调试方法。 首先我们要了解一下什么叫步进电机,网上大家可以查阅相关的资料 附上一个...
  • 使用Arduino开发板控制伺服电机

    千次阅读 2018-04-29 09:19:06
    伺服电机在许多不同的应用中是非常有用的,我们应该好好学习如何控制他们。 https://www.yiboard.com/thread-621-1-1.html
  • L293D电机驱动版在Arduino上使用笔记

    万次阅读 多人点赞 2017-01-30 15:31:20
    L293D电机驱动版在Arduino上使用笔记硬件连接电源驱动板是可以接受Arduino板的电力的,但是,arduino也就那么点电压,带一个小直流电机还好说,东西搞多了,也是供不应求的.不过幸好L293D支持外部供电,通过上图中的外接...
  • 五线步进电机

    万次阅读 2016-05-19 11:12:02
    进电机是一种将电脉冲转化为角位移的执行机构。通俗一点讲:当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(及步进角)...工业使用的步进电机与本次实验使用的不同,下面图式种不
  • 1.电机介绍 1.1 作用 电机-->电磁感应---电能转化为动能 1.2 电机分类 工作电源:直流电机(DC)、交流电机(AC)和交直流两用电机 直流电机分类:有刷直流电机和无刷直流电机 1.3 有刷直流电机模型及工作...
  • 驱动示例如下,注意Stepper stepper(STEPS, 8, 9, 10, 11),改为Stepper stepper(STEPS, 8, 10, 9, 11)即可,该程序在arduino UNO板上运行后,电机正反转没有问题,但在esp8266运行时只能“单向旋转”,旋转方向或正...
  • Arduino学习笔记(5)-- 步进电机转速和方向控制

    万次阅读 多人点赞 2019-05-25 11:26:53
    本文尝试用Arduino开发版控制42步进电机,搭配通用的步进电机驱动器,实现对步进电机的转速控制和方向控制。 原材料: Arduino开发板及附件 42步进电机和配套驱动器 电源 接线方式:共阴 总览 2、42步进电机...
  • arduino-解决舵机与直流电机冲突问题

    千次阅读 2017-03-22 09:39:04
    可能很多人在使用servo库控制舵机时与直流电机发生冲突,在调用Servo.attach(pin)方法之后,可能会有点机不转了,我们去官网看看关于servo库的介绍, The Servo library supports up to 12 motors on most Arduino ...
  • Arduino 和 TB6612FNG 驱动直流电机

    万次阅读 多人点赞 2019-09-15 17:24:51
    TB6612FNG 电机驱动模块 该模块对于传统的L298N效率上提高很多,体积上也大幅度减少,在额定范围内,芯片基本不发热。 TB6612FNG每通道输出最高1.2 A的连续驱动电流,启动峰值电流达2A/3.2 A(连续脉冲/单脉冲...
  • 单片机-控制-步进电机

    千次阅读 多人点赞 2018-08-18 23:01:57
    步进电机是如何工作的 步进电机(stepping motor) 步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件,是一种将电脉冲转化为角位移的执行机构。通俗一点讲:当步进驱动器接收到一个脉冲信号,它...
1 2 3 4 5 ... 8
收藏数 146
精华内容 58
关键字:

arduino 两相步进电机