Arduino-电位器调速的跑马灯

将电路保持LED跑马灯效果里面的线路图,只需外加一个电位器,来调节LED灯点亮的速度。

需要的元件:

4.7kΩ旋转电位计:电位计

首先按照下图将电路图连接起来:

0006

 

byte ledPin[] = {4, 5, 6, 7, 8, 9, 10, 11, 12, 13};    // 为LED引脚成成数组
int ledDelay; // 变灯之间的延时
int direction = 1;
int currentLED = 0;
unsigned long changeTime;
int potPin = 2;    // 选择给电位器的输入引脚

void setup() {
for (int x=0; x<10; x++) { // set all pins to output 
                            pinMode(ledPin[x], OUTPUT); 
                         } 
       changeTime = millis(); 
} 
void loop() 
{ 
  ledDelay = analogRead(potPin); // 从电位器中读值 
  // 如果自最后一次变灯起已经过去了ledDelay毫秒的时间,则变灯
  if ((millis() - changeTime) > ledDelay) {      
    		changeLED();
   		changeTime = millis();
  	}
}

void changeLED() {
    	for (int x=0; x<10; x++) {   // 关闭所有LED
    		digitalWrite(ledPin[x], LOW);
  	}
    	digitalWrite(ledPin[currentLED], HIGH); // 点亮当前LED
        currentLED += direction; // 当前LED号增加direction表示的数值,相当于前进一个LED灯
  	// 如果达到最后LED灯,则变向
 	 if (currentLED == 9) {direction = -1;}
  	if (currentLED == 0) {direction = 1;}
}

0 Comments
Leave a Reply