《Arduino从基础到实践》第三章的练习1:
使LED灯带两端变亮,并向对方LED运动,知道互相碰到,之后返回到两端:
代码如下:
byte ledPin[] = {4, 5, 6, 7, 8, 9, 10, 11, 12, 13};
int ledDelay(65);
int directionL = 1;
int directionR = -1;
int currentLLED = 0;
int currentRLED = 9;
unsigned long changeTime;
void setup() {
// put your setup code here, to run once:
for (int x = 0; x < 10; x++)
{
pinMode(ledPin[x], OUTPUT);
}
digitalWrite(ledPin[currentLLED], HIGH);
digitalWrite(ledPin[currentRLED], HIGH);
changeTime = millis();
}
void loop() {
// put your main code here, to run repeatedly:
if ((millis() - changeTime) > ledDelay)
{
changeLED();
changeTime = millis();
}
}
void changeLED()
{
digitalWrite(ledPin[currentLLED], LOW);
digitalWrite(ledPin[currentRLED], LOW);
if (currentLLED == 4)
{
directionL = -1;
}
else if (currentLLED == 0)
{
directionL = 1;
}
if (currentRLED == 5)
{
directionR = 1;
}
else if (currentRLED == 9)
{
directionR = -1;
}
currentLLED += directionL;
currentRLED += directionR;
digitalWrite(ledPin[currentLLED], HIGH);
digitalWrite(ledPin[currentRLED], HIGH);
delay(250);
}
连接图如下:
![练习1 - gc_2299 - gc_2299的博客 练习1 - gc_2299 - gc_2299的博客](http://img0.ph.126.net/xOBIoiahdO206oafDv41Sw==/6631301961677718900.jpg)