Isi kandungan:

Kek Hari Lahir Arduino: 4 Langkah
Kek Hari Lahir Arduino: 4 Langkah

Video: Kek Hari Lahir Arduino: 4 Langkah

Video: Kek Hari Lahir Arduino: 4 Langkah
Video: Tonton Sampai Habis !!! Belajar Arduino Di Jamin Bisa 2024, Julai
Anonim

Dalam arahan ini, saya akan membuat projek arduino yang sangat sederhana dan asas: kek hari jadi!

Kek hari jadi dipaparkan pada pelindung skrin UTFT di arduino dan pembesar suara memainkan muzik "Selamat hari jadi".

Apabila anda meniup mikrofon, lilin mati.

Langkah 1: Bahan

Bahan
Bahan
Bahan
Bahan
Bahan
Bahan
Bahan
Bahan

Untuk projek mudah ini, anda memerlukan:

- MEGA arduino

- pembesar suara atau bel

- modul mikrofon

- pelindung arduino skrin UTFT

Saya memutuskan untuk menggunakan papan MEGA arduino untuk projek ini kerana dua sebab: ia mempunyai banyak memori dan mempunyai banyak pin.

Anda tidak boleh menggunakan arduino UNO untuk projek ini, kerana apabila skrin UTFT terpasang padanya semua pin tersembunyi (tidak ada lagi yang tersedia untuk mikrofon dan pembesar suara), dan memori tersebut tidak mencukupi (perpustakaan UTFT adalah sangat besar).

Langkah 2: Pendawaian

Pendawaian
Pendawaian
Pendawaian
Pendawaian
Pendawaian
Pendawaian
Pendawaian
Pendawaian

Pembesar suara memasang pin D40 dan GND arduino.

Mikrofon memasang pin GND ("G"), 5V ("+") dan A10 ("A0").

Skrin UTFT terpasang seperti pelindung biasa.

Pelindung skrin UTFT tidak sepenuhnya serasi dengan arduino MEGA: palam USB papan arduino terlalu besar

Untuk menyelesaikan masalah ini, saya memasang skrin UTFT pada pelindung arduino lain (dengan pin yang lebih panjang), kemudian saya memasang kedua-duanya pada arduino.

Langkah 3: Kalibrasi Mikrofon

Kalibrasi Mikrofon
Kalibrasi Mikrofon
Kalibrasi Mikrofon
Kalibrasi Mikrofon

Untuk menentukur mikrofon, anda memerlukan pemutar skru dan komputer anda.

Pertama, muat naik kod berikut ke arduino anda:

int val = 0;

batal persediaan () {Serial.begin (9600); } gelung void () {val = analogRead (10); Serial.println (val); kelewatan (100); }

Kemudian pergi ke monitor bersiri dan kalibrasi mikrofon dengan memutar potensiometer dengan pemutar skru apabila tidak ada suara, nilainya mestilah sekitar 30 ~ 40.

Apabila anda meniup mikrofon, nilainya mesti lebih tinggi daripada 100.

Pastikan nilainya lebih kecil daripada 100 semasa anda bercakap (walaupun lantang).

Langkah 4: Kodnya

Inilah kod projek.

Ia memaparkan kek hari jadi dengan lilin di UTFT dan memainkan "Selamat hari jadi" dengan pembesar suara. Kek dibuat dengan segi empat tepat.

Program ini memerlukan perpustakaan UTFT.

#sertakan

luaran uint8_t BigFont ; // ubah nilai ini mengikut model skrin anda UTFT myGLCD (ITDB28, A5, A4, A3, A2); int melodi = {196, 196, 220, 196, 262, 247, 196, 196, 220, 196, 294, 262, 196, 196, 392, 330, 262, 247, 220, 349, 349, 330, 262, 294, 262}; int noteDurations = {8, 8, 4, 4, 4, 2, 8, 8, 4, 4, 4, 2, 8, 8, 4, 4, 4, 4, 3, 8, 8, 4, 4, 4, 2}; int val = 0; batal persediaan () {myGLCD. InitLCD (); myGLCD.setFont (BigFont); myGLCD.fillScr (20, 200, 150); // latar belakang biru myGLCD.setColor (200, 125, 50); // kek coklat myGLCD.fillRect (100, 90, 220, 160); myGLCD.setColor (255, 255, 255); // icing putih myGLCD.fillRect (100, 90, 220, 105); myGLCD.setColor (255, 50, 50); // garis merah myGLCD.fillRect (100, 120, 220, 123); myGLCD.fillRect (100, 140, 220, 143); myGLCD.setColor (255, 255, 0); // garis kuning myGLCD.fillRect (100, 130, 220, 133); myGLCD.setColor (255, 170, 255); // lilin merah jambu myGLCD.fillRect (128, 70, 132, 90); myGLCD.fillRect (158, 70, 162, 90); myGLCD.fillRect (188, 70, 192, 90); myGLCD.setColor (255, 255, 0); // api lilin myGLCD.fillCircle (130, 62, 5); myGLCD.fillCircle (160, 62, 5); myGLCD.fillCircle (190, 62, 5); myGLCD.setColor (0, 255, 0); // ucapan selamat ulang tahun myGLCD.print ("SELAMAT HARI RAYA!", PUSAT, 200); untuk (int thisNote = 0; thisNote 100) {myGLCD.setColor (20, 200, 150); // matikan lilin myGLCD.fillCircle (130, 62, 5); myGLCD.fillCircle (160, 62, 5); myGLCD.fillCircle (190, 62, 5); myGLCD.setColor (255, 255, 255); // dan memaparkan mesej "selamat" myGLCD.print ("CONGRATULATIONS !!!", PUSAT, 10); kelewatan (10000); myGLCD.clrScr (); // kosongkan skrin selepas 10s}}

Disyorkan: