Daftar Isi:
- Perlengkapan
- Langkah 1: Hubungkan Sirkuit
- Langkah 2: Kode untuk Pengaturan Pin
- Langkah 3: Kode untuk Joystick Sensing
- Langkah 4: Kode Rutin Loop Utama
- Langkah 5: Siap Mencoba
- Langkah 6: Implementasi Arduino Nano untuk Prototipe
- Langkah 7: Prototipe Whack-a-MoLED Paket Terakhir untuk Menghadirkan Kekasih Anda
2025 Pengarang: John Day | [email protected]. Terakhir diubah: 2025-01-13 06:57
Proyek Tinkercad »
Ini adalah versi LED dari Game Whack-a-Mole klasik.
Pada dasarnya LED acak dari 4 LED menyala alih-alih tahi lalat yang melihat keluar dari lubang dan pemain mematikan LED menggunakan joystick alih-alih memukul tahi lalat!
Perlengkapan
Arduino Uno/Nano atau papan varian apa pun
4 LED dan resistor pembatas arus yang sesuai.
Modul joystick dengan output X, Y
Buzzer Aktif (opsional)
Kabel jumper.. cukup untuk debug!
Langkah 1: Hubungkan Sirkuit
Hubungkan papan Arduino Uno ke modul joystick, sambungkan 2 pin Input analog ke output XY joystick.
4 LED disambungkan menggunakan resistor ke 4 pin output Digital atau Analog.
Buzzer aktif untuk dihubungkan ke pin keluaran digital
Langkah 2: Kode untuk Pengaturan Pin
int xVal = 0, yVal = 0, butVal = 0, xPin = A0, yPin = A1, joyPin = 13, butPin = 7, speakerPin = 9;
int leftLED = A2, rightLED = A3, topLED = A4, bottomLED = A5;
int dipilihLED = 0; // Bisa salah satu dari A2, A3, A4 atau A5
batalkan pengaturan() {
pinMode(xPin, INPUT);
pinMode(yPin, INPUT);
pinMode(LED kiri, OUTPUT);
pinMode(LED kanan, OUTPUT);
pinMode(LED atas, OUTPUT); pinMode(LED bawah, OUTPUT);
pinMode(joyPin, OUTPUT);
pinMode(buzzerPin, OUTPUT);
}
Langkah 3: Kode untuk Joystick Sensing
batal joystickSenseRoutine()
{
xVal = analogRead(xPin); yVal = analogRead(yPin); butVal = digitalRead(butPin);
joyPin = mapXYtoPin(xVal, yVal, butVal);
analogWrite(LED yang dipilih, 1024);
if (LED yang dipilih != LED kiri) { analogWrite(LED kiri, 0); } if (LED yang dipilih != rightLED) { analogWrite(LED kanan, 0); }
if (LED yang dipilih != topLED) { analogWrite(LED atas, 0); }
if (LED yang dipilih != LED bawah) { analogWrite(LED bawah, 0); }
if (joyPin == dipilihLED) // Mole Whacked
{
analogWrite(LED yang dipilih, 0);
//
// Tambahkan kode untuk memutar musik/nada untuk memukul moLED!!
//
}
}
int mapXYtoPin(int xVal, int yVal, int butVal) { if ((xVal < 100) dan (yVal 400)) { kembali bottomLED; }
else if ((xVal > 900) dan (yVal 400)) { return topLED; }
else if ((xVal 400) dan (yVal < 100)) { return leftLED; }
else if ((xVal 400) dan (yVal > 900)) { return rightLED; }
lain { kembali -1; }
}
Langkah 4: Kode Rutin Loop Utama
lingkaran kosong() {
untuk (int i = 0; i < panjang; i++)
{
if (random(0, 100) > 90) { selectedLED = anaPinMap(random(2, 6));}
// Tambahkan kode untuk musik game di sini
// *** *** ***
//
}
int anaPinMap(int randNum) {
if (randNum == 2) { kembalikan A2; }
else if (randNum == 3) { kembalikan A3; }
else if (randNum == 4) { kembalikan A4; }
else if (randNum == 5) { return A5; }
}
Langkah 5: Siap Mencoba
Langkah 6: Implementasi Arduino Nano untuk Prototipe
Implementasi yang sama dibuat dengan Arduino nano di papan tempat memotong roti, papan yang dibuat khusus dengan LED, resistor dan buzzer, dan sakelar joystick XY.
Langkah 7: Prototipe Whack-a-MoLED Paket Terakhir untuk Menghadirkan Kekasih Anda
Persediaan untuk prototipe:
Kotak kardus sederhana (Minimal 4cmX6cmX3cm), potongan kardus tambahan untuk penyangga.
Kertas dekoratif untuk menutupi sasis (opsional)
Perekat/lem serbaguna
Papan tempat memotong roti mini (opsional)
Arduino nano
PCB Universal Kecil
Baterai 9V untuk menyalakan Arduino nano (terhubung ke pin Vin).
sakelar SPDT
Persediaan lainnya (LED, resistor, joystick, buzzer, kabel) seperti yang dijelaskan pada langkah 1 di atas.