|
用arduino mini + 升压模块 + mos管 做了个呼吸灯,用蓝牙控制,呼吸效果代码只执行一次,求教该怎么破解?
int pin = 11;
int i;
void LED_open();
void LED_close();
void low();
void middle();
void high();
void setup()
{
Serial.begin(9600);
pinMode(pin, OUTPUT);
}
void loop()
{
while(Serial.available())
{
char a=Serial.read();
if(a=='1')
{ LED_open();
Serial.println("ON");
}
else if(a=='2')
{LED_close();
Serial.println("OFF");}
else if(a=='3')
{low();
Serial.println("STATE_1");
}///////////////////////只执行一次,期望此条件下不断执行????????
else if(a=='4')
{while(i<)
{middle();
if(a=='2')
break;
}
Serial.println("STATE_2");
}
else if(a=='5')
{ high();
Serial.println("STATE_3");
}
}
}
void LED_open ( )
{
digitalWrite(pin, HIGH);
}
void LED_close ( )
{
digitalWrite(pin, LOW);
}
void low ( )
{
for (int a = 0; a <= 2000; a = a + 2)
{ delay(1);
digitalWrite(pin, HIGH);
delayMicroseconds(a);
digitalWrite(pin, LOW);
delayMicroseconds(2000 - a);
}
for (int a = 2000; a >= 0; a = a - 2)
{ delay(1);
digitalWrite(pin, HIGH);
delayMicroseconds(a);
digitalWrite(pin, LOW);
delayMicroseconds(2000 - a);
}
}
void middle()
{
for (int a = 0; a <= 3500; a = a + 2)
{ delay(1);
digitalWrite(pin, HIGH);
delayMicroseconds(a);
digitalWrite(pin, LOW);
delayMicroseconds(3500 - a);
}
for (int a = 3500; a >= 0; a = a - 2)
{ delay(1);
digitalWrite(pin, HIGH);
delayMicroseconds(a);
digitalWrite(pin, LOW);
delayMicroseconds(3500 - a);
}
}
void high()
{ for (int a = 0; a <= 5000; a = a + 2)
{ delay(1);
digitalWrite(pin, HIGH);
delayMicroseconds(a);
digitalWrite(pin, LOW);
delayMicroseconds(5000 - a);
}
for (int a = 5000; a >= 0; a = a - 2)
{ delay(1);
digitalWrite(pin, HIGH);
delayMicroseconds(a);
digitalWrite(pin, LOW);
delayMicroseconds(5000 - a);
}
} |
|