【问题标题】:Arduino stops looping after the 7th timeArduino 在第 7 次后停止循环
【发布时间】:2018-04-11 00:24:31
【问题描述】:

我有一个距离传感器和伺服器连接到我的 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);
}

【问题讨论】:

    标签: arduino arduino-uno


    【解决方案1】:
      outputValue = map(sensorValue, 0, 1023, 255, 0);
    

    不应该是这样的:

      outputValue = map(sensorValue, 0, 1023, 0, 255);
    

    语法

    map(value, fromLow, fromHigh, toLow, toHigh)

    参数

    value:要映射的数字

    fromLow:值当前范围的下限

    fromHigh:值当前范围的上限

    toLow:值的目标范围的下限

    toHigh:值的目标范围的上限

    正如你的代码,现在,你走得越高,outputValue 就越低……所以如果你把罐子(或者你在A0 上连接的任何东西)一直拉到上面,@987654326 @ 将为 0。伺服将被告知停止。

    【讨论】:

    • 它最终变成了一块坏板。换了,问题解决了。我被指示映射到 255, 0
    猜你喜欢
    • 1970-01-01
    • 2015-10-20
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    • 2021-07-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多