Melodia z dwóch tablic
Część sekcji Wyjścia ścieżki Arduino w Coddy. Lekcja 14 z 24.
Dźwięki w melodii nie są jednakowej długości. Druga tablica może przechowywać czasy trwania, dopasowane do dźwięków: notes[i] i durations[i] tworzą parę.
int notes[] = {262, 262, 392, 392, 440, 440, 392};
int durations[] = {400, 400, 400, 400, 400, 400, 800};Dwa jednakowe dźwięki zagrane jeden po drugim zlałyby się w jeden długi dźwięk. Krótka cisza po każdym z nich pozwala je rozdzielić, więc graj dźwięk przez czas jego trwania i odczekaj chwilę dłużej:
tone(8, notes[i], durations[i]);
delay(durations[i] + 50);Czas trwania zatrzymuje dźwięk, a dodatkowe 50 ms to przerwa przed następnym dźwiękiem.
Gdy indeks przekroczy pozycję ostatniego dźwięku, melodia dobiega końca: odczekaj chwilę przed jej ponownym rozpoczęciem, aby nie nałożyła się na samą siebie.
Wyzwanie
ŚredniOdtwórz pierwszą linijkę Twinkle Twinkle Little Star na pinie 8:
- notes: 262, 262, 392, 392, 440, 440, 392
- durations: 400 ms każda, a dla ostatniej nuty 800 ms
- po każdej nucie odczekaj tyle, ile trwa, plus 50 ms
- po ostatniej nucie odczekaj jeszcze jedną sekundę i zacznij od nowa
Naciśnij Run, a następnie Check.
Spróbuj swoich sił
const int buzzerPin = 8;
// utwórz tutaj tablice nut i czasów trwania oraz indeks
void setup() {
}
void loop() {
// odtwórz jedną nutę, odczekaj czas jej trwania plus 50 ms, przejdź do następnej
// po ostatniej nucie odczekaj sekundę i zacznij od nowa
}
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