一、大致介绍:

步进电机是将电脉冲信号转变为角位移或线位移的开环控制元步进电机件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度,称为“步距角”,它的旋转是以固定的角度一步一步运行的。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。

          图1 常见的几种步进电机

     图2 步进电机和ULN2003合用

二、常用术语

1、相数:产生不同对极N、S磁场的激磁线圈对数。常用m表示。
2、拍数:完成一个磁场周期性变化所需脉冲数或导电状态用n表示,或指电机转过一个齿距角所需脉冲数,以四相电机为例,有四相四拍运行方式即AB-BC-CD-DA-AB,四相八拍运行方式即 A-AB-B-BC-C-CD-D-DA-A。
3、步距角:对应一个脉冲信号,电机转子转过的角位移用θ表示。θ=360度/(转子齿数*运行拍数),以常规二、四相,转子齿为50齿电机为例。四拍运行时步距角为θ=360度/(50*4)=1.8度(俗称整步),八拍运行时步距角为θ=360度/(50*8)=0.9度(俗称半步)。
     图3 步进电机内部模型图
三、驱动方式
1、1相励磁法:每一瞬间只有一个线圈相通,其它休息。(优点)简单,耗电低,精确性良好。(缺点)力矩小,振动大,每次励磁信号走的角度都是标称角度。
2、2相励磁法:每一瞬间有两个线圈导通。(优点)力矩大,震动小。(缺点)每励磁信号走的角度都是标称角度。
3、1-2相励磁法:1相和2相交替导通。(优点)精度较高,运转平滑,每送一个励磁信号转动1/2标称角度,称为半步驱动。(前两种称为4相4拍,这一种称为4相8拍)
 (a)1相励磁法     (b)2相励磁法    (c)1-2相励磁法
        图4 3种驱动方式
三、代码
 1 /*-----------------------------------------------
 2 名称:步进电机
 3 论坛:www.doflye.net
 4 编写:shifang
 5 日期:2009.5
 6 修改:无
 7 内容:本程序用于测试4相步进电机常规驱动 使用1相励磁
 8  ------------------------------------------------*/
 9 #include <reg52.h>
10
11 sbit A1=P1^0; //定义步进电机连接端口
12 sbit B1=P1^1;
13 sbit C1=P1^2;
14 sbit D1=P1^3;
15
16 #define Coil_A1 {A1=1;B1=0;C1=0;D1=0;}//A相通电,其他相断电
17 #define Coil_B1 {A1=0;B1=1;C1=0;D1=0;}//B相通电,其他相断电
18 #define Coil_C1 {A1=0;B1=0;C1=1;D1=0;}//C相通电,其他相断电
19 #define Coil_D1 {A1=0;B1=0;C1=0;D1=1;}//D相通电,其他相断电
20 #define Coil_OFF {A1=0;B1=0;C1=0;D1=0;}//全部断电
21
22 unsigned char Speed;
23 /*------------------------------------------------
24  uS延时函数,含有输入参数 unsigned char t,无返回值
25  unsigned char 是定义无符号字符变量,其值的范围是
26  0~255 这里使用晶振12M,精确延时请使用汇编,大致延时
27  长度如下 T=tx2+5 uS
28 ------------------------------------------------*/
29 void DelayUs2x(unsigned char t)
30 {
31  while(--t);
32 }
33 /*------------------------------------------------
34  mS延时函数,含有输入参数 unsigned char t,无返回值
35  unsigned char 是定义无符号字符变量,其值的范围是
36  0~255 这里使用晶振12M,精确延时请使用汇编
37 ------------------------------------------------*/
38 void DelayMs(unsigned char t)
39 {
40  while(t--)
41  {
42      //大致延时1mS
43      DelayUs2x(245);
44      DelayUs2x(245);
45  }
46 }
47 /*------------------------------------------------
48                     主函数
49 ------------------------------------------------*/
50 main()
51 {
52  Speed=5; //调整速度
53  while(1)
54   {
55      Coil_A1                 //遇到Coil_A1  用{A1=1;B1=0;C1=0;D1=0;}代替
56      DelayMs(Speed);         //改变这个参数可以调整电机转速 ,
57                              //数字越小,转速越大,力矩越小
58      Coil_B1
59      DelayMs(Speed);
60      Coil_C1
61      DelayMs(Speed);
62      Coil_D1
63      DelayMs(Speed);
64   }
65 }

转载于:https://www.cnblogs.com/zjutlitao/p/4154069.html

