這個實驗比較麻煩,因為這個實驗包含了跑馬燈、蜂鳴器和電位器。電位器阻值越大,跑馬燈速度越慢,間隔時間根據電位器的阻值采樣為:(100+2×采樣值)毫秒,采樣值為0~1023。即100~2146毫秒之間,每次點亮LED時,蜂鳴器都會蜂鳴一次(20毫秒)
程序如下:
#define Pot A0
#define Buzzer 12 //以電位器引腳創建
byte ledPin[] = {2,3,4,5,6,7,8,9,10}; //Port 2~10 LED輸出,低電平有效
int ledDelay;
int dir = 1;
int currentLED = 0;
int PotBuffer = 0;
unsigned long changeTime;
void setup() {
}
void loop()
{
}
void changeLED() {
digitalWrite(ledPin[currentLED], LOW);
//BuzzerDi();
digitalWrite(Buzzer,LOW);
ledDelay = 20 + 2*PotBuffer;
currentLED+=dir;
if (currentLED == 8) {dir = -1;}
if (currentLED == 0) {dir = 1;}
}
效果: