我希望液晶显示器显示“Voltage =(sensorValue)”,但现在,当我转动电位计时,让程序识别该值的唯一方法是将其置于循环中。但是,当我将其循环放置时,取决于电位计的设置位置,整个屏幕将充满1s,2s,3s,4s或5s。

如果我没有将其循环,那么打开电位器的任何设置都会在屏幕上弹出,并且如果打开电位器则不会改变。

如何将循环的结果放在循环之外,这样我就可以拥有“(Voltage = sensoreValue)”?

这是我的程序:

#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27,16,2);

void setup()
{
    lcd.init();
    lcd.backlight();
    int sensorPin = A0;
    int sensorValue = 0;
    sensorValue = 0.004882812 * analogRead(sensorPin) + 1;
    lcd.print("Voltage=");
}

void loop()
{
    int sensorPin = A0;
    int sensorValue = 0;
    sensorValue = 0.004882812 * analogRead(sensorPin) + 1;
    lcd.print(sensorValue);
}

最佳答案

您要求它打印读数,并且它正在执行-它正在打印每个读数!

我怀疑您要么只希望值更改才打印

int sensorValue = 0;
int prevValue = 0;

void loop()
{
    sensorValue = 0.004882812 * analogRead(sensorPin) + 1;
    if (sensorValue != prevValue) {
       lcd.print(sensorValue);
       prevValue == sensorValue;
    }
}

或者,您可以打印'n'个退格键,这样,如果您的显示lcd.print支持,则将新值打印在旧值的顶部。

10-08 00:44