1. 电路接法

    步进电机需要的驱动电流很大,因此直接使用单片机往往管脚电流不够,加上一般3.3V的单片机也无法驱动5V的步进电机,因此需要电路转换。

    常用的ULN2003芯片驱动步进电机。ULN2003就是起到了电流放大作用,也使得驱动电压变成了5V。除了用ULN2003也可以自己用三极管搭建电路,原理与ULN2003内部结构类似。

  2. 了解相序

    也就是步进电机要运转时,如何给脉冲,让电机连续运动。

    ps:如果给错脉冲可能左转几下又转回来。下图就是小编电机的相序。

  3. 软件的实现  使用STM32F103控制电机

    下面是正转翻转的编码 根据技术要求。如图用的单双八拍。

    unsigned char F_Rotation[8]={0x08,0x0c,0x04,0x06,0x02,0x03,0x01,0x09} ;  //FAN

    unsigned char B_Rotation[8]={0x09,0x01,0x03,0x02,0x06,0x04,0x0c,0x08} ;  //ZHENG

    此函数两个参数,第一个参数是圈数。第二个参数是方向也就是选择正转和翻转

    void motorNCircle(int n,bool position)

    {

    int i=0;

    int  j=0;

    int k=0;

    for(j=0;j<n;j++)

    {

    for(i=0;i<64*8;i++)

    {

    for(k=0;k<8;k++)

    {

    if(TRUE == position)

    SetMotor(F_Rotation[k]);

    else

    SetMotor(B_Rotation[k]);

    Delay(20000);

    }

    }

    }

    }

    下面就是SetMotor函数,根据传的数据不同,控制的4个IO pin输出不同。

    void SetMotor(unsigned char InputData)

    {

    if(InputData & 0x08)

    {

    GPIO_ResetBits(GPIOC, GPIO_Pin_6 );

    }

    else

    {

    GPIO_SetBits(GPIOC, GPIO_Pin_6);

    }

    if(InputData & 0x04)

    {

    GPIO_ResetBits(GPIOC, GPIO_Pin_7 );

    }

    else

    {

    GPIO_SetBits(GPIOC, GPIO_Pin_7);

    }

    if(InputData & 0x02)

    {

    GPIO_ResetBits(GPIOC, GPIO_Pin_8 );

    }

    else

    {

    GPIO_SetBits(GPIOC, GPIO_Pin_8);

    }

    if(InputData & 0x01)

    {

    GPIO_ResetBits(GPIOC, GPIO_Pin_9 );

    }

    else

    {

    GPIO_SetBits(GPIOC, GPIO_Pin_9);

    }

    }

  4. 如何计算

    以28BYJ-48为例,根据技术资料,步距的角度为5.625-64 而且带有减速齿轮是1:64 因此转64乘64个脉冲才是1圈。  因此一个脉冲转过5.625除64=0.08789度。

    所以有了下面的循环。

    for(j=0;j<n;j++)

    {

    for(i=0;i<64*8;i++)       //64*8

    {

    for(k=0;k<8;k++)    //4相单双8拍

    {

    if(TRUE == position)

    SetMotor(F_Rotation[k]);

    else

    SetMotor(B_Rotation[k]);

    Delay(20000);       //注意这个延时自己去调节。

    }

    }

STM32103驱动28BYJ48步进电机相关推荐

  1. Arduino 调用Stepper库驱动28BYJ-48步进电机,电机振动不转、无法反方向转的解决办法

    电机堵转 首先检查杜邦线是否正常联通,如GND线接触不良,电机也会导通,但无法正常工作. 检查Arduino和驱动板接线是否正确,正确硬件接线如下图,即板子IO 8.9.10.11分别对应 驱动IN ...

  2. python控制步进电机_MicroPython TPYBoard v102 驱动28BYJ-48步进电机

    TPYBoard v102 驱动28BYJ-48步进电机 实验目的 了解步进电机的工作原理 学习步进电机的驱动方法 实验器材 TPYBoard v102 1块 微型步进电机(28BYJ-48) 1个 ...

  3. 解决ESP32 驱动 28BYJ-48 步进电机反向不转之震动的问题

    解决ESP32 驱动 28BYJ-48 步进电机反向不转之震动的问题 date: 2021-09-19 lastmod: 2021-09-19 问题描述 Esp 32 在 mqtt 消息下通过 Ste ...

  4. 使用 ULN2003 驱动 28BYJ-48 步进电机

    使用 ULN2003 驱动 28BYJ-48 步进电机. 要用一个步进电机测试东西,不过需求来的比较突然手边也没有像是A4988或TMC2209这种硬件驱动,于是就用别人的ULN2003驱动和28BY ...

  5. Ardunio使用ULN2003驱动28BYJ-48步进电机

    Ardunio使用ULN2003驱动28BYJ-48步进电机 28BYJ-48步进电机内部原理图 实物图 相关参数 28BYJ-48步进电机步进电机最高也就 能收1000hz脉冲,再快就堵转了,根据参 ...

  6. TPYBoard v102 驱动28BYJ-48步进电机

    为什么80%的码农都做不了架构师?>>> TPYBoard v102 驱动28BYJ-48步进电机 实验目的 了解步进电机的工作原理 学习步进电机的驱动方法 实验器材 TPYBoar ...

  7. [ 电子]STM32驱动28BYJ-48步进电机实现外网控制

    新人博主Github==>https://github.com/MartinxMax 这个项目能做什么? 用到了哪些编程语言? 需要什么硬件? 硬件接线 配置SIM900A STM32 C语言代 ...

  8. 【常用芯片】ULN2003工作原理及中文资料(实例:STM32驱动28BYJ48步进电机)

    ULN2003的基本介绍 ULN2003的概述 ULN2003是高耐压.大电流复合晶体管阵列,由七个硅NPN 复合晶体管组成.一般采用DIP-16 或SOP-16 塑料封装. ULN2003的主要特点 ...

  9. 使用ULN2803驱动28BYJ-48步进电机

    uln2803则是解决驱动问题,单片机达不到驱动电流,使用也很方便,1-8引脚是输入,9接地,10接VCC,11到18输出,输入高电平,输出低电平,输出高,则无法驱动电机,这里的电机正极接电源,负极接 ...

最新文章

  1. 使用pinchzoom实现头像剪裁
  2. Python自定义:粒子群优化算法
  3. 基于区块链的健康链系统设计与实现(3)系统设计
  4. 人群频率 | gnomAD数据库 (二) 后台数据的获取及质量评估
  5. 浏览器通知,可配合socket
  6. 文本分类(一)封装分词器
  7. android 中xml解析方式
  8. SQL SERVER 数据库概括
  9. java 自定义表单 动态表单 表单设计器 工作流引擎 flowable 设计方案
  10. GHOST备份还原系统教程
  11. 显示Java国家列表
  12. 2018入门微单相机推荐
  13. 这么多大学,保证一志愿优先录取!
  14. 2020第六届“美亚杯”团队赛WP
  15. 怎样购买笔记本电脑-世界十大品牌
  16. VxWorks中文FAQ
  17. biopython:2:序列组成
  18. mac程序进程无法退出,强制退出后有重启了,怎么彻底解决?
  19. IMSI,SN,IMEI分别是什么意思
  20. 计算机字长通常不可能,计算机的字长通常不可能为( )位。

热门文章

  1. 关于坐标系和投影的相关知识探讨
  2. 计算机休眠会断电吗,电脑休眠后到底可不可以切断电源!!是还是不是啊??
  3. 纪中20日c组模拟赛T1 2121. 简单游戏
  4. 我是没有口袋的哆啦a梦
  5. swak4foam的安装(v7测试有效)
  6. JAVA学习内容汇总(一)
  7. Objective-C基础教程读书笔记(3)
  8. ironpython 使用-IronPython
  9. 游戏音效分类以及运用场景
  10. ROS+UR机械臂+Moveit+ 仿真与实体机械臂的使用+realsense相机+eye_handeye手眼标定(亲测有效)下