Inhoudsopgave:

Whack-a-moLED!!: 7 stappen
Whack-a-moLED!!: 7 stappen

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

Video: Whack-a-moLED!!: 7 stappen
Video: ВОЕННЫЙ БОЕВИК! По Законам Военного Времени. Фильмы о Великой Отечественной войне 2024, Juli-
Anonim
Whack-a-moLED!!
Whack-a-moLED!!
Whack-a-moLED!!
Whack-a-moLED!!

Tinkercad-projecten »

Dit is een LED-versie van het klassieke Whack-a-Mole-spel.

In feite licht een willekeurige LED van 4 LED's op in plaats van een mol die uit een gat kijkt en de speler schakelt de LED uit met een joystick in plaats van de mol te meppen!

Benodigdheden

Arduino Uno/Nano of een andere variant board

4 LED's en bijbehorende stroombegrenzingsweerstanden.

Joystickmodule met X-, Y-uitgangen

Actieve zoemer (optioneel)

Jumperdraden.. genoeg om te debuggen!

Stap 1: Sluit het circuit aan

Sluit het circuit aan
Sluit het circuit aan

Sluit het Arduino Uno-bord aan op de joystickmodule en verbind 2 analoge ingangspinnen met de XY-uitgangen van de joystick.

4 LED's die moeten worden aangesloten met behulp van weerstanden op 4 digitale of analoge uitgangspinnen.

Actieve zoemer die moet worden aangesloten op een digitale uitgangspen

Stap 2: Code voor het instellen van pinnen

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 geselecteerdLED = 0; // Kan een van de A2, A3, A4 of A5 zijn

ongeldige setup() {

pinMode(xPin, INPUT);

pinMode(yPin, INPUT);

pinMode (links LED, UITGANG);

pinMode (rechts LED, UITGANG);

pinMode (topLED, UITGANG); pinMode (onderste LED, UITGANG);

pinMode (joyPin, UITGANG);

pinMode (zoemerPin, UITGANG);

}

Stap 3: Code voor joystickdetectie

void joystickSenseRoutine()

{

xVal = analoog lezen (xPin); yVal = analoogRead(yPin); butVal = digitalRead (butPin);

joyPin = mapXYtoPin(xVal, yVal, maarVal);

analoogWrite(selectedLED, 1024);

if (selectedLED != leftLED) {analogeWrite(leftLED, 0); } if (selectedLED != rightLED) { analogWrite(rightLED, 0); }

if (selectedLED != topLED) {analogeWrite(topLED, 0); }

if (selectedLED != bottomLED) {analogeWrite(bottomLED, 0); }

if (joyPin == selectedLED) // Mole Whacked

{

analogWrite (geselecteerde LED, 0);

//

// Voeg code toe om muziek/toon af te spelen voor het meppen van moLED!!

//

}

}

int mapXYtoPin(int xVal, int yVal, int butVal) { if ((xVal < 100) en (yVal 400)) { return bottomLED; }

else if ((xVal > 900) en (yVal 400)) { return topLED; }

else if ((xVal 400) en (yVal < 100)) { return leftLED; }

else if ((xVal 400) en (yVal> 900)) { return rightLED; }

anders { retourneer -1; }

}

Stap 4: Routinecode hoofdlus

lege lus() {

voor (int i = 0; i < lengte; i++)

{

if (willekeurig(0, 100) > 90) {selectedLED = anaPinMap(willekeurig (2, 6));}

// Voeg hier code toe voor gamemuziek

// *** *** ***

//

}

int anaPinMap(int randNum) {

if (randNum == 2) { retourneer A2; }

else if (randNum == 3) { retourneer A3; }

else if (randNum == 4) { retourneer A4; }

else if (randNum == 5) { retourneer A5; }

}

Stap 5: Klaar om uit te proberen

Stap 6: Arduino Nano-implementatie voor prototype

Image
Image

Dezelfde implementatie gemaakt met Arduino nano in breadboard, op maat gemaakt bord met LED's, weerstanden en zoemer, en X-Y joystickschakelaar.

Stap 7: Laatste verpakt Whack-a-MoLED-prototype om je geliefde te presenteren

Laatste verpakt Whack-a-MoLED-prototype om je geliefde te presenteren!
Laatste verpakt Whack-a-MoLED-prototype om je geliefde te presenteren!
Laatste verpakt Whack-a-MoLED-prototype om je geliefde te presenteren!
Laatste verpakt Whack-a-MoLED-prototype om je geliefde te presenteren!

Benodigdheden voor prototype:

Eenvoudige kartonnen doos (minimaal 4 cm x 6 cm x 3 cm), extra kartonnen stukken voor ondersteuning.

Decoratief papier om chassis te bedekken (optioneel)

Multifunctionele lijm/lijm

Mini breadboard (optioneel)

Arduino nano

Kleine universele printplaat

9V-batterij voor het voeden van Arduino nano (verbinden met Vin-pin).

SPDT-schakelaar:

Rest van de benodigdheden (LED's, weerstanden, joystick, zoemer, draden) zoals beschreven in stap 1 hierboven.

Aanbevolen: