使用Arduino进行液晶LCD编程?

时间:2012-04-18 22:52:51

标签: arduino i2c 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);
}

3 个答案:

答案 0 :(得分:1)

这是我上周提出的。感谢所有的建议!

#include <Wire.h> 
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);  

void setup() {}

void loop()
{ lcd.init();                      
lcd.backlight();

int VoltsInput = A0;
int VoltsRange = 0;
int VoltsPercent = 0;

VoltsRange = (5.0/1023.0) * analogRead(VoltsInput);
VoltsPercent = (((5.0/1023.0) * analogRead(VoltsInput)) / 5) * 100;

lcd.print(VoltsRange);
lcd.print("V    ");

lcd.print(VoltsPercent);
lcd.print("%");}

答案 1 :(得分:0)

将它放在循环()中并使用delay()函数,以便程序每隔几秒而不是每毫秒从锅中读取值。

答案 2 :(得分:0)

听起来print()每次调用时都会清除以前数据的屏幕(虽然可用的herehere相关文档和库代码不清楚。)

如果是这种情况,您需要在循环中打印Voltage=字符串以及传感器值。尝试将代码更改为:

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

LiquidCrystal_I2C lcd(0x27,16,2);  
int sensorPin = A0;

void setup()
{
    lcd.init();                      
    lcd.backlight();
}

void loop()
{
    int sensorValue = 0.004882812 * analogRead(sensorPin) + 1;
    String display = "Voltage=";
    display += sensorValue;
    lcd.print(display);
}