|
|
想实现按钮改变时间间隔,一个按钮是加,一个按钮是减,分别是1分钟,10分钟,20分钟间隔,并用不同颜色对的led表示,但输入程序后灯全部一起亮了,改了很久都无法达到理想要求,求大神们指引一下,谢谢
int t = 60000;//1分钟
int i = 1;
int KEY_NUM1 = 0;
int KEY_NUM2 = 0;
void setup ()
{
Serial.begin(9600);
pinMode(4,INPUT_PULLUP);
pinMode(10,INPUT_PULLUP);
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
pinMode(7,OUTPUT);
}
void loop()
{
if (i = 1)
{
digitalWrite(5,HIGH);
digitalWrite(6,LOW);
digitalWrite(7,LOW);
}
if (i = 2)
{
digitalWrite(5,LOW);
digitalWrite(6,HIGH);
digitalWrite(7,LOW);
}
if (i = 3)
{
digitalWrite(5,LOW);
digitalWrite(6,LOW);
digitalWrite(7,HIGH);
}
ScanKey1();
if(KEY_NUM1 == 1)
{
i = i++;
if(i>= 3)
{
i == 3;
}
t=t+600000; //每次累加值为10分钟
if (t>=1200000);
t=1200000; //限定最大值为20分钟(1200000)
Serial.print("time interval=");
Serial.println(t); //显示时间
delay (300);
}
ScanKey2();
if(KEY_NUM2 == 1)
i = i--;
if(i<= 0)
{
i == 0;
}
t=t-600000;//每次累减值为10分钟
if (t<=0) {
t=0;
Serial.print("time interval=");
Serial.println(t); //显示时间
delay (300);
}
}
void ScanKey1()
{
int up =digitalRead(4); //读取4号口的状态
KEY_NUM1 = 0;
if(digitalRead(up) == HIGH)
{
delay(20);
if(digitalRead(up) == HIGH)
{
KEY_NUM1 = 1;
while(digitalRead(up) == HIGH);
}
}
}
void ScanKey2()
{
int down = digitalRead(10); //读取10号口的状态
KEY_NUM2= 0;
if(digitalRead(down) == HIGH)
{
delay(20);
if(digitalRead(down) == HIGH)
{
KEY_NUM2 = 1;
while(digitalRead(down) == HIGH);
}
}
}
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|