Arduino: движущийся свет, повторяющий последовательность - PullRequest
1 голос
/ 28 марта 2020

во время закрытия школы моему сыну нужно было сделать домашнее задание.

Каждый программирует последовательность движущихся источников света, 5 светодиодов, которая должна работать:

1, 1-2, 1- 2-3, 1-2-3-4, 1-2-3-4-5, 1, 1-2, ...

Ему разрешено использовать только ограниченный выбор заказов, нет 'if' или 'while'

Результат на данный момент:

1, 1-2, 1-2-3, 1-2-3-4, 1-2- 3-4-5, 1-2-3-4-5 , 1, 1-2, ...

Вот код:

void setup() { 

 for (int a=1; a<6; a++) {  
  pinMode(a, OUTPUT);     
 } 
} 
void loop() {
 for (int a=1; a<6; a++) {
  digitalWrite(a, HIGH);
  delay(300);
  digitalWrite(a,LOW);
  delay(300);
 for (int b=1; b<=a; b++) {
   digitalWrite(b, HIGH);
   delay(300); 
   digitalWrite(b,LOW);
   delay(300);
  }
 }
}

Спасибо

Маркус

Редактировать: Странно, похоже, что 'Привет' и 'привет' не разрешено начинать пост с: - (

Ответы [ 2 ]

0 голосов
/ 28 марта 2020

Понятно, прочитайте инструкцию из школы ...

void setup() { 
for (int a=1; a<6; a++) {  
pinMode(a, OUTPUT);     
} 
} 
void loop() {
for (int a=1; a<6; a++) {
for (int b=1; b<=a; b++) {
digitalWrite(b, HIGH);
delay(300); 
digitalWrite(b,LOW);
delay(300);
}
}
}

Не знаю, как правильно назвать его в английском sh, но это была двойная "цифровая запись" ( digitalwrite (a, ..); digitalwrite (b, ..)) в последовательности l oop

0 голосов
/ 28 марта 2020

Простое письмо на бумаге помогает (это то, что дети, вероятно, должны выучить)

for (int a=1; a<6; a++) {

Теперь мы должны проверить, что a = ?? Угадайте, что 6, поэтому следующий для

для (int b = 1; b <= a; b ++) {</p>

имеет один дополнительный шаг, поэтому условие должно быть

b

Для отладки полезно использовать

Serial.println("Value of a: ");
Serial.print(a);
Serial.print("  Value of b: ");
Serial.print(b);

Если это сработало, отметьте как решенное

...