文章目录

  • 前言
  • 一、步进电机
    • 1. 基本概念
    • 2. 电机结构
    • 3. 工作原理
    • 4. 产品参数
  • 二、ULN2003驱动板
  • 三、驱动程序

前言

采用STM32驱动28BYJ4步进电机,实现正转反转,完成角度调整。步进电机是一种将电脉冲转化为角位移的执行机构。当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动------一个固定的角度(及步进角)。可以通过控制脉冲个来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。


一、步进电机

1. 基本概念


步进电机是一种将电脉冲信号转换成相应角位移或线位移的电动机。每输入一个脉冲信号,转子就转动一个角度或前进一步,其输出的角位移或线位移与输入的脉冲数成正比,转速与脉冲频率成正比。因此,步进电动机又称脉冲电动机。

步进电机控制特点:

  1. 它是通过输入脉冲信号来进行控制的。
  2. 电机的总转动角度由输入脉冲数决定。
  3. 电机的转速由脉冲信号频率决定。

相数:产生不同对极N、S磁场的激磁线圈对数。常用m表示。

拍数:完成一个磁场周期性变化所需脉冲数或导电状态用n表示,或指电机转过一个齿距角所需脉冲数,以四相电机为例,有四相四拍运行方式即AB-BC-CD-DA-AB,四相八拍运行方式即A-AB-B-BC-C-CD-D-DA-A。

步距角:也叫步进角,对应一个脉冲信号,电机转子转过的角位移用0表示。0=360度/(转子齿数J运行拍数),以常规二、四相,转子齿为50齿电机为例。四拍运行时步距角为0=360度/(504) =1.8度(俗称整步),八拍运行时步距角为0=360度/(50*8)=0.9度(俗称半步)。

保持转矩:(HOLDING TORQUE)是指步进电机通电但没有转动时,定子锁住转子的力矩。它是步进电机最重要的参数之一,通常步进电机在低速时的力矩接近保持转矩。

空载启动频率:步进电机有一个技术参数:空载启动频率,即步进电机在空载情况下能够正常启动的脉冲频率,如果脉冲频率高于该值,电机不能正常启动,可能发生丢步或堵转。在有负载的情况下,启动频率应更低。如果要使电机达到高速转动,脉冲频率应该有加速过程,即启动频率较低,然后按一定加速度升到所希望的高频(电机转速从低速升到高速)。

2. 电机结构


原理图:

3. 工作原理


驱动节拍模式:

4. 产品参数

1. 技术参数

2. 外形尺寸(单位mm)

二、ULN2003驱动板

ULN2003是最常见的电机驱动器IC之一,由7对达林顿晶体管对的阵列组成,每对能够驱动高达500mA和50V的负载。该板上使用了七对中的四对。

连接器:可以完美地匹配电动机的电线,这使得将电动机轻松连接到板上非常容易;还有用于四个控制输入的连接以及电源连接。

四个LED:在四根控制输入线上显示活动(以指示步进状态),它们在电机运行时提供良好的视觉效果。

ON / OFF跳线:用于隔离步进电机的电源。

引脚排列

IN1 – IN4脚:用于驱动电动机。将它们连接到stm32上的数字输出引脚。

GND:是常见的接地引脚。

VCC:为电动机供电。将其连接到外部5V电源。由于电机消耗的功率过多,因此切勿使用Arduino的5V电源为步进电机供电。

马达接头:电机插入的地方。该连接器是带键的,因此只能以一种方式进入。

原理图:

三、驱动程序

motor

