为什么串行监视器只提供相同的输出

Why the serial monitor only give same output

我正在设置 sen0189 浊度传感器与 arduino uno 板的连接,而给出的输出看起来很奇怪

void setup() {
    Serial.begin(9600);
}

void loop() {
    // read the input on analog pin 0:
    int sensorValue = analogRead(A0);
    // Convert the analog reading (which goes from 0 - 1023) 
    // to a voltage (0 - 5V):
    float voltage = sensorValue * (5.0 / 1024.0); 
    // print out the value you read:
    Serial.println(voltage); 
    Serial.println(analogRead(A0));
    delay(500);
} 

我预计输出会发生变化,但它的电压读数仅为 0.3,而 analogRead(A0) 为 62

您使用的是 DFRobot 开发套件的测试代码。我会在设置之前定义我的 pin 并添加一个 pinMode。这不是必需的,但根据我的经验,它效果更好。您的测量结果看起来很准确,因此请尝试以下方法来检查您的测量结果:

   #define analogPin A0

   void setup() {
   pinMode(analogPin, INPUT);
   Serial.begin(9600);
   }

   void loop() {
   int sensorValue = analogRead(analogPin);
   float voltage = sensorValue * (5.0 / 1024.0); 
   Serial.println(voltage);
   Serial.println(sensorValue); //That way you get the value corresponding to your voltage, else it is a new measurement
   delay(500);
   } 

使用上面的代码,您可以尝试手动计算等式 voltage = sensorValue * (5.0 / 1024.0) 并检查串行监视器的值是否正确。 否则检查您的连接并可能更换液体以查看输出是否变化。