Sisukord:
2025 Autor: John Day | [email protected]. Viimati modifitseeritud: 2025-01-13 06:57
Tinkercadi projektid »
See on klassikalise Whack-a-Mole mängu LED-versioon.
Põhimõtteliselt süttib 4 LED -ist juhuslik LED, mitte auku vaatav mutt ja mängija lülitab LED -i juhtnupuga välja, selle asemel, et mooli lüüa!
Tarvikud
Arduino Uno/Nano või mis tahes variantplaat
4 LED -i ja vastavad voolu piiravad takistid.
Joystick moodul X, Y väljunditega
Aktiivne helisignaal (valikuline)
Jumper juhtmed.. silumiseks piisab!
Samm: ühendage vooluring
Ühendage Arduino Uno plaat juhtkangimooduliga, ühendades 2 analoogsisendinuppu juhtkangi X Y väljunditega.
4 LED -i, mis ühendatakse takistite abil 4 digitaalse või analoogväljundi tihvtiga.
Aktiivne helisignaal ühendatakse digitaalse väljundpistikuga
Samm: tihvtide seadistamise kood
int xVal = 0, yVal = 0, butVal = 0, xPin = A0, yPin = A1, joyPin = 13, butPin = 7, speakerPin = 9;
int vasakuleLED = A2, paremaleLED = A3, ülemiseleLED = A4, alumiseleLED = A5;
int valitudLED = 0; // Võib olla üks A2, A3, A4 või A5
tühine seadistus () {
pinMode (xPin, INPUT);
pinMode (yPin, INPUT);
pinMode (vasak LED, VÄLJUND);
pinMode (parem LED, VÄLJUND);
pinMode (topLED, OUTPUT); pinMode (alt LED, VÄLJUND);
pinMode (joyPin, OUTPUT);
pinMode (buzzerPin, OUTPUT);
}
3. samm: juhtkangi tuvastamise kood
void joystickSenseRoutine ()
{
xVal = analogRead (xPin); yVal = analogRead (yPin); butVal = digitalRead (butPin);
joyPin = kaartXYtoPin (xVal, yVal, butVal);
analogWrite (valitudLED, 1024);
if (valitudLED! = vasakLED) {analogWrite (vasakLED, 0); } if (valitudLED! = rightLED) {analogWrite (rightLED, 0); }
if (valitudLED! = topLED) {analogWrite (topLED, 0); }
if (valitudLED! = alumineLED) {analoogkiri (alumineLED, 0); }
if (joyPin == valitudLED) // Mole Whacked
{
analogWrite (valitudLED, 0);
//
// Lisa kood muusika esitamiseks/toon moLED -i löömiseks !!
//
}
}
int mapXYtoPin (int xVal, int yVal, int butVal) {if ((xVal <100) ja (yVal 400)) {return bottomLED; }
else if ((xVal> 900) ja (yVal 400)) {return topLED; }
else if ((xVal 400) ja (yVal <100)) {return leftLED; }
else if ((xVal 400) ja (yVal> 900)) {return rightLED; }
else {return -1; }
}
Samm 4: põhisilmuse rutiinne kood
void loop () {
jaoks (int i = 0; i <pikkus; i ++)
{
if (juhuslik (0, 100)> 90) {valitudLED = anaPinMap (juhuslik (2, 6));}
// Lisage siia mängumuusika kood
// *** *** ***
//
}
int anaPinMap (int randNum) {
if (randNum == 2) {return A2; }
else if (randNum == 3) {return A3; }
else if (randNum == 4) {return A4; }
else if (randNum == 5) {return A5; }
}
Samm: valmis proovimiseks
6. samm: Arduino Nano rakendamine prototüübi jaoks
Sama teostus on tehtud Arduino nano leivaplaadis, eritellimusel valmistatud LED-lampide, takistite ja helisignaali ning X-Y juhtkangi lülitiga.
Samm 7: Lõplik pakendatud Whack-a-MoLED prototüüp oma lähedase esitlemiseks
Prototüübi tarned:
Lihtne pappkarp (vähemalt 4cmX6cmX3cm), täiendavad papitükid toestamiseks.
Dekoratiivne paber šassii katmiseks (valikuline)
Mitmeotstarbeline liim/liim
Mini leivalaud (valikuline)
Arduino nano
Väike universaalne trükkplaat
9 V aku Arduino nano toiteks (ühendage Vin pin -ga).
SPDT lüliti
Ülejäänud tarvikud (valgusdioodid, takistid, juhtkang, sumin, juhtmed), nagu on kirjeldatud ülaltoodud punktis 1.