我想实现的功能是:从串口输入一个串数字,然后在lcd显示出来,,当我按下唯一的那个按键(一端接+5V一端接数字口9)的时候,arduino能将那串数字存储起来,然后将lcd清零,再重新输入一串数字的时候,可以将第二串数字加上第一串数字的数值,在lcd上显示。我写的程序如下:
#include <LiquidCrystal.h> //申明1602液晶的函数库
#define KEY 9
LiquidCrystal lcd(12,11,10,5,4,3,2); //4数据口模式连线声明
String comdata,val;
void setup()
{
lcd.begin(16,2);
Serial.begin(9600);
pinMode(KEY,OUTPUT);
}
void loop()
{
lcd.home(); //把光标移回左上角,即从头开始输出
lcd.print("WEIGHT:"); //显示
lcd.setCursor(0,1); //把光标定位在第1行,第0列
while(Serial.available()>0)
{
comdata+=char(Serial.read());
delay(2);
}
if(comdata.length()>0)
{
lcd.print(comdata); //显示
comdata="";
}
if(digitalRead(KEY)==HIGH)
{
delay(20);
if(digitalRead(KEY)==HIGH)
{
//lcd.clear();
val=comdata; //存储数据
//Serial.flush();
lcd.print("0.0000");
delay(1000);
}
}
else
while(Serial.available()>0)
{
comdata=val+char(Serial.read());
delay(2);
}
if(comdata.length()>0)
{
lcd.print(comdata); //显示
comdata="";
}
}
感觉有点弄不清楚,,麻烦各位大佬帮忙看看,,感谢感谢 |