Помогите пожалуйста с размещением функции
Я пытаюсь вызвать функцию, которая повернет шаговый двигатель на несколько шагов в зависимости от значения, отправленного через последовательную консоль. Например, если я отправлю 50, двигатель должен сделать 50 шагов по часовой стрелке (и против часовой стрелки для отрицательного значения).
#include <Stepper.h>
#define STEPS 200
Stepper stepper(STEPS, 8, 9, 10, 11);
int serial_input = Serial.read();
void setup() {
Serial.begin(9600) ;
stepper.setSpeed(30);
}
void loop() {
}
void turnMotor(serial_input){
stepper.step ( serial_input ) ;
}
И вот какие ошибки я получаю:
Motor4.ino:12:28: error: variable or field ‘turnMotor’ declared void
Motor4.ino:12:16: error: ‘serial_input’ was not declared in this scope
Motor4.ino:117:28: error: variable or field ‘turnMotor’ declared void
Спасибо
@Danny, 👍1
Обсуждение1 ответ
Лучший ответ:
Как уже объяснил Юрай, вы не можете использовать Serial.read() вне функции.
Вероятно, вам захочется вызвать его внутри цикла или функцию, вызываемую из цикла (через другие функции). Затем вы также можете вызвать TurnMotor из цикла или функцию, вызываемую из цикла. Значение (int Serial_input), вероятно, больше не обязательно должно быть глобальным, но это зависит от времени, когда вы присваиваете значение и когда вы вызываете TurnMotor.
- Accelstepper запустить степпер назад
- Как заставить шаговый двигатель вращаться по часовой стрелке и против часовой стрелки
- Управление направлением шагового двигателя с помощью кнопок.
- Разгон шагового двигателя
- Использование кнопки для поворота шагового двигателя на 90 градусов.
- Изменение ШИМ на Arduino Mega, контакты 9 и 10 на 20–25 кГц
- Установить низкий уровень мощности или включить контакт драйвера шагового двигателя, чтобы шаговый двигатель не нагревался.
- Шаговый двигатель не работает с платой A4988
вы не можете вызвать внешнюю функцию Serial.read(), @Juraj
Я вижу свою ошибку, как вы объяснили, @Danny