mussBAschaffen 发表于 2013-5-28 21:46 
恩,只是led,可能本人过于愚蠢,不知道怎么修改代码达到这效果。。能指点一下么
贴一段 我教学用的代码给你
你看看 我就不解释了... 不懂的你再问就好了
- #define PIN_DATA 11
- #define PIN_CLOCK 12
- #define PIN_LATCH 8
- int rollingInterval = 200; // 闪烁时间 ms
- int oldTime, newTime = 0 ;
- int lightState = B00000000;
- void setup(){
- pinMode(PIN_DATA,OUTPUT);
- pinMode(PIN_CLOCK,OUTPUT);
- pinMode(PIN_LATCH,OUTPUT);
- oldTime = millis();
- }
- void loop(){
- newTime = millis();
- if ( newTime - oldTime >= rollingInterval){
- switch (lightState){
- case B00000000:
- lightState = B00000001;
- break;
- case B00000001:
- lightState = B00000010;
- break;
- case B00000010:
- lightState = B00000100;
- break;
- case B00000100:
- lightState = B00001000;
- break;
- case B00001000:
- lightState = B00010000;
- break;
- case B00010000:
- lightState = B00100000;
- break;
- case B00100000:
- lightState = B01000000;
- break;
- case B01000000:
- lightState = B10000000;
- break;
- case B10000000:
- lightState = B00000001;
- break;
- }
- digitalWrite(PIN_LATCH,LOW);
- shiftOut(PIN_DATA,PIN_CLOCK,MSBFIRST,lightState);
- digitalWrite(PIN_LATCH,HIGH);
- oldTime = newTime;
-
- }
- }
复制代码 |