Menu
CoddyTech

Nuty w tablicy

Część sekcji Wyjścia ścieżki Arduino w Coddy. Lekcja 13 z 24.

Melodia to lista nut. Tablica przechowuje listę wartości pod jedną nazwą:

int notes[] = {262, 294, 330, 349};  // C, D, E, F

Każda wartość ma pozycję nazywaną indeksem, a liczenie zaczyna się od 0: notes[0] to 262, notes[1] to 294, a ostatnia wartość, notes[3], to 349. Nie ma notes[4]: odczytanie jej zwraca to, co akurat znajduje się w pamięci za tablicą.

Indeksem może być zmienna. Zachowaj ją, zagraj nutę, na którą wskazuje, a następnie przesuń ją dalej:

int i = 0;

void loop() {
  tone(8, notes[i]);
  delay(400);
  i = i + 1;
  if (i == 4) {
    i = 0;
  }
}

Za każdym razem, gdy uruchamia się loop(), odgrywana jest następna nuta. Po ostatniej indeks wraca do 0 i melodia zaczyna się od nowa.

challenge icon

Wyzwanie

Łatwy

Odtwarzaj kolejno nuty C, D, E i F na pinie 8, każdą przez 400 ms, w kółko:

  • przechowuj cztery częstotliwości w tablicy: 262, 294, 330, 349
  • użyj zmiennej indeksu, aby odtwarzać kolejną nutę za każdym razem, gdy uruchamia się loop()
  • po ostatniej nucie wróć do pierwszej

Naciśnij Run, a następnie Check.

Spróbuj swoich sił

const int buzzerPin = 8;
// utwórz tutaj tablicę notes i zmienną index

void setup() {
}

void loop() {
  // odtwórz nutę o danym indeksie, odczekaj 400 ms, przejdź do następnej
}
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Wyjścia

Poćwicz samodzielnie: Edytor online Arduino