İki Diziden Bir Melodi
Coddy'nin Arduino Journey'sinin Çıkışlar bölümünün bir parçası. Ders 14 / 24.
Bir ezgideki notaların uzunlukları aynı değildir. İkinci bir dizi, süreleri notalarla eşleştirilmiş şekilde tutabilir: notes[i] ve durations[i] birlikte kullanılır.
int notes[] = {262, 262, 392, 392, 440, 440, 392};
int durations[] = {400, 400, 400, 400, 400, 400, 800};Ardışık iki eş nota, tek bir uzun nota gibi duyulabilir. Her notadan sonra kısa bir sessizlik bırakmak onları birbirinden ayırır; bu yüzden notayı süresi boyunca çal ve biraz daha bekle:
tone(8, notes[i], durations[i]);
delay(durations[i] + 50);Süre notayı durdurur; fazladan 50 ms ise bir sonraki notadan önceki boşluktur.
İndeks son notayı geçtiğinde melodi bitmiştir: kendisiyle çakışmaması için yeniden başlatmadan önce biraz bekle.
Görev
OrtaPin 8'de Twinkle Twinkle Little Star şarkısının ilk dizesini çal:
- notalar: 262, 262, 392, 392, 440, 440, 392
- süreler: her biri 400 ms, son nota için 800 ms
- her notadan sonra, süresi artı 50 ms kadar bekle
- son notadan sonra bir saniye daha bekle ve yeniden başla
Run'a, ardından Check'e bas.
Kendin dene
const int buzzerPin = 8;
// notes ve durations dizilerini ve index değişkenini burada oluştur
void setup() {
}
void loop() {
// bir nota çal, süresi artı 50 ms kadar bekle, sonraki notaya geç
// son notadan sonra bir saniye bekle ve yeniden başla
}
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Çıkışlar bölümündeki tüm dersler
Kendi başına pratik yap: Arduino playground