Arduino控制步进电机

您所在的位置:网站首页 arduino实例教程 Arduino控制步进电机

Arduino控制步进电机

2023-05-17 23:00| 来源: 网络整理| 查看: 265

目录

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、电路连接

 

 

3、控制代码 #include #include 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); } }



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3