双极性步进电机

双极性的意思是通过线圈的电流有两个方向

电流方向

A+ 流向 A-或者A- 流向 A+

B+ 流向 B-或者B- 流向 B+

驱动方式

与单极性的步进电机一样,有三种驱动方式,单四拍、双四拍、八拍

A+表示电流从A+流向A-,A-表示电流从A-流向A+

因为单四拍的步距角是7.5度,也就是说按A+,B+,A-,B-这样线圈通电顺序就可以让步进电机转动7.5度,又因为该步进电机没有减速比,所以360/7.5 = 48,48个这样的单四拍就可以让电机转动一圈,双四拍的同理

八拍步距角是3.75度,360/3.75 = 96,所以在八拍的驱动方式下,步进电机转一圈要96个这样的八拍脉冲

程序

与单极性步进电机的程序差不多,在驱动方式上和转一圈所需的脉冲数不同

一个四拍或八拍都是让线圈轮流通电,若脉冲是A+,就让A+引脚输出高电平,A-引脚输出低电平,这样电流就从A+流向了A-,驱动转子转动

A1 = A+,A2 = A-

/** @name   Step_One_Pulse* @brief  步进电机步进一个脉冲* @param  Speed_Change -> 速度变化* @retval None
*/
static void Step_One_Pulse(void)
{static uint8_t Position = 0;//单四拍if(Bipolar_Step_Motor.Drive_Mode == Drive_Mode_Single_4_Beats){if(Bipolar_Step_Motor.Direction == Forward_State){//正向步进  A1 - B2 - A2 - B1switch(Position){case 0: SET_Motor_A1; CLR_Motor_B1; CLR_Motor_A2; CLR_Motor_B2; break;case 1: CLR_Motor_A1; CLR_Motor_B1; CLR_Motor_A2; SET_Motor_B2; break;case 2: CLR_Motor_A1; CLR_Motor_B1; SET_Motor_A2; CLR_Motor_B2; break;case 3: CLR_Motor_A1; SET_Motor_B1; CLR_Motor_A2; CLR_Motor_B2; break;default: System.Error_Handler();}}else{//反向步进  A1 - B1 - A2 - B2switch(Position){case 0: SET_Motor_A1; CLR_Motor_B1; CLR_Motor_A2; CLR_Motor_B2; break;case 1: CLR_Motor_A1; SET_Motor_B1; CLR_Motor_A2; CLR_Motor_B2; break;case 2: CLR_Motor_A1; CLR_Motor_B1; SET_Motor_A2; CLR_Motor_B2; break;case 3: CLR_Motor_A1; CLR_Motor_B1; CLR_Motor_A2; SET_Motor_B2; break;default: System.Error_Handler();}}//更新位置信息if((++Position) == 4)Position = 0;}//双四拍if(Bipolar_Step_Motor.Drive_Mode == Drive_Mode_Double_4_Beats){if(Bipolar_Step_Motor.Direction == Forward_State){//正向步进  A1B2 - B2A2 - A2B1 - B1A1switch(Position){case 0: SET_Motor_A1; CLR_Motor_B1; CLR_Motor_A2; SET_Motor_B2; break;case 1: CLR_Motor_A1; CLR_Motor_B1; SET_Motor_A2; SET_Motor_B2; break;case 2: CLR_Motor_A1; SET_Motor_B1; SET_Motor_A2; CLR_Motor_B2; break;case 3: SET_Motor_A1; SET_Motor_B1; CLR_Motor_A2; CLR_Motor_B2; break;default: System.Error_Handler();}}else{//反向步进  A1B1 - B1A2 - A2B2 - B2A1switch(Position){case 0: SET_Motor_A1; SET_Motor_B1; CLR_Motor_A2; CLR_Motor_B2; break;case 1: CLR_Motor_A1; SET_Motor_B1; SET_Motor_A2; CLR_Motor_B2; break;case 2: CLR_Motor_A1; CLR_Motor_B1; SET_Motor_A2; SET_Motor_B2; break;case 3: SET_Motor_A1; CLR_Motor_B1; CLR_Motor_A2; SET_Motor_B2; break;default: System.Error_Handler();}}//更新位置信息if((++Position) == 4)Position = 0;}//单八拍if(Bipolar_Step_Motor.Drive_Mode == Drive_Mode_8_Beats){if(Bipolar_Step_Motor.Direction == Forward_State){//正向步进  A1 - A1B2 - B2 - B2A2 - A2 - A2B1 - B1 - B1A1switch(Position){case 0: SET_Motor_A1; CLR_Motor_B1; CLR_Motor_A2; CLR_Motor_B2; break;case 1: SET_Motor_A1; CLR_Motor_B1; CLR_Motor_A2; SET_Motor_B2; break;case 2: CLR_Motor_A1; CLR_Motor_B1; CLR_Motor_A2; SET_Motor_B2; break;case 3: CLR_Motor_A1; CLR_Motor_B1; SET_Motor_A2; SET_Motor_B2; break;case 4: CLR_Motor_A1; CLR_Motor_B1; SET_Motor_A2; CLR_Motor_B2; break;case 5: CLR_Motor_A1; SET_Motor_B1; SET_Motor_A2; CLR_Motor_B2; break;case 6: CLR_Motor_A1; SET_Motor_B1; CLR_Motor_A2; CLR_Motor_B2; break;case 7: SET_Motor_A1; SET_Motor_B1; CLR_Motor_A2; CLR_Motor_B2; break;default:System.Error_Handler();}}else{//反向步进 A1 - A1B1 - B1 - B1A2 - A2 - A2B2 - B2 - B2A1switch(Position){case 0: SET_Motor_A1; CLR_Motor_B1; CLR_Motor_A2; CLR_Motor_B2; break;case 1: SET_Motor_A1; SET_Motor_B1; CLR_Motor_A2; CLR_Motor_B2; break;case 2: CLR_Motor_A1; SET_Motor_B1; CLR_Motor_A2; CLR_Motor_B2; break;case 3: CLR_Motor_A1; SET_Motor_B1; SET_Motor_A2; CLR_Motor_B2; break;case 4: CLR_Motor_A1; CLR_Motor_B1; SET_Motor_A2; CLR_Motor_B2; break;case 5: CLR_Motor_A1; CLR_Motor_B1; SET_Motor_A2; SET_Motor_B2; break;case 6: CLR_Motor_A1; CLR_Motor_B1; CLR_Motor_A2; SET_Motor_B2; break;case 7: SET_Motor_A1; CLR_Motor_B1; CLR_Motor_A2; SET_Motor_B2; break;default:System.Error_Handler();}}//更新位置信息if((++Position) == 8)Position = 0;}
}

