请问个步进电机库问题-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 641|回复: 2

[未解决] 请问个步进电机库问题

[复制链接]
发表于 2022-8-14 08:42 | 显示全部楼层 |阅读模式
本帖最后由 bgsdd 于 2022-8-14 08:53 编辑

做了个激光测距模块控制电机动作,用的步进电机库,不论电机速度设置的多少,电机转速都一样,,是哪里的问题?激光测距模块是单独24V供电,单独输出0-5V电压模拟量,
24V和5V模拟量不用共地,0V接UNO-GND,5V接UNO-A0


#include <AccelStepper.h>//引用步进电机库
const int dir = 8;     // 方向控制引脚
const int pul = 9;    // 步进控制引脚
int val;//激光测距模块变量
int vall;

AccelStepper stepper1(1, pul, dir); //建立步进电机对象1

void setup() {
  Serial.begin(9600);
  
  pinMode(dir, OUTPUT);//步进电机端口输出模式,步进电机部分:
  pinMode(pul, OUTPUT);
  stepper1.setMaxSpeed(1000.0);     // 设置电机最大速度300*这里无论是设置10还是10000,电机速度都不变
  stepper1.setAcceleration(100);  // 设置电机加速度
}

void loop() {
  val = analogRead(A0);//定义测距模块接口A0并赋值给变量。步进电机部分:
  val = map(val, 0, 1023, 0, 50);//减少激光测距模块输出跳动,降低灵敏度
  vall = val * 400;//映射激光测距模块:量程200-600=400毫米,即0-5V=400毫米
  //电机驱动脉冲200一圈,螺杆导程1204=4毫米,即200脉冲导轨直线运动4毫米,400毫米需要100*200=20000脉冲
  //20000脉冲直线轨道运行400毫米,这样就和测距模块1毫米=轨道运行1毫米相对应
  stepper1.moveTo(vall);//电机运行步数由激光测距模块1:1映射
  stepper1.run();//电机运行



}




发表于 2022-8-18 09:06 | 显示全部楼层
我猜测可能是你接线有问题,一般来说步进电机驱动器有一个固定步数值,在驱动器固定值的时候,外来程序的设置值不被接受,就是说不能改变数值,只有改跳线或者程序接受外来数值才行。希望对你有用。
 楼主| 发表于 2022-8-18 21:58 | 显示全部楼层
不是的,好像是1602 LCD液晶的问题,我加了显示液晶信息,就这样了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-30 23:56 , Processed in 0.217317 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表