Simon: Düğmeler ve Notalar
Coddy'nin Arduino Journey'sinin Projeler bölümünün bir parçası. Ders 13 / 24.
Simon bir hafıza oyunudur: tahta renkli ışıklar ve notalardan oluşan bir dizi çalar, siz de bunu düğmelerle tekrarlarsınız. Her turda dizi, hata yapana kadar bir öğe uzar. Dört renk vardır; her birinin bir düğmesi, LED'i ve notası bulunur.
Her şeyden dörder tane olduğundan, diziler kod taslağını kısa tutar. Her dizinin 0. öğesi kırmızı, 1. öğesi yeşil, 2. öğesi mavi ve 3. öğesi sarıdır; böylece i sayısı her yerde bir rengi belirtir:
const int ledPins[4] = {9, 10, 11, 12};
const int buttonPins[4] = {2, 3, 4, 5};
const int notes[4] = {262, 330, 392, 523};Bir for döngüsü dört düğmenin tümünü kontrol eder. İki anda işlem yapın: bir düğmeye basıldığında (şimdi LOW, önceki okumada HIGH) ve bırakıldığında (şimdi HIGH, önceki okumada LOW). lastState dizisi her düğmenin son okuma değerini saklar. Sonraki adımlarda, düğme bırakıldığında bir basış sayılır. Bu düğmelerde titreşim olmadığından, kenar kontrolleri yeterlidir.
Görev
OrtaDört rengi çal:
setup()içinde birfordöngüsü LED pinlerini çıkış, düğme pinleriniINPUT_PULLUPyaparidüğmesine basıldığındaledPins[i]ışığını yak ve 8 numaralı pindenotes[i]çal- düğme bırakıldığında LED'i kapat ve
noTone()çağır
Run'a bas, düğmeleri kullan, ardından Check'e bas.
Kendin dene
// Her renk için bir öğe: kırmızı, yeşil, mavi, sarı
const int ledPins[4] = {9, 10, 11, 12};
const int buttonPins[4] = {2, 3, 4, 5};
const int notes[4] = {262, 330, 392, 523}; // C, E, G ve tiz C
const int buzzerPin = 8;
int lastState[4] = {HIGH, HIGH, HIGH, HIGH}; // her düğmenin son okunan değeri
void setup() {
// LED'ler çıkış, düğmeler INPUT_PULLUP olarak ayarlanır
}
void loop() {
// her düğme için: basıldığında LED'ini yak ve notasını çal;
// serbest bırakıldığında ikisini de kapat
}
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Projeler bölümündeki tüm dersler
Kendi başına pratik yap: Arduino playground