İçindekiler:

MoLED'i Vurun!!: 7 Adım
MoLED'i Vurun!!: 7 Adım

Video: MoLED'i Vurun!!: 7 Adım

Video: MoLED'i Vurun!!: 7 Adım
Video: Ragga Oktay - Yeniden (Offical Video) 2024, Temmuz
Anonim
Lanet olsun!!
Lanet olsun!!
Lanet olsun!
Lanet olsun!

Tinkercad Projeleri »

Bu, klasik Whack-a-Mole Game'in LED versiyonudur.

Temel olarak, bir delikten dışarı bakan bir köstebek yerine 4 LED'den rastgele bir LED yanar ve oyuncu, köstebeği vurmak yerine bir joystick kullanarak LED'i kapatır!

Gereçler

Arduino Uno/Nano veya herhangi bir varyant kartı

4 LED ve ilgili akım sınırlama dirençleri.

X, Y çıkışlı joystick modülü

Aktif Buzzer (isteğe bağlı)

Jumper kabloları.. hata ayıklamak için yeterli!

Adım 1: Devreyi Bağlayın

Devreyi Bağlayın
Devreyi Bağlayın

2 analog Giriş pinini joystick'in XY çıkışlarına bağlayarak Arduino Uno kartını joystick modülüne bağlayın.

4 adet Dijital veya Analog çıkış pin pinlerine dirençler kullanılarak bağlanacak 4 adet LED.

Dijital çıkış pinine bağlanacak Aktif Buzzer

2. Adım: Pinlerin Kurulumu için Kod

int xDeğer = 0, yVal = 0, butDeğer = 0, xPin = A0, yPin = A1, joyPin = 13, butPin = 7, hoparlörPin = 9;

int solLED = A2, sağLED = A3, üstLED = A4, altLED = A5;

int seçiliLED = 0; // A2, A3, A4 veya A5'ten biri olabilir

geçersiz kurulum() {

pinMode(xPin, GİRİŞ);

pinMode(yPin, INPUT);

pinMode(sol LED, ÇIKIŞ);

pinMode(sağ LED, ÇIKIŞ);

pinMode(topLED, ÇIKIŞ); pinMode(alt LED, ÇIKIŞ);

pinMode(joyPin, OUTPUT);

pinMode(buzzerPin, OUTPUT);

}

Adım 3: Joystick Algılama Kodu

void joystickSenseRoutine()

{

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

joyPin = mapXYtoPin(xVal, yVal, butVal);

analogWrite(seçilenLED, 1024);

if (seçilenLED != solLED) { analogWrite(solLED, 0); } if (seçilenLED !=sağLED) { analogWrite(sağLED, 0); }

if (seçiliLED != topLED) { analogWrite(topLED, 0); }

if (seçiliLED != altLED) { analogWrite(altLED, 0); }

if (joyPin == seçiliLED) // Mole Whacked

{

analogWrite(seçilenLED, 0);

//

// moLED'i vurmak için müzik/ton çalmak için kod ekleyin!!

//

}

}

int mapXYtoPin(int xDeğer, int yVal, int butVal) { if ((xDeğer < 100) ve (yDeğer 400)) { dönüş altLED; }

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

else if ((xVal 400) ve (yVal < 100)) { return solLED; }

else if ((xVal 400) ve (yVal > 900)) { sağa dönLED; }

başka { dönüş -1; }

}

Adım 4: Ana Döngü Rutin Kodu

boşluk döngüsü () {

for (int i = 0; i < uzunluk; i++)

{

if (rastgele(0, 100) > 90) { seçiliLED = anaPinMap(rastgele(2, 6));}

// Oyun müziğinin kodunu buraya ekleyin

// *** *** ***

//

}

int anaPinMap(int randNum) {

if (randNum == 2) { A2 döndür; }

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

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

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

}

Adım 5: Denemeye Hazır

Adım 6: Prototip için Arduino Nano Uygulaması

Image
Image

Breadboard'da Arduino nano ile yapılan aynı uygulama, LED'ler, dirençler ve buzzer ile özel yapım pano ve X-Y joystick anahtarı.

7. Adım: Sevdiğiniz Kişiyi Sunmak İçin Son Paketlenmiş MoLED Vurma Prototipi

Sevdiklerinizi Sunmak için Son Paketlenmiş MoLED Vurma Prototipi!
Sevdiklerinizi Sunmak için Son Paketlenmiş MoLED Vurma Prototipi!
Sevdiklerinizi Sunmak için Son Paketlenmiş MoLED Vurma Prototipi!
Sevdiklerinizi Sunmak için Son Paketlenmiş MoLED Vurma Prototipi!

Prototip için malzemeler:

Basit karton kutu (Minimum 4cmX6cmX3cm), destek için ekstra karton parçaları.

Şasi kaplamak için dekoratif kağıt (isteğe bağlı)

Çok amaçlı yapıştırıcı/yapıştırıcı

Mini ekmek tahtası (isteğe bağlı)

Arduino nano

Küçük Evrensel PCB

Arduino nano'ya güç sağlamak için 9V pil (Vin pinine bağlayın).

SPDT anahtarı

Sarf malzemelerinin geri kalanı (LED'ler, dirençler, joystick, buzzer, teller) yukarıdaki 1. adımda açıklandığı gibi.

Önerilen: