Menu
CoddyTech

Simon: Tombol dan Nada

Termasuk bagian Proyek dalam perjalanan Arduino di Coddy. Pelajaran 13 dari 24.

Simon adalah game memori: papan memainkan pola lampu berwarna dan nada, lalu kamu mengulanginya dengan menekan tombol. Setiap ronde, pola bertambah satu, sampai kamu membuat kesalahan. Ada empat warna, masing-masing dengan tombol, LED, dan nada.

Karena semuanya berjumlah empat, array membuat sketch tetap singkat. Entri 0 di setiap array adalah merah, 1 hijau, 2 biru, dan 3 kuning, jadi satu angka, i, menamai warna di mana pun:

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

Perulangan for memeriksa keempat tombol. Bertindaklah pada dua momen: saat tombol ditekan (LOW sekarang, HIGH sebelumnya) dan saat tombol dilepas kembali (HIGH sekarang, LOW sebelumnya). Array lastState menyimpan pembacaan terakhir setiap tombol. Langkah berikutnya menghitung sebuah tekanan saat tombol dilepas kembali. Tombol-tombol ini tidak memantul, jadi pemeriksaan tepi sudah cukup.

challenge icon

Tantangan

Sedang

Buat keempat warna berbunyi:

  • di setup(), perulangan for mengatur pin LED sebagai output dan pin tombol menggunakan INPUT_PULLUP
  • saat tombol i ditekan, nyalakan ledPins[i] dan bunyikan notes[i] pada pin 8
  • saat tombol dilepas, matikan LED dan panggil noTone()

Tekan Jalankan, mainkan tombol-tombolnya, lalu tekan Periksa.

Coba sendiri

// Satu entri untuk setiap warna: merah, hijau, biru, kuning
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, dan C tinggi
const int buzzerPin = 8;

int lastState[4] = {HIGH, HIGH, HIGH, HIGH};  // pembacaan terakhir setiap tombol

void setup() {
  // LED adalah output, tombol menggunakan INPUT_PULLUP

}

void loop() {
  // untuk setiap tombol: saat ditekan, nyalakan LED-nya dan mainkan nadanya;
  // saat dilepas, matikan LED dan nadanya

}
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Proyek

Latihan sendiri: Playground Arduino