目录
1、步进电机简介
2、电路连接
3、控制代码
1、步进电机简介
步进电机是一种用电脉冲进行控制,将电脉冲(数字信号)转化为角位移的执行机构。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度,称为“步距角”,它的旋转是以固定的角度一步一步运行的。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。
(ULN2003 步进电机驱动器)
- 型号:28BYJ-48
- 额定电压:5V
- 相位数:4(五相四线)
- 速度变化率:1/64
- 步距角:5.625° /64
- 频率:100Hz
转一圈的步数=360°/步距角
步距角:对应一个脉冲信号,电机转子转过的角位移用θ表示。θ=360度/(转子齿数*运行拍数),以常规二、四相,转子齿为50齿电机为例。
四拍运行时步距角为θ=360度/(50*4)=1.8度(俗称整步)
八拍运行时步距角为θ=360度/(50*8)=0.9度(俗称半步)
2、电路连接
文章来源地址https://www.toymoban.com/news/detail-614881.html
文章来源:https://www.toymoban.com/news/detail-614881.html
3、控制代码
#include <Stepper.h>
#include <IRremote.h>
const int STEPS=32; //设置步进电机内部输出轴旋转一周:步数为32,减速比为1:64
int Steps2Take; //2048步 = 1圈, 电机输出轴旋转一周为2048步
int receiver = 12; //红外接收器信号针脚到Arduino数字针脚12
// 设置电机驱动引脚的正确顺序
//IN1, IN2, IN3, IN4的顺序为1-3-2-4步进器
Stepper myStepper (STEPS, 8, 10, 9, 11);
IRrecv irrecv(receiver); //创建"irrecv" 的实例
decode_results results; //创建'decode_results'的实例
void setup()
{
Serial.begin(9600);
irrecv.enableIRIn(); //启动接收器
}
void loop()
{
if (irrecv.decode(&results))
{ //判断是否收到红外信号
Serial.println(results.value,HEX);
if (results.value==0xFFA857)
{ //按下了VOL+按钮
myStepper.setSpeed(150); //设置速度为15步/分钟
Steps2Take = 2048; //顺时针
myStepper.step(Steps2Take);
delay(2000);
}
if (results.value== 0xFF629D)
{ //按下了VOL-按钮
myStepper.setSpeed(150); //设置电机转速
Steps2Take = -2048; //逆时针旋转
myStepper.step(Steps2Take);
delay(2000);
}
irrecv.resume(); // 接收下一个值
digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, LOW);
}
}
到了这里,关于Arduino控制步进电机的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!