Talaan ng mga Nilalaman:
- Mga gamit
- Hakbang 1: I-hook Up ang Circuit
- Hakbang 2: Code para sa Pag-set up ng Mga Pin
- Hakbang 3: Code para sa Joystick Sensing
- Hakbang 4: Pangunahing Loop Routine Code
- Hakbang 5: Handa na Subukan
- Hakbang 6: Pagpapatupad ng Arduino Nano para sa Prototype
- Hakbang 7: Pangwakas na Naka-pack na Whack-a-MoLED na Prototype upang Ipakita ang Iyong Minamahal
2025 May -akda: John Day | [email protected]. Huling binago: 2025-01-13 06:58
Mga Proyekto ng Tinkercad »
Ito ay isang bersyon ng LED ng klasikong Whack-a-Mole Game.
Karaniwan ang isang random na LED sa labas ng 4 na LEDs ay sumisindi sa halip na isang taling na tumingin sa labas ng isang butas at pinapatay ng player ang LED gamit ang isang joystick sa halip na paluin ang taling!
Mga gamit
Arduino Uno / Nano o anumang variant board
4 LEDs at kaukulang kasalukuyang nililimitahan ang resistors.
Joystick module na may X, Y output
Aktibong Buzzer (opsyonal)
Jumper wires.. sapat na upang ma-debug!
Hakbang 1: I-hook Up ang Circuit
I-hook up ang Arduino Uno board sa module ng joystick, pagkonekta ng 2 analog Input pin sa mga output ng X Y ng joystick.
4 LEDs upang maiugnay gamit ang resistors sa 4 Digital o Analog output pin na pin.
Ang Aktibong Buzzer ay konektado sa isang digital output pin
Hakbang 2: Code para sa Pag-set up ng Mga Pin
int xVal = 0, yVal = 0, butVal = 0, xPin = A0, yPin = A1, joyPin = 13, ngunitPin = 7, speakerPin = 9;
int leftLED = A2, kananLED = A3, topLED = A4, ilalimLED = A5;
int napiliLED = 0; // Maaaring maging isa sa A2, A3, A4 o A5
walang bisa ang pag-setup () {
pinMode (xPin, INPUT);
pinMode (yPin, INPUT);
pinMode (leftLED, OUTPUT);
pinMode (kananLED, OUTPUT);
pinMode (topLED, OUTPUT); pinMode (ilalimLED, OUTPUT);
pinMode (joyPin, OUTPUT);
pinMode (buzzerPin, OUTPUT);
}
Hakbang 3: Code para sa Joystick Sensing
walang bisa ang joystickSenseRoutine ()
{
xVal = analogRead (xPin); yVal = analogRead (yPin); butVal = digitalRead (butPin);
joyPin = mapXYtoPin (xVal, yVal, butVal);
analogWrite (napiliLED, 1024);
kung (napiliLED! = kaliwaLED) {analogWrite (leftLED, 0); } kung (napiliLED! = kananLED) {analogWrite (kananLED, 0); }
kung (napiliLED! = topLED) {analogWrite (topLED, 0); }
kung (napiliLED! = ilalimLED) {analogWrite (ilalimLED, 0); }
kung (joyPin == napiliLED) // Mole Whacked
{
analogWrite (napiliLED, 0);
//
// Add code to play music / tone for whacking moLED !!
//
}
}
int mapXYtoPin (int xVal, int yVal, int butVal) {if ((xVal <100) at (yVal 400)) {return bottomLED; }
kung hindi man kung ((xVal> 900) at (yVal 400)) {return topLED; }
kung hindi man ((xVal 400) at (yVal <100)) {bumalik kaliwaLED; }
kung hindi man ((xVal 400) at (yVal> 900)) {bumalik sa kanan; }
kung hindi man {bumalik -1; }
}
Hakbang 4: Pangunahing Loop Routine Code
void loop () {
para sa (int i = 0; i <haba; i ++)
{
kung (random (0, 100)> 90) {selectLED = anaPinMap (random (2, 6));}
// Magdagdag ng code para sa laro ng musika dito
// *** *** ***
//
}
int anaPinMap (int randNum) {
kung (randNum == 2) {return A2; }
kung hindi man kung (randNum == 3) {ibalik ang A3; }
kung hindi man (randNum == 4) {return A4; }
kung hindi man (randNum == 5) {return A5; }
}
Hakbang 5: Handa na Subukan
Hakbang 6: Pagpapatupad ng Arduino Nano para sa Prototype
Parehong pagpapatupad na ginawa sa Arduino nano sa breadboard, pasadyang ginawa board na may LEDs, resistors at buzzer, at X-Y Joystick switch.
Hakbang 7: Pangwakas na Naka-pack na Whack-a-MoLED na Prototype upang Ipakita ang Iyong Minamahal
Mga supply para sa prototype:
Simpleng kahon ng karton (Minimum na 4cmX6cmX3cm), labis na mga piraso ng karton hanggang sa suporta.
Pandekorasyon na papel para sa takip ng chassis (opsyonal)
Multipurpose adhesive / pandikit
Mini breadboard (opsyonal)
Arduino nano
Maliit na Universal PCB
9V na baterya para sa paggana ng Arduino nano (kumonekta sa Vin pin).
SPDT switch
Ang natitirang mga supply (LEDs, resistors, joystick, buzzer, wires) na inilarawan sa hakbang 1 sa itaas.