如果要制作LED跑馬燈的話,需要:
(1) 10個LED燈(顏色隨便)
(2) 面包板及連接線若干根(10根連接LED,一根連接5v)
(3) 1KΩ電阻1個(因為每次只亮一個燈,所以一個電阻就夠了,一段連接5V電源正極,一端連接所有LED的正極,書上的例子沒好好思考過這個問題,給每個LED串聯了一個電阻)
開始寫程序啦:
byte ledPin[ ] = {2, 3, 4, 5, 7, 8, 9, 10, 11}; //以LED引腳創建數組
int ledDelay(250); //變換燈之間的延時,你愛多少寫多少(毫秒)
int dir = 1;
int currentLED = 0;
unsigned long changeTime;
void setup() {
}
void loop()
{
}
void changeLED() {
digitalWrite(ledPin[currentLED], LOW); //開一個燈
currentLED+=dir;
if (currentLED == 8) {dir = -1;}
if (currentLED == 0) {dir = 1;} //讓燈輪流亮,到底換方向
}
結果如下
這里,函數millis()描述返回Arduino開發板從運行當前程序開始的毫秒數,是一個無符號長整數。不要以為一直數得下去,數到4294967296毫秒就歸零繼續計數。可4294967296毫秒是什么概念呢?4294967296毫秒-->420萬秒多-->7萬多分鐘-->1千多小時-->約49天多。而millis指的是毫秒。為啥要用毫秒?用秒的話幾毫秒不要小數點寫死了?