[51单片机] 四相五线减速比为1/64步进电机驱动设计相关推荐

  1. 【038】基于51单片机的土壤湿度自动浇花系统Proteus仿真设计

    一.压缩包资料内容 (1).基于51单片机的土壤湿度自动浇花系统proteus仿真设计一份: (2).基于51单片机的土壤湿度自动浇花系统proteus仿真设计keli源代码一份: (3).基于51单 ...

  2. 51单片机双机串口数码管显示排队叫号仿真设计( proteus仿真+程序+报告+讲解视频)

    51单片机双机串口数码管显示排队叫号仿真设计 1.主要功能: 2.仿真 3.程序 4.设计报告 1.1 设计背景与意义 1.2 设计目的 1.3 设计要求及内容 1.4 本文结构安排 2 总体设计方案 ...

  3. 【011】基于51单片机的低频信号发生proteus仿真与实物设计

    ​一.资料内容 (1).基于51单片机的低频信号发生proteus仿真设计一份: (2).基于51单片机的低频信号发生proteus仿真设计keli源代码一份: (3).基于51单片机的低频信号发生A ...

  4. 51单片机简易电阻电感电容RLC测量仪仿真设计

    51单片机简易电阻电感电容RLC测量仪仿真( proteus仿真+程序+讲解视频) 仿真图proteus7.8及以上 程序编译器:keil 4/keil 5 编程语言:C语言 设计编号:S0040 5 ...

  5. 51单片机学习笔记——第2天:简易门铃设计(普中51中级实验例程)

    文中绝大数代码来自普51开发板实验例程 门铃这个实验实际上就是按键和蜂鸣器的组合实验,没啥难度,唯一的用处就是为下一个实验(音乐播放器)做铺垫. 文章目录 门铃实现原理 扩展,调节"叮咚&q ...

  6. 51单片机汇编密码锁(可修改密码,课程设计,含论文)!(大三上)

    单片机课程设计 设计课题:密码锁 一上来不bb太多,提供所有文件下载地址. 点击下载所有文件(汇编51单片机密码锁(含论文.程序.AD图)单片机课程设计) https://download.csdn. ...

  7. 基于51单片机的简易电容值测量仪proteus仿真设计

    51单片机简易电感测量仪仿真设计( proteus仿真+程序+讲解视频) 仿真图proteus7.8及以上 程序编译器:keil 4/keil 5 编程语言:C语言 设计编号:S0039 51单片机简 ...

  8. 基于51单片机的光照强度检测c语言程序,智能仪器课程设计-基于51单片机的光照强度检测报告.doc...

    该设计论文已经通过各大高校老师审核认可并通过答辩,.欢迎大家下载学习交流.如有疑问可随时联系店主,竭诚为您解答!! 课程设计报告 课程名称: 智能仪器课程设计 题 目: 基于51单片机的光照强度 摘要 ...

  9. 基于51单片机红外遥控人体感应自动车库门控制设计(程序+Proteus仿真+原理图+PCB图+参考论文+开题报告+任务书等)

    一.硬件方案 单片机的红外遥控人体感应自动门控制系统设计的实现主要有电源5V供电.单片机最小系统.红外感应遥控模块,红外一体接收头,按键电路,步进电机驱动电路,指示灯电路组成.. 二.设计功能 1.如 ...

  10. 51单片机|keilc51|实例|定时器中断|简易的交通灯设计

    文章目录 1.实验要求 2.实验原理 3.Keil c51编程 4.Proteus仿真 5.问题及总结 1.编程过程中创建了字符串 code[] ,编译出错 2.LED始终不亮 3.keil中全局替换 ...

最新文章

  1. 铁乐学Python_Day35_Socket模块3和hmac模块
  2. Java集合工具类(三)-泛型集合工具类,用于便捷快速的定义、操作集合。包含Set的交集、并集......
  3. android startactivity 跳到锁屏_「瀑布屏」手机到底好不好用?
  4. [转] C# TextBox、DataGrideView中的数据绑定
  5. mac idea在mybatis xml文件里引入全限定类名报红解决
  6. Linux--date命令 date命令
  7. 唯有自己变得强大_唯有自己变得强大,才能获得有用人脉!
  8. 我的linux复习之一密码修改
  9. JerryScript:物联网开发者的得力工具
  10. 无core文件根据系统日志查找 程序core信息
  11. 【Computer Organization笔记06】浮点数的数据表示,浮点数加减运算
  12. worker进程和task进程区别_swoole中使用task进程异步的处理耗时任务
  13. 能力与爱好 我能熟练使用计算机,关于2020大学生简历自我评价精选5篇(心选优品)...
  14. 【光模块、光接口及光纤知识】
  15. hihocoder #1328 : 逃离迷宫
  16. java.util.ConcurrentModificationException when interation the list then remove
  17. 借助于栈结构将一个单链表逆置
  18. 国内外数字源表品牌对比
  19. autoware下ndt_mapping节点解读
  20. CCNA理论学习笔记整理(一)

热门文章

  1. java SSM(Spring+SpringMVC+MyBatis)maven项目 intellij idea 2017配置 MAC,(Linux,ubuntu,centos 只要更改相应目录即可)
  2. LayaAir 屏幕适配-分辨率、对齐模式
  3. MySql 5.7.26(MySQL8)安装教程
  4. 阶段3 2.Spring_05.基于XML的IOC的案例1_4 注解IOC案例-把自己编写的类使用注解配置...
  5. 阶段1 语言基础+高级_1-3-Java语言高级_09-基础加强_第2节 反射_5_反射_概述
  6. 蓝桥杯 算法训练 数字三角形
  7. 【1】JVM-内存模型
  8. ubuntu搭建nfs网络文件系统
  9. Oracle系列--基础理论
  10. css3实现进度条的模拟