Proses manufaktur
| × | 1 | ||||
| × | 1 | ||||
| × | 2 | ||||
| × | 1 | ||||
| × | 2 | ||||
| × | 4 | ||||
| × | 2 | ||||
| × | 1 | ||||
| × | 1 |
|
Ini adalah permainan LCD sederhana. Inspirasi saya adalah game Dinosaurus Google Chrome, tetapi saya menambahkan beberapa perubahan lagi. Prajurit dolar bergerak terus-menerus dan dia bisa melompat untuk menghindari rintangan dan mengumpulkan poin "bintang". Jika dia melompati rintangan, dia mengumpulkan satu poin dan jika dia menangkap bintang, dia mengumpulkan lima poin. Dia juga bisa menembak dan menghilangkan rintangan di depannya. Ada juga dioda led yang menunjukkan apakah dia melompat atau menembak. Ketika dia mengumpulkan 10, 20 atau 30 poin, dia mulai bergerak lebih cepat dari sebelumnya. Ketika dia mengumpulkan 50 poin, Anda menang. Jika Anda menabrak rintangan, Anda kalah. Tentu saja, Anda dapat mengubah batasan ini dengan mudah dalam kode. Saya juga menambahkan buzzer pasif yang membuat suara saat prajurit melompat atau menembak dan melodi khusus saat Anda kalah atau menang. Ini adalah proyek pertama saya di sini dan saya harap Anda menyukainya. Beri saya komentar dan ulasan Anda.
Videonya
Koneksi
Modul LCD (Liquid Crystal Display) memiliki header laki-laki 16-pin di bagian bawah. Tancapkan ini ke papan tempat memotong roti seperti yang ditunjukkan pada gambar. Semua sinyal elektronik yang memberi daya dan mengontrol LCD melewati header ini.
Pin ini (dari kiri ke kanan):
Gunakan kabel jumper untuk menghubungkan sinyal 5V pada Arduino dengan baris merah di bagian atas papan tempat memotong roti.
Gunakan kabel jumper untuk menghubungkan sinyal GND di Arduino dengan baris biru di bagian atas papan tempat memotong roti.
Hubungkan pin potensiometer yang tersisa ke sinyal 5V dan sinyal GND.
Jika Anda memiliki 3 pin piezo buzzer sambungkan pin S ke pin Arduino 7, pin '-' ke GND dan pin sisanya ke sinyal 5V. Jika Anda memiliki 2 pin piezo buzzer, sambungkan satu pin ke sinyal GND dan pin lainnya ke pin Arduino 7.
Hubungkan tombol sakelar sesuai dengan skema. Tombol pertama (tombol lompat) terhubung ke pin Arduino 1 dan tombol kedua (tombol tembak) terhubung ke pin Arduino 6. Led hanya dikendalikan oleh tombol dan bukan oleh Arduino. Anoda terhubung ke pin tombol yang terhubung ke Arduino dan katoda terhubung ke ground.
#includeconst int rs =12, en =11, d4 =5, d5 =4, d6 =3, d7 =2;const int buttonPin1=1;const int buttonPin2=6;const int buzzer=7;unsigned long pts=0;//set buttonstatus bool buttonState1=0;bool buttonState2=0;//angka acak untuk posisi rintangandiangka acak[6];//angka acak untuk jumlah rintanganinangkaacak=0;// nomor acak untuk posisi ptsint randomNums1[3];//nomor acak untuk jumlah ptsint randomNum1=0;//waktu tunda mulai, yang berkurang secara bertahapunsigned int myDelay=500;//membuat boolean ini untuk memeriksa apakah tombol2 ditekan karena jika itu ditekan sekali di loop pertama saya ingin rintangan tidak ditulis sampai akhir itbool temp=0;//variabel ini menyimpan posisi prajurit saat dia menembak. bisa ada 16 posisi karena warrior memiliki 16 posisi.int tempI[16];//i menggunakan boolean ini untuk memeriksa apakah titik tersebut ditangkapbool temp1=0;//gunakan variabel ini untuk menyimpan posisi titik yang ditangkap. itu harus dan array untuk menyimpan posisi semua titik dalam satu iterasi dari loop for pertama. jika disimpan hanya satu posisi, maka titik "lama" akan kembali di iterationint tempI1 yang baru[3]; //gunakan variabel ini untuk mendapatkan sejumlah bidikan prajurit, yang juga merupakan panjang array tempIint button2IsPressed=0;LiquidCrystal lcd(rs, en, d4, d5, d6, d7);void setup() { / / atur jumlah kolom dan baris LCD:lcd.begin(16, 2); // setel mode pin tombol pinMode(buttonPin1,INPUT); pinMode(tombolPin2,INPUT); pinMode(buzzer,OUTPUT); lcd.setCursor(4,0); lcd.print("PERMAINAN"); lcd.setCursor(2,1); lcd.print("MULAI DALAM "); lcd.print("5"); penundaan (1000); lcd.setCursor(12,1); lcd.print("4"); penundaan (1000); lcd.setCursor(12,1); lcd.print("3"); penundaan (1000); lcd.setCursor(12,1); lcd.print("2"); penundaan (1000); lcd.setCursor(12,1); lcd.print("1"); penundaan (1000); lcd.clear();}void loop() { di sini:randomNum=random(5); for(int i=0; i 9 &&pts<20) {lcd.setCursor(14,0); penundaan saya=400; } else if(pts>19 &&pts<30) { lcd.setCursor(14,0); penundaan saya=300; } else if(pts>29 &&pts<50) { myDelay=200; lcd.setCursor(14,0); } else if(pts>=50){ pts=0; penundaan saya=500; lcd.clear(); lcd.setCursor(5,0); lcd.print("MENANG"); nada(buzzer,262); penundaan (200); nada (buzzer,330); penundaan (200); nada (bel, 392); penundaan(100); nada (buzzer,330); penundaan(100); nada (bel, 392); penundaan(100); nada (bel, 523); penundaan (200); tidakNada(bel); penundaan(3000); lcd.clear(); pergi ke sini; } else lcd.setCursor(15,0); lcd.print(poin); buttonState1=digitalRead(buttonPin1); buttonState2=digitalRead(buttonPin2); //menetapkan rintangan jika prajurit tidak menembak atau dia menembak tetapi dia juga melompat if(!temp){ for(int j=0; j randomNums[j]){ lcd.setCursor(randomNums[j],1); lcd.print("#"); } } } //mengatur ptsif(!temp1){ for(int j=0; j Skema
game_aUIjA6VZxX.fzz
Ketapel Otomatis untuk Melempar Makanan Hewan, Bola, dan Lainnya! Arduino DIY + GY-906 Termometer Inframerah
Proses manufaktur
Komponen dan persediaan Arduino UNO × 1 Sensor Kelembaban Tanah SparkFun (dengan Terminal Sekrup) × 1 Adafruit LCD Standar - 16x2 Putih di Atas Biru × 1 Breadboard (generik) × 1 Alat dan mesin yang diperlukan Besi solder (generik) A
Komponen dan persediaan Arduino UNO × 1 Pad Tombol SparkFun 4x4 - Kompatibel dengan LED × 1 Adafruit LCD Standar - 16x2 Putih di Atas Biru × 1 Relai (umum) × 1 Baterai 9V (generik) × 1 Potensiometer Putaran Tunggal- 10k ohm × 1 Resis
Komponen dan persediaan Arduino Mega 2560 ATAU ARDUINO UNO!! Ubah DUCK_PIN dalam kode menjadi 3 dan rewire sesuai jika Anda ingin menggunakan uno × 1 Kabel jumper (generik) +- 20 diperlukan × 20 Sakelar Tombol Tekan SparkFun 12mm × 2 Resistor 10k ohm × 2
Komponen dan persediaan Arduino UNO × 1 Adafruit RGB Backlight LCD - 16x2 × 1 Breadboard (generik) × 1 Resistor 220 ohm × 1 Sakelar Tombol Tekan SparkFun 12mm × 1 Kabel jumper (generik) × 1 Kabel USB-A ke B × 1 Aplik