我需要帮助排除我的步进电机控制设置。我正在尝试以给定的速度将步进电机旋转一定角度。我连接并按如下方式对设置进行了编程,但我无法让步进电机移动。我怀疑这是我的代码,但是,我在网上找到了很少的编码资源。我将不胜感激任何帮助和/或建议。
连接和接线:
MATLAB程序:
clear all; clc;
MainRasp = raspi('192.168.1.134', 'pi','raspberry');
ENA = 4;
DIR = 17;
PUL = 18;
configurePin(MainRasp, PUL, 'DigitalOutput');
configurePin(MainRasp, DIR, 'DigitalOutput');
configurePin(MainRasp, ENA, 'DigitalOutput');
writeDigitalPin(MainRasp, PUL, 1);
writeDigitalPin(MainRasp, DIR, 0);
writeDigitalPin(MainRasp, ENA, 1);
angle = 40;
steps_per_rev = 100;
micro_step = 8;
angle_per_step = 360/(steps_per_rev*micro_step);
numSteps = floor(angle/angle_per_step);
for step = 1:numSteps
writeDigitalPin(MainRasp, PUL, 1);
pause(0.001);
writeDigitalPin(MainRasp, PUL, 0);
pause(0.001);
end
更新:我的连接和程序是正确的。我发现我使用的步进电机驱动器(DM320T)需要 PUL 的 4-5v(高)数字信号电压。但是,树莓派数字引脚输出 0-3.3v。实际上,DM320T 仍将其读取为低电平。
结果,我改用了 Arduino Micro,它的数字引脚电压为 0-5v,能够提供 PUL 的要求。
感谢所有发表评论的人。