做了一个咪头控制呼吸灯的小东西,实现拍一下手呼吸灯逐渐变化,再拍一下手呼吸灯灭,代码正常执行,
如果直接控制灯的亮灭,可以实现,但是加上呼吸灯的代码后,可以亮并且呼吸,但再拍一下手就不灭了,用打印看了一下,我自己判断为跳不出for循环,想请教大神看下,我哪里出问题了,在这里先谢谢了!
代码如下
- int Pin1=A5;//(模拟引脚都可以)
- /*Arduino A5接咪头负极(从外形上看引脚短的一边或与外壳有连接的一边)
- 另外一边接5v.注意:咪头负极要接一个10K的下拉电阻*/
- int Pin2=10;//Arduino 10脚接LED正极(数字脚都可以)
- int n=0;//存储读取的模拟值
- boolean toggle=false;
- unsigned long fristClap=0;//第一次拍手
- unsigned long nextlap=0; //下一次拍手
- unsigned int claps=0;//拍手的次数
- unsigned long timeDiff=0;//时间间隔
- void setup()
- {
- pinMode(Pin2,OUTPUT);//定义10脚为输出模式
- Serial.begin(9600);
- }
- void loop()
- {
- n=analogRead(Pin1);//模拟读取A5的值
- if (n>515)
- {
- fristClap=millis();
- claps++;
- if(claps==2)
- {
- timeDiff=fristClap-nextlap;
- if (timeDiff>300&&timeDiff<2500)
- {
- toggle=!toggle;
- claps=0;
- }
- else
- claps=1;
- }
- nextlap=fristClap;
- }
- if (toggle)
- {
- Serial.println ("111");
- for (int value = 0 ; value < 255; value++)//value=value-1
- {
- analogWrite(Pin2, value);
- delay(8);
- }
- for (int value = 255; value >0; value--)//value=value-1
- {
- analogWrite(Pin2, value);
- delay(8);
- }
- delay(1000);
- }
- else
- {
- Serial.println ("222");
- analogWrite(Pin2, 0);
- delay(200);
-
- }
- }
复制代码
|