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.
Tantangan
SedangBuat keempat warna berbunyi:
- di
setup(), perulanganformengatur pin LED sebagai output dan pin tombol menggunakanINPUT_PULLUP - saat tombol
iditekan, nyalakanledPins[i]dan bunyikannotes[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
}
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Proyek
Latihan sendiri: Playground Arduino