Obsah:
2025 Autor: John Day | [email protected]. Naposledy zmenené: 2025-01-13 06:58
Projekty Tinkercad »
Toto je LED verzia klasickej hry Whack-a-Mole.
V zásade sa rozsvieti náhodná LED zo 4 diód LED namiesto krtka pozerajúceho sa von z diery a hráč namiesto vypálenia krtka LED vypne pomocou joysticku!
Zásoby
Doska Arduino Uno/Nano alebo akákoľvek varianta
4 LED diódy a zodpovedajúce odpory obmedzujúce prúd.
Modul joysticku s výstupmi X, Y
Aktívny bzučiak (voliteľné)
Prepojovacie vodiče.. dosť na ladenie!
Krok 1: Zapojte obvod
Pripojte dosku Arduino Uno k modulu joysticku a pripojte 2 analógové vstupné kolíky k výstupom X Y joysticku.
4 LED diódy je možné pripojiť pomocou rezistorov k 4 pinom digitálneho alebo analógového výstupného pinu.
Aktívny bzučiak na pripojenie k digitálnemu výstupnému kolíku
Krok 2: Kód na nastavenie pinov
int xVal = 0, yVal = 0, butVal = 0, xPin = A0, yPin = A1, joyPin = 13, butPin = 7, reproduktorPin = 9;
int leftLED = A2, rightLED = A3, topLED = A4, bottomLED = A5;
int selectedLED = 0; // Môže to byť jeden z formátov A2, A3, A4 alebo A5
neplatné nastavenie () {
pinMode (xPin, INPUT);
pinMode (yPin, INPUT);
pinMode (vľavoLED, VÝSTUP);
pinMode (pravýLED, VÝSTUP);
pinMode (topLED, OUTPUT); pinMode (bottomLED, OUTPUT);
pinMode (joyPin, OUTPUT);
pinMode (buzzerPin, OUTPUT);
}
Krok 3: Kód pre snímanie joystickom
zrušiť joystickSenseRoutine ()
{
xVal = analogRead (xPin); yVal = analogRead (yPin); butVal = digitalRead (butPin);
joyPin = mapaXYtoPin (xVal, yVal, butVal);
analogWrite (selectedLED, 1024);
if (selectedLED! = leftLED) {analogWrite (leftLED, 0); } if (selectedLED! = rightLED) {analogWrite (rightLED, 0); }
if (selectedLED! = topLED) {analogWrite (topLED, 0); }
if (selectedLED! = bottomLED) {analogWrite (bottomLED, 0); }
if (joyPin == selectedLED) // Mole Whacked
{
analogWrite (selectedLED, 0);
//
// Pridajte kód na prehrávanie hudby/tónu, aby ste si mohli užiť MILED !!
//
}
}
int mapXYtoPin (int xVal, int yVal, int butVal) {if ((xVal <100) and (yVal 400)) {return bottomLED; }
else if ((xVal> 900) a (yVal 400)) {return topLED; }
else if ((xVal 400) a (yVal <100)) {return leftLED; }
else if ((xVal 400) a (yVal> 900)) {return rightLED; }
else {return -1; }
}
Krok 4: Bežný kód hlavnej slučky
prázdna slučka () {
pre (int i = 0; i <dĺžka; i ++)
{
if (random (0, 100)> 90) {selectedLED = anaPinMap (random (2, 6));}
// Tu pridajte kód pre hernú hudbu
// *** *** ***
//
}
int anaPinMap (int randNum) {
if (randNum == 2) {return A2; }
else if (randNum == 3) {return A3; }
else if (randNum == 4) {vrátiť A4; }
else if (randNum == 5) {return A5; }
}
Krok 5: Pripravení vyskúšať
Krok 6: Implementácia Arduino Nano pre prototyp
Rovnaká implementácia ako v prípade Arduino nano v doske, na mieru vyrobenej doske s LED diódami, odpormi a bzučiakom a prepínači joysticku X-Y.
Krok 7: Konečný zabalený prototyp Whack-a-MoLED predstaví vášho milovaného
Dodávky pre prototyp:
Jednoduchá kartónová škatuľa (minimálne 4 cm x 6 cm x 3 cm), ďalšie kusy lepenky s podporou.
Dekoračný papier na zakrytie podvozku (voliteľné)
Viacúčelové lepidlo/lepidlo
Mini breadboard (voliteľné)
Arduino nano
Malý univerzálny plošný spoj
9V batéria na napájanie Arduino nano (pripojenie na Vin pin).
Prepínač SPDT
Ostatné zásoby (LED diódy, odpory, joystick, bzučiak, káble) popísané v kroku 1 vyššie.