У меня возникли проблемы с тем, как мои библиотечные переменные взаимодействуют с объявлением объекта шагового двигателя

#variables #arduino #arduino-uno #stepper

#переменные #arduino #arduino-uno #шаговый

Вопрос:

У меня возникли проблемы с тем, как мои библиотечные переменные взаимодействуют с объявлением объекта шагового двигателя. Я получаю ошибку «переменная не была объявлена в этой области». У кого-нибудь есть какие-либо советы? Я опубликую ссылку на ветку, в которой находится мой код. Пожалуйста, простите за текущую настройку папки в ветке. Я нахожусь на альфа-стадии этого кода.

https://github.com/HullabalooRobotics/Soldering-Machine/tree/testBranch/SolderingMachine

Мой объект, созданный в .cpp, не извлекается из массивов, которые я создал в .h, когда я считаю, что это должно быть. Я открыт для любых советов!

Ответ №1:

В вашем коде

 Stepper stepperA(60,_stepperMotorPinA[0], _stepperMotorPinA[1], _stepperMotorPinA[2], _stepperMotorPinA[3]);
Stepper stepperB(60,_stepperMotorPinB[0], _stepperMotorPinB[1], _stepperMotorPinB[2], _stepperMotorPinB[3]);
Stepper stepperC(60,_stepperMotorPinC[0], _stepperMotorPinC[1], _stepperMotorPinC[2], _stepperMotorPinC[3]);
Servo solderServo;
  

Является частью глобальной области видимости, как таковой, у него нет доступа к экземплярам _stepperMotorPin *, которые являются свойствами экземпляра вашего класса.

Чтобы ваш код работал должным образом, вам нужно будет сделать экземпляры stepper * частью вашего класса в качестве свойств и инициализировать их внутри функции класса.

Комментарии:

1. Привет, Нитро! Поскольку это мой первый вопрос, я рад видеть такой быстрый ответ. Однако, будучи начинающим программистом, я не уверен, что понимаю. Чтобы быть более точным, я не следую вашему второму абзацу (я уверен, что это правильно, мне просто нужно немного больше объяснений). Я попытался переместить объявление объекта шагового двигателя (я думаю, именно так вы это говорите) в закрытый раздел класса SolderingMachine, но столкнулся со многими ошибками компиляции. Я также попытался поместить их в конструктор библиотеки с аналогичными результатами. Что это за способ поместить их в их собственную функцию для их инициализации?