电机转一圈的脉冲次数也不同

如果是四拍,则步进电机转一圈需要这样的四拍48次

如果是八拍,则转一圈需要这样的八拍96次

//定义结构体类变量
Bipolar_Step_Motor_t Bipolar_Step_Motor =
{Stop_State,Forward_State,Speed_6,0,//Drive_Mode_Single_4_Beats,Drive_Mode_Double_4_Beats,//Drive_Mode_8_Beats,0,(uint8_t)48,  //4拍,一圈转48次//(uint8_t)96,  //8拍,一圈转96次Direction_Adjust,Speed_Adjust,Step_One_Pulse
};

STM32物联网项目-双极性步进电机相关推荐

  1. STM32物联网项目-单极性步进电机28BYJ-48

    单极性步进电机 极性 单极性--电流只有一个方向--用ULN2003A驱动,比较简单 双极性--电流有两个方向--需要桥路驱动 典型的步进电机分类 两相式步进电机 低速下扭矩比较大 驱动方式多,控制比 ...

  2. 永磁双极性步进电机原理

    1.双极性步进电机的构造 双极性步进电机每个绕组都可以实现两个方向通电,故各绕组的某一端既可以是N极也可以是S极.因为它有两组独立的线圈,所有还被称为两相步进电机,结构如图1所示: 图1.双极性步进电 ...

  3. STM32物联网项目-HMI串口屏

    HMI串口屏实验 串口屏 屏幕使用的是淘晶池的串口屏,显示内容可以通过官方上位机来编辑,屏幕学习平台:http://wiki.tjc1688.com/doku.php?id=start 通信原理:屏幕 ...

  4. STM32物联网项目-DAC输出模拟量以及正弦波

    DAC输出正弦波 DAC介绍 ​ STM32 的 DAC 模块(数字/模拟转换模块)是 12 位数字输入,电压输出型的 DAC.DAC 可以配置为 8 位或 12 位模式,也可以与 DMA 控制器配合 ...

  5. STM32物联网项目-ADC采集实验板板温度(NTC热敏电阻)

    STM32 ADC采集板载温度 STM32 ADC简介 ​ STM32 拥有 1~3 个 ADC(STM32F101/102 系列只有 1 个 ADC),这些 ADC 可以独立使用, 也可以使用双重模 ...

  6. STM32物联网项目-SPI FLASH编程

    SPI编程--读写Flash芯片(W25Q64JV) FLASH芯片介绍--W25Q64JV W25Q64JV的芯片手册是英文的,用软件翻译了一下,有些地方翻译得不准确,大概了解一下即可,例如芯片的工 ...

  7. STM32物联网项目-RTC时钟

    RTC时钟 RTC简介 实时时钟是一个独立的定时器.RTC模块拥有一组连续计数的计数器,在相应软件配置下,可提供时钟日历的功能.修改计数器的值可以重新设置系统当前的时间和日期. RTC模块和时钟配置系 ...

  8. STM32物联网项目-通过ESP12S模块连接TCP服务器

    通过ESP12S模块连接TCP服务器 可参考STC15实战的WiFi通信:http://t.csdn.cn/Aw0Uc ESP-12S模块 引脚功能定义 实验目标 STM32通过串口与ESP-12S模 ...

  9. STM32物联网项目-低功耗模式

    低功耗模式 电源框图 VDD供电区域一般为2V ~ 3.6V,经过电压调节器可降压到1.8V给CPU核心.存储器和内置数字外设供电,为了降低CPU的功耗, 后备供电区域可由电池供电,输入引脚为VBAT ...

