硬件部分

通过给安装在定子的轮毂上的四个电磁铁依次通电
通过齿轮结构的传动
来带动中间的永磁体转子来转动


低精度,小功率,低功转化率的驱动方法

较高精度,较大功率,高功转化率的驱动方法

电机的几线几相这里及其分类就不做赘述了

说一下电机使用的注意事项

  1. 电压控制 与 单相不可长时间通电
  2. 专业的驱动型片和驱动程序,可以让步进电机做到十分精准的地步,(当然步进电机本身也要有足够精准的工艺),可以确定向360/256°的256个方向指定转动并朝向(换个思路,三相或六相电机就可完成360/360°的个方向转向)
  3. 步进电机的
扭矩 l = f r
与电流直接相关(电流控制力的大小)
速度 v = w r t = w r (1/Fs)
与电机的通电频率有关

软件部分

void STEP_MOTOR_Init(void){ //step_motor initializeRCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOD, ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);//the clock that's specially prepared for the multiplexed GPIO_Pin (the original is for JTAG)GPIO_InitTypeDef  GPIO_InitStructure;//3 enum variables respectively control the pin, mode and crystal speedGPIO_InitStructure.GPIO_Pin = STEP_MOTOR_A | STEP_MOTOR_B | STEP_MOTOR_C | STEP_MOTOR_D;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_InitStructure.GPIO_Speed = GPIO_SPEED_50MHz;//there's some prepared_presentation for motor(not in variable, but some funtions are prepared)GPIO_Init (STEP_MOTOR_PORT, &GPIO_InitStructure);//firstly disable JTAG to change the flection of the pins ,     remap means re-define(configuration)GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE);//turn off the power to preven the motor to constantly consume the power and being to hotSTEP_MOTOR_OFF();
}void STEP_MOTOR_OFF (void){//turn the motor offGPIO_ResetBits(STEP_MOTOR_PORT,STEP_MOTOR_A | STEP_MOTOR_B | STEP_MOTOR_C | STEP_MOTOR_D);//reset all the pins
}

对角双电机间歇往返程序

void STEP_MOTOR_4S (u8 speed){//µç»ú¹Ì¶¨Î»ÖÃGPIO_ResetBits(STEP_MOTOR_PORT,STEP_MOTOR_A| STEP_MOTOR_C);  //¸÷½Ó¿ÚÖÃ0GPIO_SetBits(STEP_MOTOR_PORT,STEP_MOTOR_B | STEP_MOTOR_D); //¸÷½Ó¿ÚÖÃ1delay_ms(speed); //ÑÓʱGPIO_ResetBits(STEP_MOTOR_PORT,STEP_MOTOR_A | STEP_MOTOR_B | STEP_MOTOR_C | STEP_MOTOR_D);delay_ms(speed); //ÑÓʱGPIO_ResetBits(STEP_MOTOR_PORT,STEP_MOTOR_B | STEP_MOTOR_D);//0GPIO_SetBits(STEP_MOTOR_PORT,STEP_MOTOR_A | STEP_MOTOR_C); //1delay_ms(speed); //ÑÓʱGPIO_ResetBits(STEP_MOTOR_PORT,STEP_MOTOR_A | STEP_MOTOR_B | STEP_MOTOR_C | STEP_MOTOR_D);delay_ms(speed); //ÑÓʱSTEP_MOTOR_OFF(); //½øÈë¶Ïµç״̬£¬·Àµç»ú¹ýÈÈ
}

相邻双电机间歇驱动

