Мне нужна помощь в поиске и устранении неисправностей в моей настройке управления шаговым двигателем. Я пытаюсь повернуть шаговый двигатель на определенный угол с заданной скоростью. Я подключил и запрограммировал установку следующим образом, но я не могу заставить двигаться шаговый двигатель. Я подозреваю, что это мой код, однако я нашел в Интернете небольшой ресурс по кодированию об этом. Буду признателен за любую помощь и / или предложения.
Подключения и проводка:
Программа 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) требует напряжения цифрового сигнала 4-5 В (для High) для PUL. Однако цифровой вывод Raspberry Pi выдает напряжение 0–3,3 В. Фактически, DM320T по-прежнему считал его низким.
В результате я переключился на Arduino Micro с цифровым напряжением на выводах 0–5 В и способным обеспечить требование PUL.
Спасибо всем, кто прокомментировал.