最新文章

  1. 自定义注解:通过监控文件的变化,实时更改工厂管理的实例
  2. C++for循环中i++与++i的区别
  3. 安卓app 获取view的id_隐私保护问题不小 研究表示1325个安卓APP未经授权获取用户数据...
  4. c gui qt 4编程第二版_面试官问Linux下如何编译C程序,如何回答?为你编译演示
  5. Android ANR视角InputDispatcher
  6. 支撑200并发_搞清楚系统到底怎样支撑高并发以及架构图的绘制(面试向)
  7. Atitit  验证 数字验证 非空验证的最佳算法  h5
  8. 利用tensorFlow api 识别手术器械
  9. getch方法_如何实现getch()函数的功能
  10. 项目管理基础:9.项目人力资源管理
  11. 【总结】1147- 一文吃透 Webpack 核心原理
  12. python word 英语音标_(完整word版)英语音标大全
  13. [后端开发]支付宝支付接口调试 (Python v3.6)
  14. 双人联机五子棋html代码,双人联机聊天或五子棋游戏设计【高手请进】
  15. 第8周项目5:定期存款利息计算器
  16. 翟菜花:作为一个开发者 我为什么更看好搜索+小程序
  17. docx文件格式转PDF格式
  18. 算法模版:模拟数据结构之绪论【沈七】
  19. 数据点太多matlab曲线较粗,matlab数据太多怎么拟合曲线
  20. Android一键锁屏代码

热门文章

  1. 【问题解决】HOST_JUJU_LOCK_PERMISSION 。。
  2. 推荐JSON-handle谷歌插件
  3. 走入SVG-姜威-专题视频课程
  4. 计算机电源维修tny279,电源管理芯片TNY279P
  5. vue.nextTick()方法的使用详解(简单明了)
  6. 水平、垂直居中布局大全
  7. MATLAB画三维墨西哥草帽图,数字图像处理之图像分割-20210401063921.ppt-原创力文档...
  8. 上海店宝宝:电商靠谱助力农产品出村进城
  9. 跨考计算机复试自我介绍,跨考生复试自我介绍
  10. 2016中国联通电信4K智能机顶盒白皮书