Mundarija:

Whack-a-moLED !!: 7 qadam
Whack-a-moLED !!: 7 qadam

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

Video: Whack-a-moLED !!: 7 qadam
Video: Whack-A-Mole | Cartoon-Box 22 2024, Iyul
Anonim
Muvaffaqiyatsiz !!
Muvaffaqiyatsiz !!
Muvaffaqiyatsiz !!
Muvaffaqiyatsiz !!

Tinkercad loyihalari »

Bu klassik Whack-a-Mole o'yinining LED versiyasi.

To'g'ridan -to'g'ri 4 ta LEDdan tasodifiy LED tuynukdan tashqariga qaraydigan mol yonadi va o'yinchi molni urish o'rniga joystik yordamida LEDni o'chiradi!

Ta'minotlar

Arduino Uno/Nano yoki har qanday variantlar paneli

4 ta LED va mos keladigan oqim cheklovli rezistorlar.

X, Y chiqadigan joystik moduli

Faol buzzer (ixtiyoriy)

Jumper simlari.. disk raskadrovka uchun etarli!

1 -qadam: O'chirish sxemasini ulang

O'chirish
O'chirish

Arduino Uno taxtasini joystik moduliga ulang, 2 ta analog kirish pinini joystikning X Y chiqishlariga ulang.

Rezistorlar yordamida 4 ta LEDni 4 ta raqamli yoki analog chiqish piniga ulash kerak.

Raqamli chiqish piniga ulanish uchun faol Buzzer

2 -qadam: Pimlarni o'rnatish kodi

int xVal = 0, yVal = 0, lekinVal = 0, xPin = A0, yPin = A1, joyPin = 13, lekinPin = 7, dinamikPin = 9;

int leftLED = A2, rightLED = A3, topLED = A4, pastkiLED = A5;

int selectedLED = 0; // A2, A3, A4 yoki A5 biri bo'lishi mumkin

bo'sh o'rnatish () {

pinMode (xPin, INPUT);

pinMode (yPin, INPUT);

pinMod (chapda LED, Chiqish);

pinMode (o'ng LED, Chiqish);

pinMode (topLED, OUTPUT); pinMod (pastki LED, Chiqish);

pinMode (joyPin, OUTPUT);

pinMode (buzzerPin, OUTPUT);

}

3 -qadam: Joystikni sezish kodi

void joystickSenseRoutine ()

{

xVal = analogRead (xPin); yVal = analogRead (yPin); butVal = digitalRead (butPin);

joyPin = mapXYtoPin (xVal, yVal, butVal);

analogWrite (tanlangan LED, 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); }

agar (joyPin == tanlangan LED) // Mole Whacked

{

analogWrite (tanlangan LED, 0);

//

// MoLED -ni urish uchun musiqa/ohangni ijro etish uchun kod qo'shing !!

//

}

}

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

aks holda ((xVal> 900) va (yVal 400)) {topLED qaytaring; }

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

else if ((xVal 400) va (yVal> 900)) {rightLED qaytish; }

boshqa {qaytish -1; }

}

4 -qadam: Asosiy Loop muntazam kodi

void loop () {

uchun (int i = 0; i <uzunlik; i ++)

{

agar (tasodifiy (0, 100)> 90) {selectedLED = anaPinMap (tasodifiy (2, 6));}

// Bu erda o'yin musiqasi uchun kod qo'shing

// *** *** ***

//

}

int anaPinMap (int randNum) {

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

else if (randNum == 3) {A3 ni qaytaring; }

aks holda (randNum == 4) {A4 qaytaring; }

aks holda (randNum == 5) {A5 qaytaring; }

}

5 -qadam: Sinab ko'rishga tayyormiz

6 -qadam: Prototip uchun Arduino Nano ilovasi

Image
Image

Xuddi shunday dastur Arduino nano paneli bilan, diodli, rezistorli va signalli diodli maxsus taxtali va X-Y joystikli kalit bilan amalga oshirildi.

7-qadam: Sevganingizni taqdim etish uchun yakuniy paketli Whack-a-MoLED prototipi

Sevganingizni taqdim etish uchun yakuniy paketli Whack-a-MoLED prototipi!
Sevganingizni taqdim etish uchun yakuniy paketli Whack-a-MoLED prototipi!
Sevganingizni taqdim etish uchun yakuniy paketli Whack-a-MoLED prototipi!
Sevganingizni taqdim etish uchun yakuniy paketli Whack-a-MoLED prototipi!

Prototip uchun materiallar:

Oddiy karton quti (kamida 4 sm x 6 sm x 3 sm), qo'shimcha karton bo'laklari.

Shassisni yopish uchun dekorativ qog'oz (ixtiyoriy)

Ko'p maqsadli yopishtiruvchi/yopishtiruvchi

Mini non paneli (ixtiyoriy)

Arduino nano

Kichik universal PCB

Arduino nanosini quvvatlantirish uchun 9V batareya (Vin piniga ulanish).

SPDT kaliti

Qolgan materiallar (LEDlar, rezistorlar, joystik, zum, simlar) yuqoridagi 1 -qadamda tasvirlangan.

Tavsiya: