我的Arduino上有一个距离传感器和伺服器。在第7次读取之后,循环停止,并且没有其他任何内容添加到串行监视器。有什么线索的原因?
#include <Servo.h>
Servo myservo;
void setup() {
Serial.begin(9600);
myservo.attach(9);
delay(15);
}
void loop() {
const int analogInPin = A0;
int sensorValue = 0;
sensorValue = analogRead(analogInPin);
int outputValue = 0;
outputValue = map(sensorValue, 0, 1023, 255, 0);
Serial.println(outputValue);
myservo.write(outputValue);
delay(500);
}
答案 0 :(得分:0)
outputValue = map(sensorValue, 0, 1023, 255, 0);
不应该是:
outputValue = map(sensorValue, 0, 1023, 0, 255);
语法
map(value, fromLow, fromHigh, toLow, toHigh)
参数
值:要映射的数字
fromLow:值的当前范围的下限
fromHigh:值的当前范围的上限
toLow:值的目标范围的下限
toHigh:值的目标范围的上限
正如您编码的那样,现在,您走得越高,outputValue
越低......所以如果您将底池(或A0
上连接的任何东西)拉到一边向上,outputValue
将为0.伺服将被告知停止。