Daftar Isi:

Whack-a-moLED!!: 7 Langkah
Whack-a-moLED!!: 7 Langkah

Video: Whack-a-moLED!!: 7 Langkah

Video: Whack-a-moLED!!: 7 Langkah
Video: Whack-A-Mole | Cartoon-Box 22 2024, Juli
Anonim
Whack-a-moLED!!
Whack-a-moLED!!
Whack-a-moLED!!
Whack-a-moLED!!

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 Sirkuit
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

Image
Image

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

Prototipe Whack-a-MoLED Paket Terakhir untuk Menghadirkan Kekasih Anda!
Prototipe Whack-a-MoLED Paket Terakhir untuk Menghadirkan Kekasih Anda!
Prototipe Whack-a-MoLED Paket Terakhir untuk Menghadirkan Kekasih Anda!
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.

Direkomendasikan: