Përmbajtje:
- Furnizimet
- Hapi 1: Lidhni qarkun
- Hapi 2: Kodi për konfigurimin e kunjave
- Hapi 3: Kodi për Joystick Sensing
- Hapi 4: Kodi rutinë i lakut kryesor
- Hapi 5: Gati për të Provuar
- Hapi 6: Arduino Nano Implementimi për Prototipin
- Hapi 7: Prototipi përfundimtar i paketuar i Whack-a-MoLED për të Prezantuar Njeriun tuaj të Dashur
2025 Autor: John Day | [email protected]. E modifikuara e fundit: 2025-01-13 06:58
Projektet Tinkercad »
Ky është një version LED i lojës klasike Whack-a-Mole.
Në thelb një LED i rastësishëm nga 4 LED ndizet në vend që një nishan të shikojë nga një vrimë dhe lojtari fik LED duke përdorur një levë në vend që të godas nishanin!
Furnizimet
Arduino Uno/Nano ose ndonjë bord variant
4 LED dhe rezistentët përkatës kufizues të rrymës.
Moduli xhojstik me dalje X, Y
Zile aktive (opsionale)
Telat e kërcyesit.. mjaftueshëm për të korrigjuar!
Hapi 1: Lidhni qarkun
Lidheni bordin Arduino Uno në modulin e levës, duke lidhur 2 kunja analoge të hyrjes në daljet X Y të levës.
4 LED do të lidhen duke përdorur rezistorë në 4 kunja dalëse dixhitale ose analoge.
Buzzer aktiv për t'u lidhur me një pin dalës dixhital
Hapi 2: Kodi për konfigurimin e kunjave
int xVal = 0, yVal = 0, butVal = 0, xPin = A0, yPin = A1, joyPin = 13, butPin = 7, speakerPin = 9;
int majtasLED = A2, djathtasLED = A3, lartLED = A4, poshtëLED = A5;
int zgjedhurLED = 0; // Mund të jetë një nga A2, A3, A4 ose A5
void setup () {
pinMode (xPin, INPUT);
pinMode (yPin, INPUT);
pinMode (majtasLED, OUTPUT);
pinMode (djathtas LED, OUTPUT);
pinMode (topLED, OUTPUT); pinMode (poshtëLED, OUTPUT);
pinMode (joyPin, OUTPUT);
pinMode (buzzerPin, OUTPUT);
}
Hapi 3: Kodi për Joystick Sensing
void joystickSenseRoutine ()
{
xVal = analogRead (xPin); yVal = analogRead (yPin); butVal = digitalRead (butPin);
joyPin = hartaXYtoPin (xVal, yVal, butVal);
analogWrite (e zgjedhurLED, 1024);
if (zgjedhurLED! = leftLED) {analogWrite (majtasLED, 0); } if (zgjedhurLED! = rightLED) {analogWrite (rightLED, 0); }
if (zgjedhurLED! = topLED) {analogWrite (topLED, 0); }
if (zgjedhurLED! = bottomLED) {analogWrite (poshtëLED, 0); }
nëse (joyPin == zgjedhurLED) // Mole Whacked
{
analogWrite (zgjedhurLED, 0);
//
// Shtoni kod për të luajtur muzikë/ton për goditje të fortë moLED !!
//
}
}
int mapXYtoPin (int xVal, int yVal, int butVal) {if ((xVal <100) dhe (yVal 400)) {kthehu fundLED; }
përndryshe nëse ((xVal> 900) dhe (yVal 400)) {kthehu topLED; }
përndryshe nëse ((xVal 400) dhe (yVal <100)) {kthehen majtasLED; }
përndryshe nëse ((xVal 400) dhe (yVal> 900)) {kthehu djathtas LED; }
else {kthimi -1; }
}
Hapi 4: Kodi rutinë i lakut kryesor
lak void () {
për (int i = 0; i <gjatësia; i ++)
{
nëse (e rastësishme (0, 100)> 90) {zgjedhurLED = anaPinMap (e rastësishme (2, 6));}
// Shtoni kodin për muzikën e lojës këtu
// *** *** ***
//
}
int anaPinMap (int randNum) {
if (randNum == 2) {kthimi A2; }
tjetër nëse (randNum == 3) {kthehu A3; }
tjetër nëse (randNum == 4) {kthehu A4; }
tjetër nëse (randNum == 5) {kthehu A5; }
}
Hapi 5: Gati për të Provuar
Hapi 6: Arduino Nano Implementimi për Prototipin
Zbatimi i njëjtë i bërë me Arduino nano në pjatën e gatimit, dërrasë e bërë me porosi me LED, rezistorë dhe zile, dhe çelës levore X-Y.
Hapi 7: Prototipi përfundimtar i paketuar i Whack-a-MoLED për të Prezantuar Njeriun tuaj të Dashur
Furnizime për prototip:
Kuti e thjeshtë kartoni (Minimumi 4cmX6cmX3cm), copa kartoni shtesë nga mbështetja.
Letër dekorative për mbulimin e shasisë (opsionale)
Ngjitës/zam me shumë qëllime
Mini bordi i bukës (opsionale)
Arduino nano
PCB e vogël Universale
Bateri 9V për fuqizimin e Arduino nano (lidheni me pinin Vin).
Kaloni SPDT
Pjesa tjetër e furnizimeve (LED, rezistorë, levë, zile, tela) siç përshkruhet në hapin 1 më sipër.