void STEP_MOTOR_4R (u8 speed){//µç»ú˳ʱÕ룬4ÅÄ£¬Ëٶȿ죬Á¦Ð¡GPIO_ResetBits(STEP_MOTOR_PORT,STEP_MOTOR_C | STEP_MOTOR_D);//0GPIO_SetBits(STEP_MOTOR_PORT,STEP_MOTOR_A | STEP_MOTOR_B);//1delay_ms(speed); //ÑÓʱGPIO_ResetBits(STEP_MOTOR_PORT,STEP_MOTOR_A| STEP_MOTOR_D);//0GPIO_SetBits(STEP_MOTOR_PORT,STEP_MOTOR_B | STEP_MOTOR_C);//1delay_ms(speed); //ÑÓʱGPIO_ResetBits(STEP_MOTOR_PORT,STEP_MOTOR_A | STEP_MOTOR_B);//0GPIO_SetBits(STEP_MOTOR_PORT,STEP_MOTOR_C | STEP_MOTOR_D);//1delay_ms(speed); //ÑÓʱGPIO_ResetBits(STEP_MOTOR_PORT,STEP_MOTOR_B | STEP_MOTOR_C);//0GPIO_SetBits(STEP_MOTOR_PORT,STEP_MOTOR_A | STEP_MOTOR_D);//1delay_ms(speed); //ÑÓʱSTEP_MOTOR_OFF(); //½øÈë¶Ïµç״̬£¬·Àµç»ú¹ýÈÈ
}void STEP_MOTOR_4L (u8 speed){//µç»úÄæʱÕ룬4ÅÄ£¬Ëٶȿ죬Á¦Ð¡GPIO_ResetBits(STEP_MOTOR_PORT,STEP_MOTOR_A | STEP_MOTOR_B);//0GPIO_SetBits(STEP_MOTOR_PORT,STEP_MOTOR_C | STEP_MOTOR_D);//1delay_ms(speed); //ÑÓʱGPIO_ResetBits(STEP_MOTOR_PORT,STEP_MOTOR_A | STEP_MOTOR_D);//0GPIO_SetBits(STEP_MOTOR_PORT,STEP_MOTOR_B | STEP_MOTOR_C);//1delay_ms(speed); //ÑÓʱGPIO_ResetBits(STEP_MOTOR_PORT,STEP_MOTOR_C | STEP_MOTOR_D);//0GPIO_SetBits(STEP_MOTOR_PORT,STEP_MOTOR_A | STEP_MOTOR_B);//1delay_ms(speed); //ÑÓʱGPIO_ResetBits(STEP_MOTOR_PORT,STEP_MOTOR_B | STEP_MOTOR_C);//0GPIO_SetBits(STEP_MOTOR_PORT,STEP_MOTOR_A | STEP_MOTOR_D);//1delay_ms(speed); //ÑÓʱSTEP_MOTOR_OFF(); //½øÈë¶Ïµç״̬£¬·Àµç»ú¹ýÈÈ
}

双-单电机间歇驱动

