用Arduino进行液晶LCD编程?

用Arduino进行液晶LCD编程?

问题描述:

我想让我的LCD显示“电压=(传感器值)”,但现在我可以让程序在转动电位计时识别该值的唯一方法是,如果将其放入一个循环中。但是当我把它放在一个循环中时,根据电位器的设置位置,整个屏幕会被填充1s,2s,3s,4s或5s。用Arduino进行液晶LCD编程?

如果我没有在一个循环中,然后无论设置电位器是什么将弹出在屏幕上,并将不会改变,如果电位器转动。

我怎样才能把一个循环的结果放在一个循环之外,所以我可以有“(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); 
} 
+0

[与Arduino的LCD编程]的可能重复(http://*.com/questions/10220673/lcd-programming-with-arduino) – 2012-04-20 19:07:25

把它放在循环(),并使用延迟()功能,让你的程序读取锅每毫秒值每隔几秒钟,而不是。

+0

谢谢,Sudar!我想我可能已经知道了。 – Eduardo 2012-04-25 16:00:37

听起来像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); 
} 
+0

谢谢,马修!我会试试这个代码。 – Eduardo 2012-04-25 15:59:34

这就是我上周提出的。感谢所有提供意见的人!

#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("%");} 
+0

恭喜修复!如果可以,请确保将您的答案标记为“已接受”,以便其他人能够从您的成功中学习。干杯〜 – 2012-04-25 16:20:03