unsigned int Zz_flag = 0;
unsigned int Fz_flag = 0;
unsigned int Zz_Value = 0;
unsigned int Fz_Value = 0;void Motor_Init(void)
{GPIO_InitTypeDef GPIO_InitStruct;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_InitStruct.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9;GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOC,&GPIO_InitStruct);//GPIO_ResetBits(GPIOC,GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9);
}void Motor_Zz(void)//正转
{Zz_Value = 1;Fz_Value = 0;
}
void Motor_Fz(void)//反转
{Fz_Value = 1;Zz_Value = 0;
}
void Motor_Stop(void)
{Zz_Value = 0;Fz_Value = 0;Motor_A = 0;Motor_B = 0;Motor_C = 0;Motor_D = 0;
}
void Motor_Zz_Function(void)
{switch(Zz_flag)//八拍{case 0 : Motor_A = 1;Motor_B = 0;Motor_C = 0; Motor_D = 0;Zz_flag++;break;//Acase 1 : Motor_A = 1;Motor_B = 1;Motor_C = 0; Motor_D = 0;Zz_flag++;break;//ABcase 2 : Motor_A = 0;Motor_B = 1;Motor_C = 0; Motor_D = 0;Zz_flag++;break;//Bcase 3 : Motor_A = 0;Motor_B = 1;Motor_C = 1; Motor_D = 0;Zz_flag++;break;//BCcase 4 : Motor_A = 0;Motor_B = 0;Motor_C = 1; Motor_D = 0;Zz_flag++;break;//Ccase 5 : Motor_A = 0;Motor_B = 0;Motor_C = 1; Motor_D = 1;Zz_flag++;break;//CDcase 6 : Motor_A = 0;Motor_B = 0;Motor_C = 0; Motor_D = 1;Zz_flag++;break;//Dcase 7 : Motor_A = 1;Motor_B = 0;Motor_C = 0; Motor_D = 1;Zz_flag = 0;break;//DAdefault : break;}
}
void Motor_Fz_Function(void)
{switch(Fz_flag){case 0 : Motor_A = 1;Motor_B = 0;Motor_C = 0; Motor_D = 1;Fz_flag++;break;//DAcase 1 : Motor_A = 0;Motor_B = 0;Motor_C = 0; Motor_D = 1;Fz_flag++;break;//Dcase 2 : Motor_A = 0;Motor_B = 0;Motor_C = 1; Motor_D = 1;Fz_flag++;break;//CDcase 3 : Motor_A = 0;Motor_B = 0;Motor_C = 1; Motor_D = 0;Fz_flag++;break;//Ccase 4 : Motor_A = 0;Motor_B = 1;Motor_C = 1; Motor_D = 0;Fz_flag++;break;//BCcase 5 : Motor_A = 0;Motor_B = 1;Motor_C = 0; Motor_D = 0;Fz_flag++;break;//Bcase 6 : Motor_A = 1;Motor_B = 1;Motor_C = 0; Motor_D = 0;Fz_flag++;break;//ABcase 7 : Motor_A = 1;Motor_B = 0;Motor_C = 0; Motor_D = 0;Fz_flag=0;break;//Adefault : break;}
}

main

int main()
{int key = 0;int arr = 50;int Motor_flag = 0;TIM3_init(99,7199);Motor_Init();KEY_Init();Motor_Zz();while(1){key = Get_Indepedent_Key_Value();if(key) {switch(key){case KEY0_BASE : arr += 10; TIM_SetAutoreload(TIM3,arr);break;case KEY1_BASE : arr -= 10; TIM_SetAutoreload(TIM3,arr);break;case KEY_UP_BASE : if(Motor_flag % 2 == 0) Motor_Fz(); else Motor_Zz(); Motor_flag++;break;default : break;}} }
}

基于STM32的步进电机驱动设计相关推荐

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

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

  2. 智能手环功能模块设计_基于STM32实现智能手环设计

    龙源期刊网 http://www.qikan.com.cn 基于 STM32 实现智能手环设计 作者:付海生 陈婷婷 韩百科 涂曾兵 来源:<科学导报 · 学术> 2017 年第 10 期 ...

  3. 基于STM32的电子时钟设计

    基于STM32的电子时钟设计 1.设计目的 2.设计具体要求 3.proteus仿真图 4.程序代码 1.设计目的 (1)掌握使用KEIL MDK5进行软件开发的具体流程: (2)掌握硬件电路的设计方 ...

  4. 【毕业设计】基于STM32的智能路灯设计与实现 - 物联网 嵌入式 单片机

    文章目录 1 简介 2 绪论 2.1 项目背景 2.2 需求分析 3 系统设计 3.1 功能设计 3.1.1 系统角色分析 3.1.2 开发环境 3.2 总体设计 3.3 硬件部分 3.3.1 整体架 ...

  5. 【毕业设计】基于STM32 的电子计步器的设计与实现 - 物联网 单片机 嵌入式

    文章目录 1 简介 2 项目介绍 3 具体实现 3.1 整体架构 3.2 MPU6050 3.2.1 什么是MPU6050 3.2.2 MPU6050的特点: 4 如何实现记步 4.1 峰值判断记步法 ...

  6. 基于stm32单片机的电子称设计

    基于stm32单片机的电子称设计 **==完整论文和程序关注我获取==** 摘要 关键字 1 绪论 2 系统硬件方案设计 2.1系统总体设计方案比较与论证 2.2系统元器件选型及器件参数介绍 2.2. ...

  7. 基于STM32的智能储物柜设计

    本设计是基于STM32的智能储物柜设计,主要实现以下功能: 1.实现快递箱.快递员和客户之间的手机通信功能 2.实现设置6位密码.密码开锁 3.实现快递箱控制,区分箱体大.中.小 4.实现OLED显示 ...

  8. 基于STM32的智能鞋柜设计与实现--“臭臭没了”

    Hello,大家好,我是阿金,本文仅供参考,提供一些建议.如有不对,还请指正.谢谢~ 随着5G网络的迅速普及,"万物联网"的时代指日可待.针对传统鞋柜及目前市场上现有的智能鞋柜功能 ...

  9. 基于STM32的微型电子琴设计

    基于STM32的微型电子琴设计 第一章 总体设计 1.1 系统功能 1.2 主要技术性能指标 第二章硬件设计 2.1 整体硬件图 2.2 按键模块 2.3 扬声器模块 2.4 显示模块 2.5 主控模 ...

  10. 基于 STM32的USB万用表设计

    该方案为一个可测量电流和电压的USB万用表. 特征: 主回路电压检测, D+电压检测 D-电压检测,温度检测检测 电源采用DC-DC和LDO 芯片最大耐压40V 最大设计为30V/6.5A 电流检测部 ...

最新文章

  1. 如何让Sublime Text编辑器支持新的ABAP关键字
  2. RBL, UBL, Uboot的关系
  3. redis存opc_KEPServerEX6完整免费版
  4. 爱因斯坦最熟悉的中国人,曾被学校开除的自学天才周培源
  5. 极测未来|淘宝千人千面内容下的智能评测技术与实践
  6. Pandas 文本数据方法 startswith( ) endwith( )
  7. python合并多个excel代码_Python脚本合并多个Excel文件
  8. mysql into outfile语法_select into outfile
  9. USB的速度还是不够快
  10. 使用PowerDesigner设计数据库保姆级教程
  11. 【蓝屏解决】笔记本频繁蓝屏,错误代码IRQL_NOT_LESS_OR_EQUAL
  12. 四.C++网络安全学院之高级语言和低级语言
  13. 我的世界服务器箱子里无限物品,我的世界让箱子里的物品无限拿的指令 | 手游网游页游攻略大全...
  14. CoAP协议学习笔记 1.3 用UDP工具来调试CoAP
  15. c语言str系列函数
  16. android模拟power键,android 发送模拟按键
  17. 【教程】百度地图AK申请指南(PM2.5指导版)
  18. python三重积分_蒙特卡罗方法。三重积分。Python。“+”的操作数父级不受支持...
  19. 实训三:文件系统命令及vi编辑
  20. #多源数据融合#:HSI与Lidar

热门文章

  1. mos管的rc吸收电路计算_RC阻容吸收计算公式
  2. 说明书中电磁兼容部分指南和制造商的声明怎么写?
  3. oracle 给权限语句,oracle权限语句大全
  4. 缠中说禅电子书_缠中说禅股技术理论(完整版).pdf
  5. 用CenterNet做3D检测,效果demo
  6. 狗都能看懂的Pytorch MAML代码详解
  7. ArcGIS Pro创建企业级地理数据库(Postgis)
  8. 计算机软件开发即征即退,自行开发软件产品增值税实行即征即退政策
  9. 计算机说课稿模板小学数学,小学数学说课万能模板精简
  10. 分省老年抚养比和老年人口比重(1995-2018年)