void STEP_MOTOR_8R (u8 speed){//µç»ú˳ʱÕ룬8ÅÄ£¬½Ç¶ÈС£¬ËÙ¶ÈÂý£¬Á¦´óGPIO_ResetBits(STEP_MOTOR_PORT,STEP_MOTOR_B | STEP_MOTOR_C | STEP_MOTOR_D);//0GPIO_SetBits(STEP_MOTOR_PORT,STEP_MOTOR_A);//1delay_ms(speed); //ÑÓʱGPIO_ResetBits(STEP_MOTOR_PORT,STEP_MOTOR_C | STEP_MOTOR_D);//0GPIO_SetBits(STEP_MOTOR_PORT,STEP_MOTOR_A | STEP_MOTOR_B);//1delay_ms(speed); //ÑÓʱGPIO_ResetBits(STEP_MOTOR_PORT,STEP_MOTOR_A | STEP_MOTOR_C | STEP_MOTOR_D);//0GPIO_SetBits(STEP_MOTOR_PORT,STEP_MOTOR_B);//1delay_ms(speed); //ÑÓʱGPIO_ResetBits(STEP_MOTOR_PORT,STEP_MOTOR_A | STEP_MOTOR_D);//0GPIO_SetBits(STEP_MOTOR_PORT,STEP_MOTOR_B | STEP_MOTOR_C);//1delay_ms(speed); //ÑÓʱGPIO_ResetBits(STEP_MOTOR_PORT,STEP_MOTOR_A | STEP_MOTOR_B | STEP_MOTOR_D);//0GPIO_SetBits(STEP_MOTOR_PORT,STEP_MOTOR_C);//1delay_ms(speed); //ÑÓʱGPIO_ResetBits(STEP_MOTOR_PORT,STEP_MOTOR_A | STEP_MOTOR_B);//0GPIO_SetBits(STEP_MOTOR_PORT,STEP_MOTOR_C | STEP_MOTOR_D);//1delay_ms(speed); //ÑÓʱGPIO_ResetBits(STEP_MOTOR_PORT,STEP_MOTOR_A | STEP_MOTOR_B | STEP_MOTOR_C);//0GPIO_SetBits(STEP_MOTOR_PORT,STEP_MOTOR_D);//1delay_ms(speed); //ÑÓʱGPIO_ResetBits(STEP_MOTOR_PORT,STEP_MOTOR_B | STEP_MOTOR_C);//0GPIO_SetBits(STEP_MOTOR_PORT,STEP_MOTOR_A | STEP_MOTOR_D);//1delay_ms(speed); //ÑÓʱSTEP_MOTOR_OFF(); //½øÈë¶Ïµç״̬£¬·Àµç»ú¹ýÈÈ
}void STEP_MOTOR_8L (u8 speed){//µç»úÄæʱÕ룬8ÅÄ£¬½Ç¶ÈС£¬ËÙ¶ÈÂý£¬Á¦´óGPIO_ResetBits(STEP_MOTOR_PORT,STEP_MOTOR_A | STEP_MOTOR_B | STEP_MOTOR_C);//0GPIO_SetBits(STEP_MOTOR_PORT,STEP_MOTOR_D);//1delay_ms(speed); //ÑÓʱGPIO_ResetBits(STEP_MOTOR_PORT,STEP_MOTOR_A | STEP_MOTOR_B);//0GPIO_SetBits(STEP_MOTOR_PORT,STEP_MOTOR_C | STEP_MOTOR_D);//1delay_ms(speed); //ÑÓʱGPIO_ResetBits(STEP_MOTOR_PORT,STEP_MOTOR_A | STEP_MOTOR_B | STEP_MOTOR_D);//0GPIO_SetBits(STEP_MOTOR_PORT,STEP_MOTOR_C);//1delay_ms(speed); //ÑÓʱGPIO_ResetBits(STEP_MOTOR_PORT,STEP_MOTOR_A | STEP_MOTOR_D);//0GPIO_SetBits(STEP_MOTOR_PORT,STEP_MOTOR_B | STEP_MOTOR_C);//1delay_ms(speed); //ÑÓʱGPIO_ResetBits(STEP_MOTOR_PORT,STEP_MOTOR_A | STEP_MOTOR_C | STEP_MOTOR_D);//0GPIO_SetBits(STEP_MOTOR_PORT,STEP_MOTOR_B);//1delay_ms(speed); //ÑÓʱGPIO_ResetBits(STEP_MOTOR_PORT,STEP_MOTOR_C | STEP_MOTOR_D);//0GPIO_SetBits(STEP_MOTOR_PORT,STEP_MOTOR_A | STEP_MOTOR_B);//1delay_ms(speed); //ÑÓʱGPIO_ResetBits(STEP_MOTOR_PORT,STEP_MOTOR_B | STEP_MOTOR_C | STEP_MOTOR_D);//0GPIO_SetBits(STEP_MOTOR_PORT,STEP_MOTOR_A);//1delay_ms(speed); //ÑÓʱGPIO_ResetBits(STEP_MOTOR_PORT,STEP_MOTOR_B | STEP_MOTOR_C);//0GPIO_SetBits(STEP_MOTOR_PORT,STEP_MOTOR_A | STEP_MOTOR_D);//1delay_ms(speed); //ÑÓʱSTEP_MOTOR_OFF(); //½øÈë¶Ïµç״̬£¬·Àµç»ú¹ýÈÈ
}

