arduino控制LCD1602问题
本帖最后由 arduino-tinker 于 2012-5-5 16:45 编辑LiquidCrystal lcd(12,11,5,4,3,2);
int sensor = 6;
int val;
void setup()
{
lcd.begin(16, 2);
pinMode(sensor,INPUT);
}
void loop()
{
if (val = LOW) {
lcd.clear;
lcd.setCursor(0,1);
lcd.print("LOW");
} else {
lcd.clear;
lcd.setCursor(0,1);
lcd.print("HIGH");
}
想用LCD1602显示传感器返回的数据,但是问题出现了。如果在代码中加入"lcd.clear()"(代码第16、20行),那么显示的时候会不断的闪屏(应该是反复执行清屏代码的原因吧!)如果不加的话,倒是不会闪,但是问题是当显示的内容改变时,如果前面的内容比改变后的长,就不会被全部覆盖。例如,原来显示的是“HIGH”,当变为“LOW”时,屏幕会显示“LOWH”,上一个内容多出来的部分不会消失。请问要怎么写代码才能解决这个问题,谢谢! val = LOW你是要赋值还是要比较?
HIGH的时候没必要加clear
实在还闪试试看“LOW ” lionelg 发表于 2012-5-6 10:04 static/image/common/back.gif
你是要赋值还是要比较?
HIGH的时候没必要加clear
实在还闪试试看“LOW ”
是要比较! 我想到一个办法,定义两个变量,val和old_val,在代码结束时把val赋值给old_val,然后写一个条件句,如果val等于old_val,说明显示内容不变,那么就不执行lcd.clear,如果不等,那么显示的内容就要发生变化,那么就执行lcd.clear。
页:
[1]