如果要制作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指的是毫秒。为啥要用毫秒?用秒的话几毫秒不要小数点写死了?