步进电机stepmotor相关推荐

  1. python控制电机_利用树莓派控制步进电机——Python语言

    步进电机的优点在于它能够被精确定位,正向或反向一次性转动"一步",并且也能够连续转动. #!/usr/bin/env python ######################## ...

  2. STM32 电机教程 8 - 步进电机开环电流控制

    前言 上一讲我们已成功实现基于STM32定时器的步进电机开环速度控制,这一节将介绍步时电机的开环电流控制,步进电机内阻较大,在电机停机或堵转时其电流可近视为 I = U/R.其中R是常量,控制U就可以 ...

  3. STM32 电机教程 7 - 步进电机开环速度控制

    前言 上一讲我们已成功实现对步进电机的正反转动控制,并简单的通过调节节拍间的延时时间实现了简单的转速控制(开环),这一节将继续给大学介绍在STM32中通过定时器方式来实现节拍间的精确延时操作,并通时调 ...

  4. 28BYJ-48步进电机

    1.28BYJ-48步进电机的控制 自带减速器,五线四相单极性,直径为28mm.一般有五根线.红色是公共的VCC(5v),A相蓝色,B相粉色,C相黄色,D相橙色.如果采用单双拍如图所示: 第一步:先D ...

  5. 工业42、57、86、110步进电机

    1.57步进电机基本介绍 在实际工业设备中一般使用较大尺寸的步进电机,它们有更大的扭矩.根据电机外尺寸的不同,可以分为42.57.86.110步进电机:另外,同个尺寸电机可以有不同的机身长度,影响转矩 ...

  6. M415步进电机驱动器的使用(C51)

    如图为M415步进电机驱动器 Signal端 PUL为脉冲输入信号. DIR方向输入信号,用于改变电机运转方向:不接该口会朝一个默认方向转动 ENA为使能信号,用于使能或禁止驱动器输出: OPTO为脉 ...

  7. 步进电机编码器适配的分享(步进电机闭环准备)

    不步进电机编码器测速        本例我们选用了THB6064MQ集成步进电机驱动模块使用很简单,仅有3个输入端口分别是使能端口.方向控制端口和脉冲输入端口,在不细分的模式下每输入一个脉冲步进电机就 ...

  8. 树莓派控制57步进电机

    一.简介 使用树莓派控制57步进电机. 二.硬件设备 57两相四线步进电机 ×1 DM542驱动器 ×1 树莓派 ×1 3.3V-5V电平转换 ×1 24V / 36V电源 ×1 三孔带插头单头裸尾电 ...

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

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

最新文章

  1. 关于学习Python的一点学习总结(6->元组)
  2. Python开发基础总结之套接字+字符串+正则表达式
  3. The 2018 ACM-ICPC Chinese Collegiate Programming Contest B. Rolling The Polygon
  4. 指定时间的月初和月末一天的写法
  5. 用python os.system 执行 批处理的时候, 出现的一些问题
  6. 1.14 关于梯度检验实现的注记
  7. Windows下Eclipse 安装 SVN 插件的两种方法
  8. 解决zabbix图形乱码
  9. 计算机组成原理唐朔飞第八章ppt,计算机组成原理唐朔飞PPT第8章CPU的结构和功能.ppt...
  10. 批量找关键词的软件-再也不用担心找不着 关键词了
  11. 数字图像处理的起源与应用
  12. bootstrap table用法
  13. led数字字体_led电视质量排行榜
  14. So Easy! HDU - 4565(构造共轭+矩阵快速幂)
  15. 键入一个字母,如果小写字母输出大写,大写字母输出小写字母
  16. JAVA调用IBM的Lotus Notes
  17. Android 仿音乐播放器自定义锁屏歌词功能
  18. 怎么拼魔方6个面方法_怎么拼齐魔方6个面
  19. 分析10万条弹幕,告诉你《古董局中局2》这部鉴宝题材剧咋样?
  20. mysql通过字段值查询表名

热门文章

  1. platfrom设备驱动框架
  2. unraid应用_套娃自动备份unraid系统u盘_NAS存储
  3. H5 百度高德地图导航
  4. javaScript算术题(经典案例)
  5. 惠普打印机卡纸问题,解决.
  6. nginx 域名解析
  7. 发明计算机作文300字,关于科学发明的作文300字(共7篇)
  8. PHPExcel替代方案PhpSpreadsheet
  9. 查看git HEAD
  10. java qq聊天界面_【附源码】用Java写了一个类QQ界面聊天小项目,可在线聊天!...