2024-09-01
售卖作品
00

目录

功能
步进电机拉杆
步进电机简介
步进电机工作原理
代码讲解
数据数组解释
函数解释
四线二相步进电机控制
关键点总结
步进电机驱动器
code

功能

硬件:MSP430G2553开发板,两个步进电机拉杆、2个步进电机驱动、一个按键模块、一个oled 0.96 iic模块。

软件功能:

(1)当按键K1按下时(短按),X方向步进电机正向运转,X正向移动1mm。(算为1mm)

(2)当按键K2按下时(短按),X方向步进电机反向运转,X反向移动1mm;(算为1mm)

(3)当按键K3按下时(短按),Y方向步进电机正向运转,Y正向移动1mm;(算为1mm)

(4)当按键K4按下时(短按),Y方向步进电机反向运转,Y反向移动1mm;(算为1mm)

(5)当按键K1~K4长按时电机连续运动,直到释放时停止

(6)OLED实时显示步进电机转过的步数和X或Y向移动的距离(屏幕上步数和距离按 1mm对应1显示8步)

步进电机拉杆

买的是这种四线二相步进电机。

在这里插入图片描述

步进电机简介

步进电机是一种将电脉冲信号转换为机械位移的装置。与传统电机不同,步进电机每转一步都是固定的角度,因此非常适用于需要精确控制的场合。四线二相步进电机是其中一种常见类型,每相线圈对应一对引脚。

步进电机工作原理

步进电机通过按特定顺序依次给线圈通电来产生步进运动。每次给一组线圈通电,电机就会转动一个步进角度。这种通电顺序决定了电机的转动方向和步进精度。

代码讲解

程序控制一个四线二相步进电机。以下是代码和相应的解释:

c
unsigned char FFW[8] = {0x01, 0x03, 0x02, 0x06, 0x04, 0x0c, 0x08, 0x09}; unsigned char REV[8] = {0x09, 0x08, 0x0c, 0x04, 0x06, 0x02, 0x03, 0x01}; void SETP_MOTOR_FFW1(unsigned char n) { unsigned char j; for (j = 0; j < 8; j++) { P1OUT = (P1OUT & 0xF0) | (FFW[j] & 0x0F); // 只控制低四位 delay_ms(30); } }

数据数组解释

  1. FFWREV 数组定义了电机向前(FFW)和向后(REV)移动的顺序。每个数组元素控制电机线圈的通电状态。

    • 0x01 -> 0001

    • 0x03 -> 0011

    • 0x02 -> 0010

    • 0x06 -> 0110

    • 0x04 -> 0100

    • 0x0C -> 1100

    • 0x08 -> 1000

    • 0x09 -> 1001

这些值通过改变电机线圈的通电顺序实现步进运动。

函数解释

  1. SETP_MOTOR_FFW1 函数用于控制电机向前移动 n 步。虽然参数 n 被传递给函数,但在函数体内并没有被使用,实际执行的步数是 8 步(数组长度)。
c
void SETP_MOTOR_FFW1(unsigned char n) { unsigned char j; for (j = 0; j < 8; j++) { P1OUT = (P1OUT & 0xF0) | (FFW[j] & 0x0F); // 只控制低四位 delay_ms(30); } }
  • for (j = 0; j < 8; j++): 循环 8 次,对应 8 个步进状态。

  • P1OUT = (P1OUT & 0xF0) | (FFW[j] & 0x0F): 只修改 P1OUT 的低四位,控制电机的步进状态。

  • delay_ms(30): 每次步进后延时 30 毫秒,确保电机有足够的时间完成每一步。

四线二相步进电机控制

对于四线二相步进电机,每相有两个线圈,控制每个线圈的通电状态即可实现步进。你的代码中,FFW 数组和 REV 数组分别定义了顺时针和逆时针的步进顺序。

关键点总结

  • 步进: 每次改变 P1OUT 的低四位值,电机就步进一次。

  • 延时: delay_ms(30) 用于控制步进速度。

  • 方向控制: 使用不同的数组(FFWREV)可以控制电机的旋转方向。

步进电机驱动器

买的这个,四根线安装的时候就可以控制步进电机了。

在这里插入图片描述

在这里插入图片描述

code

cpp
https://docs.qq.com/sheet/删除此汉字后打开DUEdqZ2lmbmR6UVdU?tab=BB08J2
如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:Dong

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC。本作品采用《知识共享署名-非商业性使用 4.0 国际许可协议》进行许可。您可以在非商业用途下自由转载和修改,但必须注明出处并提供原作者链接。 许可协议。转载请注明出处!