Arduino从基础到实践第三章练习题

时间:2023-03-09 18:54:21
Arduino从基础到实践第三章练习题

先写在这里,还没经过测试。

1. LED两端往中间移动,到中间后向两边返回。

 // adr301.ino

 byte ledPin[] = {, , , , , , , , , };
int ledDelay();
int direction = ;
int currentLED = ;
unsigned long changeTime; void setup() {
for(int i=; i<; i++){
pinMode(ledPin[i], OUTPUT);
} changeTime = millis();
} void loop() {
if((millis() - changeTime) > ledDelay){
changeLED();
changeTime = millis();
}
} void changeLED() {
for(int i=; i<; i++){
digitalWrite(ledPin[i], LOW);
} digitalWrite(ledPin[currentLED], HIGH);
digitalWrite(ledPin[ - - currentLED], HIGH); currentLED += direction; if(currentLED == ){
direction = -;
} if(currentLED == ){
direction = ;
}
}

添加结果视频

2. LED弹跳球

 // adr302.ino

 byte ledPin[] = {, , , , , , , , , };
int ledDelay();
int direction = ;
int currentLED = ;
int maxHeight = ;
unsigned long changeTime; void setup() {
for(int i=; i<; i++){
pinMode(ledPin[i], OUTPUT);
} changeTime = millis();
} void loop() {
if((millis() - changeTime) > ledDelay){
changeLED();
changeTime = millis();
}
} void changeLED() {
for(int i=; i<; i++){
digitalWrite(ledPin[i], LOW);
} digitalWrite(ledPin[currentLED], HIGH); currentLED += direction; if(currentLED == maxHeight){
direction = -;
maxHeight -= ;
} if(currentLED == ){
direction = ;
maxHeight = ;
}
}