c++ - 使用 Arduino 进行 LCD 编程

标签 c++ arduino

我希望我的 LCD 显示“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;
    }
}

或者,如果您的显示器 lcd.print 支持,您可以打印“n”个退格键,以便新值打印在旧值之上

关于c++ - 使用 Arduino 进行 LCD 编程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10220673/

相关文章:

javascript - HTTP 请求未正确发送数据

c - 将对象创建移动到 arduino 的 setup() 函数

c - 在 Arduino 中转换有符号/无符号 int 变量时出现问题

c++ - 如何在与定义分离的 void 上实现部分专用模板?

c++ - 循环遍历两个不同长度的 vector 时的优化

c++ - Arduino:如何向任何文本框或记事本显示 Serial.print 值

c++ - Arduino SoftwareSerial library mod 允许 8-O-1 com

c++ - 如何在 Visual Studio 中将库包含到项目中?

c++ - 如何检查 C++ 中耗时和分配的内存?

适用于 Android 的 Java C++ 包装器 : how to wrap c++ templates