Isi kandungan:
Video: Kotak Teka-teki Arduino: 7 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:08
Untuk projek ini kita akan membuat kotak teka-teki yang sesuai dengan muzik. Inti asasnya ialah apabila anda menekan butang, ia akan melepaskan nada dan Arduino mengira butang mana yang ditekan sehingga ia tahu apa yang betul dan apa jawapan yang salah.
Bekalan
1 x Arduino uno
Perintang Ohm 1 x 1k
Perintang 5 x 220 Ohm
1 xPiezo Buzzer
Butang tekan 5 x 6x6 mm
1 x tetapkan wayar Jumper
1 x papan perf / jalur
1 x dijual
1 x engsel
1 x pengapit
1 x peti laci / kayu kecil
1x lem panas + tongkat gam
1 x 9v bateri + pemegang
sedikit worbla
cat
Langkah 1:
Untuk memulakan dengan anda harus menekan pin di papan roti anda. Sekarang sambungkan analog 2 dengan wayar ke sudut papan. Kami akan menghubungkan dua perintang ke dalam satu garis. Yang pertama ialah perintang Ohk 10k. Di hujung perintang ini, kami menyambungkan wayar ke tanah analog. Perintang kedua adalah perintang 220 Ohm yang kita sambungkan ke butang pertama. Gunakan perintang lain dengan nilai yang sama untuk menghubungkan bahagian terbuka kedua butang dengan butang kedua. Terus sambungkan butang seperti ini hingga yang terakhir. Yang terakhir anda ambil wayar dan sambungkannya ke bahagian tertutup butang yang sesuai dan sambungkan ke yang berikutnya dalam satu baris. Anda kini mengulangi proses yang anda lakukan dengan perintang yang hanya diketahui dengan wayar biasa. Sambungkan butang pertama ke port analog 3, 3V di Arduino anda. Secara keseluruhan anda akan mendapat sejenis salib seperti yang digambarkan di bawah.
Langkah 2:
Seterusnya pasangkan buzzer ke papan roti dan selamatkan satu sisi ke landasan digital dan sebelah ke port 12. Adalah bijak untuk memuat naik kod berikut ke dalam Arduino anda supaya anda dapat menguji apakah semuanya berfungsi dengan betul. Sekiranya ia boleh mula menyolder komponen bersama-sama. Lakukan ini dengan mengeluarkannya dari papan roti dan memateri wayar dan sambungan secara langsung. Sekiranya anda fikir anda memerlukan lebih banyak panjang di antara butang, anda boleh menambah wayar tambahan di antara perintang. Papan roti tidak lagi diperlukan pada ketika ini.
Langkah 3:
Setelah semuanya terpateri, inilah masanya untuk membuat kotak itu sendiri. Saya menggunakan set laci yang murah sebagai asas untuk saya. Saya hanya memotong separuh panjang dan melabuhkan punggung dan sisi yang saya potong. Anda mesti mempunyai dua kepingan berbentuk c sekarang. Potong salah satu bahagian daripadanya untuk digunakan sebagai penutup. Sekarang putar salah satu kepingan yang tinggal sehingga ia sesuai seperti kotak tanpa penutup dan lekatkan bersama. Setelah gam dipasang dengan betul, gerudi lubang kecil di setiap sisi kotak untuk butang dan lubang yang lebih besar untuk bel di penutupnya.
Langkah 4:
Sekarang anda boleh mengecat kotak itu. Saya membuat reka bentuk bunga berdasarkan BOTW tetapi anda boleh memilih reka bentuk yang anda mahukan. Setelah selesai, anda boleh meletakkan butang di dalam lubang dan meletakkan gumpalan gam di bahagian belakang butang dan kayu di sekitarnya. Prinsip yang sama berlaku untuk buzzer tetapi tambang sesuai dengan lubang di dalamnya sehingga tidak perlu. Seterusnya anda ambil worbla dan panaskan dan potong untuk membuat beberapa butang kecil. Lekatkan mereka dengan hati-hati ke butang tetapi pastikan tidak menggunakan banyak lem kerana anda mungkin butang tersekat secara tidak sengaja. Sekarang anda boleh mengecatnya agar lebih padat dengan kotak.
Langkah 5:
Terakhir anda lem atau skru, penjepit dan engsel pada kotak dan penutup yang menghubungkan kedua-duanya.
Langkah 6:
Setelah kotak anda selesai, yang perlu anda lakukan ialah meletakkan Arduino dan bateri di dalamnya dan tutup penutupnya.
Langkah 7: Kod
// Ini adalah kod untuk kotak teka-teki / muzik bertema Zelda.
// ini menghubungkan kod anda dengan senarai nota di tab lain
#masuk "pitches.h"
// pemboleh ubah ini akan memastikan bahawa Arduino melihat tekan butang yang lebih lama hanya dengan satu tekan
int sama = 0;
// dari sini ia akan membaca input anda
int k = 2;
// ini adalah pin output anda
pembesar suara int = 12;
// di bawah adalah melodi akhir
int Zelda = {NOTE_B4, NOTE_D5, NOTE_A4, NOTE_G4, NOTE_A4, NOTE_B4, NOTE_D5, NOTE_A4, NOTE_G4, NOTE_A4, NOTE_B4, NOTE_D5, NOTE_A5, NOTE_G5, NOT_4, NOT_5, NOT_5, NOT_5
int ZeldaTime = {2, 4, 2, 4, 4, 2, 2, 2, 4, 4, 2, 4, 2, 2, 2, 4, 4, 2};
int Epona = {NOTE_D5, NOTE_B4, NOTE_A4, NOTE_D5, NOTE_B4, NOTE_A4, NOTE_D5, NOTE_B4, NOTE_A4, NOTE_B4, NOTE_A4};
int EponaTime = {4, 4, 1.5, 4, 4, 1.5, 4, 4, 2, 2, 1};
int Saria = {NOTE_F4, NOTE_A4, NOTE_B4, NOTE_F4, NOTE_A4, NOTE_B4, NOTE_F4, NOTE_A4, NOTE_B4, NOTE_E5, NOTE_D5, NOTE_B4, NOTE_C5, NOTE_B4, NOT_4, NOT_4, NOT_4, NOT_
int SariaTime = {8, 8, 4, 8, 8, 4, 8, 8, 8, 8, 4, 8, 8, 8, 8, 3, 8, 8, 8, 2, 1};
// tempoh normal nota
int BEATTIME = 300;
// kaunter yang akan terus dicari adalah kita ada penyelesaiannya
int teller = 0;
batal persediaan () {
Serial.begin (9600);
pinMode (2, INPUT);
pinMode (1, INPUT);
}
gelung kosong () {
// membaca input dari pin
k = analogRead (2);
int p = analogRead (1);
// jika tidak ada butang yang ditekan, seharusnya tidak ada nada
jika (juruwang == 0) {
noTone (12);
}
// jika data yang dibaca sesuai dengan parameter jalankan kod bit yang dijelaskan
jika (k> 320 && k <350) {
rechts ();
}
//""
lain jika (k 290) {
pautan ();
}
//""
lain jika (k> 260 && k <280) {
anyaman ();
}
//""
lain jika (k> 240 && k <260) {
onder ();
}
//""
lain jika (k> 220 && k <240) {
a ();
}
// jika tidak (bila tidak ada butang ditekan), jalankan kod ini
lain {
// reset sama sehingga dapat digunakan pada saat butang ditekan
sama = 0;
// jika pembilang mencapai nombor tertentu jalankan kod bit yang dijelaskan
jika (juruwang == 166) {
zelda ();
}
//""
lain jika (juruwang == 386) {
saria ();
}
//""
lain jika (juruwang == 266) {
epona ();
}
//""
lain jika (juruwang == 999) {
// mainkan nada ini untuk menandakan ralat
nada (pembesar suara, NOTE_C3, BEATTIME);
// tetapkan semula kaunter ke 0
juruwang = 0;
}
}
// kelewatan antara input dan output
kelewatan (100);
// mencetak nilai input anda di monitor bersiri
Bersiri.println (k);
}
// ini adalah melodi pertama
batal zelda () {
// ini menetapkan penghitung yang memperbaharui dirinya semasa memainkan melodi sehingga dapat membacanya dan berhenti bila seharusnya
untuk (int i = 0; i <sizeof (Zelda); i ++) {
// mengatakan berapa lama nota boleh bertahan
int ZTime = 1000 / ZeldaTime ;
// menghasilkan nada
nada (pembesar suara, Zelda , ZTime);
// mewujudkan kelewatan yang betul
int pause = ZTime * 1.30;
kelewatan (jeda);
// menetapkan semula kaunter
juruwang = 0;
// mencetak nilai input anda di monitor bersiri
Serial.println (juruwang);
}
}
//""
batal epona () {
untuk (int i = 0; i <sizeof (Epona); i ++) {
int ETime = 1000 / EponaTime ;
nada (pembesar suara, Epona , ETime);
int pause = ETime * 1.30;
kelewatan (jeda);
juruwang = 0;
Serial.println (juruwang);
}
}
//""
saria batal () {
untuk (int i = 0; i <sizeof (Saria); i ++) {
int STime = 1000 / SariaTime ;
nada (pembesar suara, Saria , STime);
int pause = STime * 1.30;
kelewatan (jeda);
juruwang = 0;
Serial.println (juruwang);
}
}
batal rec
hts () {
// jika ini belum ditekan
jika (sama == 0) {
// jika kaunter mempunyai salah satu nilai ini, tambahkan ini
jika (teller == 0 || teller == 132 || teller == 165 || teller == 232 || teller == 265 || teller == 331 || teller == 374) {
teller = juruwang + 1;
}
// jika tidak, tetapkan ke 999 sehingga anda mendengar bunyi ralat
lain {
juruwang = 999;
}
// tetapkan sama dengan yang satu agar Arduino tidak membaca akhbar yang berpanjangan sebagai banyak tekan
sama = 1;
}
// mainkan nada
lain {
nada (pembesar suara, NOTE_A4, BEATTIME);
}
// mencetak nilai input anda di monitor bersiri
Serial.println (juruwang); }
//""
pautan tidak sah () {
jika (sama == 0) {
jika (teller == 133 || teller == 254 || teller == 244 || teller == 332 || teller == 375 || teller == 221) {
teller = juruwang + 11;
}
lain jika (juruwang == 0) {
juruwang = 111;
}
lain {
juruwang = 999;
}
sama = 1;
} lain {
nada (pembesar suara, NOTE_B4, BEATTIME);
} Serial.println (juruwang);
}
//""
boven kosong () {
jika (sama == 0) {if (juruwang == 111 || juruwang == 144 || juruwang == 233) {
teller = juruwang + 21;
}
lain jika (juruwang == 0) {
juruwang = 221;
}
lain {
juruwang = 999;
}
sama = 1;
}
lain {
nada (pembesar suara, NOTE_D5, BEATTIME);
Serial.println (juruwang);
}
}
//""
batal onder () {
jika (sama == 0) {
jika (juruwang == 343) {
juruwang = juruwang + 31;
}
lain jika (juruwang == 0) {
juruwang = 331;
} lain {
juruwang = 999;
} sama = 1;
} lain {
nada (pembesar suara, NOTE_F4, BEATTIME);
Serial.println (juruwang);
}
}
//""
batal a () {
jika (sama == 0) {
jika (juruwang == 0) {
juruwang = 461;
}
lain {
juruwang = 999;
}
sama = 1;
}
nada (pembesar suara, NOTE_D4, BEATTIME);
Serial.println (juruwang);
}
Disyorkan:
£ 5 * Jam Kotak RGB Kotak Pizza: 8 Langkah
£ 5 * Jam Kotak RGB Kotak Pizza: Projek ini dimulakan ketika saya bernasib baik kerana menemui sebilangan gulungan pita LED WS2811 RGB seharga £ 1 / gulungan di gerai pasar. Tawar-menawar itu terlalu baik untuk dilewatkan dan jadi saya harus mencari alasan untuk menggunakan 25m yang baru saya peroleh dari apa yang pada dasarnya adalah pita NeoPixel. Saya
Kotak Juke untuk Anak Muda Aka Raspi-Muzik-Kotak: 5 Langkah
Kotak Juke untuk Anak Yang Sangat Muda … Aka Raspi-Music-Box: Diilhamkan oleh " Raspberry-Pi-based-RFID-Music-Robot " menggambarkan pemain muzik ROALDH membina untuk anaknya yang berusia 3 tahun, saya memutuskan untuk membina kotak juke untuk anak-anak saya yang lebih muda. Pada dasarnya ia adalah kotak dengan 16 butang dan Raspi 2 i
Membuka kotak kotak Jetson Nano & Permulaan Pantas untuk Demo Dua Visi: 4 Langkah
Membuka kotak kotak Jetson Nano & Permulaan Cepat untuk Demo Dua Penglihatan: RingkaskanSeperti yang anda ketahui, Jetson Nano kini menjadi produk bintang. Dan secara meluas dapat menyebarkan teknologi jaringan saraf ke sistem tertanam. Berikut adalah artikel membongkar butiran mengenai produk, proses untuk memulakan, dan dua demo visual… Kiraan perkataan: 800
Kotak Barbie: Kotak Penyamaran / Kotak Boom untuk Pemain Mp3 Anda: 4 Langkah (dengan Gambar)
Kotak Barbie: Kotak Penyamaran / Kotak Boom untuk Pemain Mp3 Anda: Ini adalah sarung pelindung berlapis untuk pemain mp3 anda yang juga menukar bicu fon kepala menjadi inci seperempat, boleh bertindak sebagai kotak boom pada flip suis, dan menyamar pemain mp3 anda sebagai pemain pita awal tahun sembilan puluhan atau pencurian rendah yang serupa
Bina Kotak Bateri Kotak Rokok untuk Radio Tiub: 4 Langkah
Bina Kotak Bateri Kotak Cerutu untuk Radio Tiub: Sekiranya anda membina dan bermain-main dengan radio tiub seperti saya, anda mungkin menghadapi masalah yang sama seperti saya dengan menghidupkannya. Sebilangan besar litar lama dirancang untuk berjalan pada bateri voltan tinggi yang tidak lagi tersedia. Oleh itu