Menu
CoddyTech

Simon: Przyciski i dźwięki

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

Simon to gra pamięciowa: plansza odtwarza sekwencję kolorowych świateł i dźwięków, a ty powtarzasz ją za pomocą przycisków. W każdej rundzie sekwencja wydłuża się o jeden element, aż popełnisz błąd. Są cztery kolory, a każdy ma swój przycisk, diodę LED i dźwięk.

Przy czterech elementach każdego rodzaju tablice pozwalają skrócić szkic. Element 0 każdej tablicy odpowiada czerwonemu kolorowi, 1 zielonemu, 2 niebieskiemu, a 3 żółtemu, więc jedna liczba, i, oznacza kolor w każdym miejscu:

const int ledPins[4] = {9, 10, 11, 12};
const int buttonPins[4] = {2, 3, 4, 5};
const int notes[4] = {262, 330, 392, 523};

Pętla for sprawdza wszystkie cztery przyciski. Reaguj w dwóch momentach: gdy przycisk zostaje wciśnięty (LOW teraz, HIGH poprzednio) i gdy zostaje zwolniony (HIGH teraz, LOW poprzednio). Tablica lastState przechowuje ostatni odczyt każdego przycisku. W kolejnych krokach naciśnięcie jest zliczane, gdy przycisk zostaje zwolniony. Te przyciski nie drgają, więc sprawdzanie zboczy wystarczy.

challenge icon

Wyzwanie

Średni

Spraw, by cztery kolory grały:

  • w setup() pętla for ustawia piny LED jako wyjścia, a piny przycisków jako INPUT_PULLUP
  • gdy przycisk i zostanie wciśnięty, zaświeć ledPins[i] i odtwórz notes[i] na pinie 8
  • gdy zostanie puszczony, wyłącz diodę LED i wywołaj noTone()

Naciśnij Run, pobaw się przyciskami, a następnie naciśnij Check.

Spróbuj swoich sił

// Po jednym wpisie na kolor: czerwony, zielony, niebieski, żółty
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 i wysokie C
const int buzzerPin = 8;

int lastState[4] = {HIGH, HIGH, HIGH, HIGH};  // ostatni odczyt każdego przycisku

void setup() {
  // Diody LED są wyjściami, a przyciski używają INPUT_PULLUP

}

void loop() {
  // Dla każdego przycisku: gdy zostanie naciśnięty, zapal jego diodę LED i zagraj przypisany mu dźwięk;
  // gdy zostanie zwolniony, wyłącz diodę i dźwięk

}
quiz iconSprawdź się

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

Wszystkie lekcje w sekcji Projekty

Poćwicz samodzielnie: Edytor online Arduino