我正在尝试使用Arduino制作面向对象的机器人手臂。我正试图通过类联合控制步进电机。我已经在草图编译和执行方面遇到了一些问题,因为我对C ++很新,我对类,指针等并不是很了解。最后,我发现这段代码有效:
#include <Stepper.h>
class Joint {
private:
int NextStep;
public:
Stepper *TestStepper;
*Joint(int StepsPerRevolution, int DirPin, int StepPin) {
TestStepper = new Stepper(StepsPerRevolution, DirPin, StepPin);
}
};
Joint a(200, 3, 4);
void setup() {
}
void loop() {
a.TestStepper->step(1);
delay(2);
}
工作正常。唯一的问题是,当我重置(从板载按钮)Arduino时,它崩溃了,我甚至无法重新启动,甚至拔掉它并将其重新插入。为了使它工作,我必须首先拔掉它,上传新代码(在这里)几次,直到我可以恢复工作,然后上传代码与类。
#include <Stepper.h>
Stepper stepper(200, 3, 4);
void setup(){
}
void loop() {
stepper.step(1);
delay(2);
}
我想我已经发现它与该类有关,因为其他代码即使在多次重置后也能正常工作。此外,当我重置一个“崩溃的”Arduino时,它做了一小步,好像它在循环一次迭代后被阻塞了()
我正在使用Arduino Due和A4988步进驱动程序。我正在通过Native USB对Arduino进行编程,并使用9v电池为电机供电。