arduino io按下时长,加入了串口打印5位采集 io口有多少就能采集多少位 1602显示

#include <LiquidCrystal.h>
bool bs1=0,bs2=0,bs3=0,bs4=0,bs5=0,bs6=0,luo=0;
float val1,val;
int zs1,js1,rs1,zs2,js2,rs2,zs3,js3,rs3,zs4,js4,rs4,zs5,js5,rs5,zs6,js6,rs6;
int xians,qz,val2,s,j,k;
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);//第一个是接RS,第二个是EN,剩下的是接D4,D5,D6,D7;
//此代码一个io按下的时长并用1602显示出来。2017-3-16
//定义引脚 节省空间
#define j1 6
#define j2 7
#define j3 8
#define j4 9
#define j5 10
#define j6 13
#define potpin 0

void setup() {

Serial.begin(9600);
lcd.begin(16, 2);

pinMode(j1,INPUT_PULLUP);//按键一头接GND 一头IO口
pinMode(j2,INPUT_PULLUP);
pinMode(j3,INPUT_PULLUP);
pinMode(j4,INPUT_PULLUP);
pinMode(j5,INPUT_PULLUP);
pinMode(j6,OUTPUT);
}
void loop() {




//////////////////////////////////////
if(digitalRead(j1)==LOW&&bs1==0)
{
js1=millis()/1000;bs1=1;
}
if(digitalRead(j1)==HIGH&&bs1==1)
{
zs1=zs1+(millis()/1000-js1);
bs1=0;
}
//qz=millis()/1000;
lcd.setCursor(0, 0);//先清屏
lcd.print(" ");
lcd.setCursor(0, 0);//显示每次间隔4位
lcd.print(zs1);
//////////////////////////////////////
if(digitalRead(j2)==LOW&&bs2==0)
{
js2=millis()/1000;bs2=1;
}
if(digitalRead(j2)==HIGH&&bs2==1)
{
zs2=zs2+(millis()/1000-js2);
bs2=0;
}
//qz=millis()/1000;
lcd.setCursor(4, 0);//先清屏
lcd.print(" ");
lcd.setCursor(4, 0);//显示每次间隔4位
lcd.print(zs2);
//////////////////////////////////////
if(digitalRead(j3)==LOW&&bs3==0)
{
js3=millis()/1000;bs3=1;
}
if(digitalRead(j3)==HIGH&&bs3==1)
{
zs3=zs3+(millis()/1000-js3);
bs3=0;
}
//qz=millis()/1000;
lcd.setCursor(8, 0);//先清屏
lcd.print(" ");
lcd.setCursor(8, 0);//显示每次间隔4位
lcd.print(zs3);
//////////////////////////////////////
if(digitalRead(j4)==LOW&&bs4==0)
{
js4=millis()/1000;bs4=1;
}
if(digitalRead(j4)==HIGH&&bs4==1)
{
zs4=zs4+(millis()/1000-js4);
bs4=0;
}
//qz=millis()/1000;
lcd.setCursor(12, 0);//先清屏
lcd.print(" ");
lcd.setCursor(12, 0);//显示每次间隔4位
lcd.print(zs4);
//////////////////////////////////////
if(digitalRead(j5)==LOW&&bs5==0)
{
js5=millis()/1000;bs5=1;
}
if(digitalRead(j5)==HIGH&&bs5==1)
{
zs5=zs5+(millis()/1000-js5);
bs5=0;
}
//qz=millis()/1000;
lcd.setCursor(3, 1);//先清屏
lcd.print(" ");
lcd.setCursor(3, 1);//显示每次间隔5位
lcd.print(zs5);

//////////////////////////////////////


if(k!=millis()/1000)
{
if(luo==1){luo=0;
}
else if(luo==0){luo=1;}
digitalWrite(j6,luo);
Serial.println(luo);


k=millis()/1000;
val=analogRead(potpin);//读取模拟接口0 的值,并将其赋给val
val1=(5*val/1023)*5; //电压换算
lcd.setCursor(0, 1);//1位 第二行开始显示
lcd.print(" ");//清空不稳定的显示
lcd.setCursor(0, 1);//1位 第二行开始显示
lcd.print((int)(val1*10));
lcd.print("V");//单位

lcd.setCursor(11, 1);//显示光标
val2=millis()/1000;//取系统运行时间单位秒
lcd.print(val2);



dayin();

}

}
int dayin()
{
Serial.print(val2);
Serial.print("S T1:");
Serial.print(zs1);
Serial.print(" T2:");
Serial.print(zs2);
Serial.print(" T3:");
Serial.print(zs3);
Serial.print(" T4:");
Serial.print(zs4);
Serial.print(" T5:");
Serial.println(zs5);

}

posted @ 2017-03-16 10:38  xiaohe520  阅读(199)  评论(0编辑  收藏  举报