|
|
发表于 2013-11-19 19:08:22
|
显示全部楼层
setup()只會執行一次,結束之後就進loop()
如果你寫在setup(),跑完一次系統就卡在loop()裡
直接在loop()裡面跑8秒的話,在delay()時啥都不能做
用timer控制閃爍隨時要開關都行,不過對初學者可能難了點- #include <SimpleTimer.h>
- SimpleTimer timer;
- #define switchPin A0
- #define ledPin 3
- int timerNumber = -1;
- void flash(){
- digitalWrite(ledPin, !digitalRead(ledPin));
- }
- void setup(){
- Serial.begin(9600);
- pinMode(switchPin, INPUT);
- pinMode(ledPin, OUTPUT);
- }
- void loop(){
- timer.run();
- int switchValue = analogRead(switchPin);
- if(switchValue > 100){
- if(timerNumber >= 0){
- timer.deleteTimer(timerNumber);
- timerNumber = -1;
- }
- analogWrite(ledPin, map(switchValue, 100, 1024, 10, 250));
- }
- else if(timerNumber < 0){
- digitalWrite(ledPin, false);
- timerNumber = timer.setTimer(500, flash, 8*2);
- }
-
- delay(10);
- }
复制代码 |
|