Menu
CoddyTech

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.

challenge icon

Görev

Orta

Dört rengi çal:

  • setup() içinde bir for döngüsü LED pinlerini çıkış, düğme pinlerini INPUT_PULLUP yapar
  • i düğmesine basıldığında ledPins[i] ışığını yak ve 8 numaralı pinde notes[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

}
quiz iconKendini test et

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