Как сделать шаговую остановку, если оба датчика находятся на LOW уровне ? l293d motor shield
Я попробовал этот код ниже, но он не останавливает его, просто быстро переключает направление, что выглядит так, как будто он дрожит, я думаю, потому что он всегда читает void startF/R, вот почему он дрожит .
Мне нужна помощь в том, как полностью остановить шаговый двигатель, если он считывает оба датчика на низком уровне
if (sensLval== LOW || sensRval == LOW){
steppStop();
}
это мой код пустого цикла ниже
void startF()
{
motor1.step(10, FORWARD,SINGLE);
}
void startR()
{
motor1.step(10, BACKWARD,SINGLE);
}
void steppStop(){
motor1.step(0, BACKWARD, SINGLE);
motor1.step(0, FORWARD, SINGLE);
}
void loop() {
sensRval=digitalRead(sensR);
sensLval=digitalRead(sensL);
if (sensLval == LOW)
{
startF();
}
if (sensLval== LOW && sensRval == LOW)
{
steppStop();
}
if (sensRval == LOW)
{
startR();
}
}
@Exes, 👍1
1 ответ
Изолируйте свои условия.
В данный момент вы проверяете:
- Оба датчика НИЗКИЕ одновременно и
- Либо датчик НИЗКИЙ сам по себе
Если оба они низкие—не проверяйте, что они НИЗКИЕ (что запускает startX
).
if (sensLval == LOW && sensRval == LOW) {
steppStop();
} else if (sensLval == LOW) {
startF();
} else if (sensRval == LOW) {
startR();
}
Могут быть и другие соображения, но этого достаточно, чтобы обойти эту проблему.
Несвязанный, но последовательный отступ имеет большое значение для удобочитаемости кода и помогает другим рассуждать о коде в целом. При публикации кода рекомендуется форматировать код как код, описанный здесь и при редактировании вопроса.
- Как заставить двигатели запускаться при нажатии кнопки, а затем проходить цикл с определенным порядком двигателя?
- Код, из-за которого серводвигатель не работает!
- Вопрос о различных способах подключения платы драйвера двигателя L298N к Arduino и двигателям и их питания.
- Как я могу использовать степпер для определенной степени?
- Arduino uno + cnc Shield v3 + драйвер шагового двигателя A4988 + AccelStepper?
- Как заставить сервопривод вращаться на угол больше 180°
- Почему Adafruit motor shield не крутит моторы?
- Как управлять 4 двигателями постоянного тока с помощью Arduino?
Я сожалею о формате , я все еще учусь, но в следующий раз у меня все будет хорошо. Теперь код работает, спасибо большое! Я не знал, что вы могли бы закодировать его таким образом. Это круто!, @Exes