步进电机的简介:步进电机是一种将电脉冲转化为角位移的执行机构。当步进电机驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个步距角。通过控制脉冲来控制角位移量,也可以实现对电机的加减速和正反转的控制。常用的电机是28BYJ-48,如图所示:

步进电机的转动原理:改变绕组的磁场,就可以使步进电机正转和反转,改变磁场切换的时间间隔,就可以控制步进电机的速度。

步进电机的一些知识点:

1,相数:产生不同对极N,S磁场的磁线圈对数。

2,拍数:完成1个磁场周期性变化所需的脉冲数。例如由四相四拍,四相八拍。

3,步距角:对应一个脉冲信号,电机的转子转过的角位移。

单片机不能直接驱动步进电机,所以下面介绍下驱动电路ULN2003芯片

ULN2003是达林顿阵列,内部是一个“非门”电路,包含7个单元(16个引脚)具体引脚作用网上查找资料;

单片机与ULN2003的连接图:

用单片机实现步进电机的运转(四相八拍)代码程序:

#include "reg52.h"
typedef unsigned char u8;
typedef unsigned int u16;
sbit A = P1^0;   //定义引脚
sbit b = P1^1;
sbit C = P1^2;
sbit D = P1^3;
void setmotor();
void motor_cs();
void Timer0Init();u8 motorstep=0;  //步进电机步序
u16 Tim;
#define speed 12;
void Timer0() interrupt 1
{ static u16 count;TH0=0xfc;TL0=0x18;if(count -- ==0){count=5;Tim=1;}}
int main()
{Timer0Init();motor_cs();while(1){setmotor();}}void motor_cs()
{A=1;b=1;C=1;D=1;
}void setmotor()
{switch(motorstep){case 0:   //aif(Tim){A=0;b=1;C=1;D=1;motorstep=1;Tim=0;}break;case 1:   //abif(Tim){A=0;b=0;C=1;D=1;motorstep=2;Tim=0;}break; case 2:if(Tim){A=1;b=0;C=1;D=1;motorstep=3;Tim=0;}break;case 3:if(Tim){A=1;b=0;C=0;D=1;motorstep=4;Tim=0;}break;case 4:if(Tim){A=1;b=1;C=0;D=1;motorstep=5;Tim=0;}break;case 5:if(Tim){A=1;b=1;C=0;D=0;motorstep=6;Tim=0;}break;case 6:if(Tim){A=1;b=1;C=1;D=0;motorstep=7;Tim=0;}break;case 7:if(Tim){A=0;b=1;C=1;D=0;motorstep=0;Tim=0;}break;}}void Timer0Init()   //定时器中断的初始化
{TMOD=TMOD|0X01;TH0=0xfc;TL0=0x18;ET0=1;EA=1;TR0=1;}

单片机之步进电机驱动篇(一)相关推荐

  1. 单片机四线步进电机驱动 PROTEUS 和51单片机教程(附仿真文件+源代码)

    单片机四线步进电机驱动 程序功能: 当按下SW1时步进电机正转,按下SW2后步进电机反转,并可以根据源码任意调节旋转速度和每一个脉冲旋转角度 程序参考源代码如下: /C语言程序:/ #include ...

  2. 基于单片机的步进电机驱动电路设计

    基于单片机的步进电机驱动电路设计 步进电机在控制系统中具有广泛的应用.它可以把脉冲信号转换成角位移,并且可用作电磁制动轮.电磁差分器.或角位移发生器等. 有时从一些旧设备上拆下的步进电机(这种电机一般 ...

  3. 基于51单片机的步进电机驱动,亲测无误

    文章目录 前言 一.我们该如何实现电机驱动? 二.驱动实现 1.硬件准备 2.软件编写 3.实物 总结 前言 这一次要分享的项目是最近接单做的一个小玩意儿,基于51单片机的步进电机驱动.最近积压了两个 ...

  4. 基于STM32单片机闭环步进电机驱动调速仿真(仿真+源码+全套资料)

    资料编号:081 (1) 基本功能:本任务通过输出脉冲控制步进电机的停止.运动.方向.使用 两个按键分别控制步进电机的正转和反转,再次按下这两个按键,步进电机停止, 同时 LCD 显示电机状态信息. ...

  5. arduino步进电机程序库_Arduino基础入门篇27—步进电机驱动库的使用

    本篇介绍步进电机驱动库的使用,通过读取电位器输入,控制步进电机转动相应角度. Stepper库是官方提供的驱动库,我们启动Arduino IDE,点击「文件」-「示例」就能找到Stepper库,官方提 ...

  6. 步进电机驱动器设计c语言软件,最新基于单片机系统的步进电机驱动STC单片机步进电机驱动器的设计及C语言程序.doc...

    最新基于单片机系统的步进电机驱动STC单片机步进电机驱动器的设计及C语言程序 基于单片机系统的步进电机驱动 摘 要 本文介绍了基于80C52单片机的步进电机控制系统的设计.分别概括的介绍了单片机和步进 ...

  7. STC51单片机35——五线四相步进电机驱动测试程序(2个步进电机)

    /*--------------------------------------------------------------------------------      MCU:         ...

  8. 【Proteus仿真】51单片机+按键控制步进电机驱动+LCD1602显示

    [Proteus仿真]51单片机+按键控制步进电机驱动+LCD1602显示 Proteus仿真 在Proteus当中,步进电机选取的不同,接线的顺序不同,为了避免在接线出错,将里面的两种步进电机都选择 ...

  9. 【电机驱动芯片(单、双极性步进电机驱动方式/四相五线和42步进电机)——ULN2003、双H桥芯片(DRV8833/DRV8825)】

    文章目录 一.步进电机工作原理 1.基本原理 2.相关总结 二.单极性步进电机驱动(以ULN2003芯片+28BYJ-48电机为例) 1.28BYJ-48四相五线步进电机介绍 2.ULN2003芯片介 ...

  10. STM32控制步进电机:基于HAL库定时器中断的闭环步进电机驱动+精准控制脉冲数

    STM32控制步进电机:基于HAL库定时器中断的闭环步进电机驱动+精准控制脉冲数 一.步进电机闭环驱动器 二.CubeMx配置 1.Clock Configuration 2.脉冲端 定时器配置 3. ...

最新文章

  1. 什么是数据湖(Data Lake)?
  2. Unity3d 简单的小球沿贝塞尔曲线运动(适合场景漫游使用)
  3. poj2478 Farey Sequence (欧拉函数)
  4. oracle先删后建,oracle 建表之前先删除语句
  5. 9 操作系统第二章 进程管理 管程
  6. BZOJ 1597 [Usaco2008 Mar] 土地购买
  7. 如何才能降低真机测试成本和建议所使用平台
  8. Hive练习求给出2017年1月的新客数
  9. Android开发之使用GridView+仿微信图片上传功能(附源代码)
  10. java中文乱码_Java中文乱码问题的解决方案
  11. 把栏杆拍遍--辛弃疾
  12. 领域驱动设计(Domain Driven Design,DDD)
  13. String 类的常用方法
  14. python webdriver脚本例子_python-webdriver 开始第一个脚本
  15. js实现下载xls文件
  16. 一次哔哩哔哩面试经历
  17. 【现代通信原理笔记】4 数字基带传输
  18. openpbs环境下GPU版NAMD的作业提交问题
  19. 模型评价 - 分类模型的常用评价指标
  20. hugegraph图数据库索引详解

热门文章

  1. 关于半导体器件材料的这些基础知识你都知道?
  2. iframe背景色透明
  3. 一款比PowerDesigner好用的uml建模工具chiner
  4. java服务器返回中文乱码:???
  5. Debian中安装Vmware Tools
  6. 苹果系统itunes连iphone连不上服务器,iphone连不上itunes怎么办,iphone连不上itunes的解决办法...
  7. PDCA循环管理全面解析(含操作指南、案例应用)
  8. 【Pygame实战】超有趣的泡泡游戏来袭——愿你童心不泯,永远快乐简单哦~
  9. 脚本精灵服务器引擎数据为空,脚本精灵服务器
  10. C课设/宾馆客房管理系统/内附源码