C:\Users\31629\Desktop\pcb正在进行中\1200自动感应升降杯托 已驱动电机\sketch_jun11a\sketch_jun11a.ino: In function 'void loop()': C:\Users\31629\Desktop\pcb正在进行中\1200自动感应升降杯托 已驱动电机\sketch_jun11a\sketch_jun11a.ino:32:13: error: 'class Stepper' has no member named 'stop'; did you mean 'step'? C:\Users\31629\Desktop\pcb正在进行中\1200自动感应升降杯托 已驱动电机\sketch_jun11a\sketch_jun11a.ino:41:13: error: 'class Stepper' has no member named 'stop'; did you mean 'step'? exit status 1 Compilation error: 'class Stepper' has no member named 'stop'; did you mean 'step'?
时间: 2024-03-25 19:35:43 浏览: 23
这个错误是因为 Stepper 类没有 `stop` 方法,而你在代码中使用了 `stepper.stop()`,因此编译器报错了。
如果想要停止步进电机的旋转,可以使用 `stepper.step(0)` 来实现,将步进电机的步数设置为 0,即可停止旋转。
修改后的代码如下:
```
#include <Wire.h>
#include <Adafruit_VL6180X.h>
#include <Stepper.h>
#define STEPS 100
Stepper stepper(STEPS, 8, 10, 9, 11);
Adafruit_VL6180X vl = Adafruit_VL6180X();
void setup() {
Serial.begin(9600);
if (!vl.begin()) {
Serial.println("Failed to find sensor");
while (1);
}
vl.startRangeContinuous();
stepper.setSpeed(90);
}
void loop() {
uint8_t range = vl.readRange();
Serial.print("Range: ");
Serial.println(range);
if (range < 50) {
// 当距离小于50时步进电机正转
Serial.println("shun");
stepper.step(2048); // 4步模式下旋转一周用2048步。
stepper.step(0); // 停止步进电机的旋转
// 等待直到距离大于等于50
while (vl.readRange() >= 50) {
delay(100);
}
} else {
// 大于等于50时步进电机反转
Serial.println("ni");
stepper.step(-1024); // 4步模式下旋转一周用2048步。
stepper.step(0); // 停止步进电机的旋转
// 等待直到距离小于50
while (vl.readRange() > 50) {
delay(100);
}
}
}
```