Mundarija:

Arduino jumboq qutisi: 7 qadam
Arduino jumboq qutisi: 7 qadam

Video: Arduino jumboq qutisi: 7 qadam

Video: Arduino jumboq qutisi: 7 qadam
Video: Девочка — шашлычок ► 1 Прохождение Silent Hill Origins (PS2) 2024, Noyabr
Anonim
Arduino jumboq qutisi
Arduino jumboq qutisi

Ushbu loyiha uchun biz musiqa bilan ishlaydigan jumboq qutisini tayyorlaymiz. Uning asosiy mohiyati shundaki, siz tugmachani bosganingizda, u ohang chiqaradi va Arduino qaysi tugma bosilganligini hisoblab, nima to'g'ri va nima noto'g'ri ekanligini biladi.

Ta'minotlar

1 x Arduino bilan

1 x 1k Ohm qarshilik

5 x 220 Ohmli rezistorlar

1 xPiezo Buzzer

5 x 6x6 mm tugmachasi

1 x o'tish simlari

1 x perf/lenta taxtasi

1 x lehim

1 x menteşe

1 x qisqich

1 x kichik sandiq/yog'och

1x issiq yopishtiruvchi qurol + yopishtiruvchi tayoqlar

1 x 9v batareya + ushlagich

ozgina worbla

bo'yamoq

1 -qadam:

Rasm
Rasm

Ishni boshlash uchun siz non panelidagi pimlarni bosishingiz kerak. Endi analog 2 ni taxtaning burchagiga sim bilan ulang. Biz unga ikkita rezistorni chiziqqa ulaymiz. Birinchisi, 10 k Ohmlik qarshilik. Ushbu rezistorning boshqa uchiga biz simni analog erga ulaymiz. Ikkinchi qarshilik - biz birinchi tugmachaga ulanadigan 220 Ohmli rezistor. Tugmaning ikkinchi ochiq tomonini ikkinchi tugma bilan ulash uchun bir xil qiymatdagi boshqa rezistordan foydalaning. Shu kabi tugmachalarni oxirigacha ulashda davom eting. Oxirgisida siz simni ushlab, tugmachaning tegishli yopiq tomoniga ulang va keyingi qatorga navbat bilan ulang. Siz rezistorlar bilan qilgan jarayonni faqat oddiy simlar bilan takrorlaysiz. Birinchi tugmani Arduino -dagi analog 3, 3V portiga ulang. Umuman olganda, siz quyida tasvirlangan bir xil xoch otasini olasiz.

2 -qadam:

Keyingi signalni signal paneliga ulang va bir tomonini raqamli erga, ikkinchisini 12 portga mahkamlang. Quyidagi kodni Arduino -ga yuklash aqlli, shuning uchun hamma narsa to'g'ri ishlayotganini tekshirishingiz mumkin. Agar shunday bo'lsa, siz komponentlarni bir -biriga lehimlashni boshlashingiz mumkin. Buning uchun ularni taxtadan chiqarib oling va simlar va ulanishlarni to'g'ridan -to'g'ri lehimlang. Agar siz tugmalar orasiga ko'proq uzunlik kerak deb hisoblasangiz, rezistorlar orasiga qo'shimcha sim qo'shishingiz mumkin. Bu vaqtda non taxtasi kerak emas.

3 -qadam:

Rasm
Rasm

Hammasi lehimlangandan so'ng, qutini o'zi qilish vaqti keldi. Men o'zim uchun asos sifatida arzon tortmalar to'plamidan foydalandim. Men shunchaki uzunligini yarmini kesib tashladim va orqa va yon qismini kesib tashladim. Sizda v shaklidagi ikkita bo'lak bo'lishi kerak. Qopqoq sifatida foydalanish uchun ulardan birining bir tomonini kesib oling. Qolgan qismlardan birini aylantiring, shunda ular qopqoqsiz qutiga o'xshab bir -biriga yopishib oladi. Yelim to'g'ri o'rnatilgandan so'ng, qutining har ikki tomonida tugmachalar uchun kichik teshik oching va qopqog'idagi zimmer uchun kattaroq.

4 -qadam:

Rasm
Rasm
Rasm
Rasm

Endi siz qutini bo'yashga o'tishingiz mumkin. Men o'z dizaynimni BOTW -ga asoslangan gullar dizayni bilan qildim, lekin siz xohlagan dizaynni tanlashingiz mumkin. Bu tugagandan so'ng, siz tugmachalarni teshiklar ichiga qo'yib, tugmachaning orqa tomoniga va atrofidagi yog'ochga yopishtiruvchi globus qo'yishingiz mumkin. Xuddi shu printsip buzzerga ham tegishli, lekin meniki teshikka juda mos keladi va bu keraksiz bo'ladi. Keyin siz ozgina tugmachalarni yasash uchun ozgina worbla va isitgichni ushlaysiz. Ehtiyotkorlik bilan ularni tugmachalarga yopishtiring, lekin ko'p yopishtirmang, chunki tasodifan tugmachalarga yopishib qolishingiz mumkin. Endi siz ularni qutiga ko'proq aralashtirish uchun bo'yashingiz mumkin.

5 -qadam:

Oxir -oqibat, siz ikkalasini bog'laydigan quti va qopqoqdagi qisqich va menteşalarni yopishtirasiz yoki burab qo'yasiz.

6 -qadam:

Endi sizning qutingiz tugagandan so'ng, Arduino va batareyani ichiga joylashtiring va qopqog'ini yoping.

7 -qadam: kod

// Bu Zelda nomli jumboq/musiqa qutisining kodi.

// bu sizning kodingizni boshqa varaqdagi eslatmalar ro'yxatiga bog'laydi

#"pitch.h" ni qo'shing

// bu o'zgaruvchi Arduino tugmani uzoqroq bosilishini faqat bitta bosish kabi ko'rishini ta'minlaydi

int same = 0;

// bu yerdan sizning kirishingiz o'qiladi

int k = 2;

// bu sizning chiqish piningiz

int dinamik = 12;

// quyida ohang ohanglari

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, NOTE_D5, NOTE_C5, NOTE_B5, NOTE_A4; NOTE_A4;

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, NOTE_G4, NOTE_E4, NOTE_D4, NOTE_D4, NOTE_E4;

int SariaTime = {8, 8, 4, 8, 8, 4, 8, 8, 8, 8, 4, 8, 8, 8, 8, 3, 8, 8, 8, 2, 1};

// eslatmaning normal davomiyligi

int BEATTIME = 300;

// biz hal qiladigan bo'lsak, kuzatib boradigan hisoblagich

int teller = 0;

bo'sh o'rnatish () {

Serial.begin (9600);

pinMod (2, Kirish);

pinMod (1, Kirish);

}

void loop () {

// pinlardan kirishni o'qiydi

k = analogRead (2);

int p = analogRead (1);

// tugma bosilmasa, ohang bo'lmasligi kerak

agar (xabarchi == 0) {

noTone (12);

}

// agar o'qilgan ma'lumotlar parametrlarga mos keladigan bo'lsa, tasvirlangan kod bitini bajaring

agar (k> 320 && k <350) {

rechts ();

}

//""

aks holda (k 290) {

havolalar ();

}

//""

aks holda (k> 260 && k <280) {

boven ();

}

//""

aks holda (k> 240 && k <260) {

onder ();

}

//""

aks holda (k> 220 && k <240) {

a ();

}

// agar u bosilmasa (tugma bosilmaganda), bu kodni ishga tushiring

boshqa {

// bir xil holatga qaytarish, shuning uchun uni keyingi tugma bosilganda ishlatish mumkin

bir xil = 0;

// agar hisoblagich ma'lum songacha bo'lsa, tasvirlangan kod bitini ishlating

agar (xabarchi == 166) {

zelda ();

}

//""

aks holda (teller == 386) {

sariya ();

}

//""

aks holda (teller == 266) {

epona ();

}

//""

aks holda (teller == 999) {

// xatoni belgilash uchun shu ohangda o'ynang

ohang (karnay, NOTE_C3, BEATTIME);

// hisoblagichni 0 ga qaytaring

kassir = 0;

}

}

// kirish va chiqish o'rtasidagi kechikish

kechikish (100);

// ketma -ket monitorda kiritilgan qiymatlarni chop etadi

Serial.println (k);

}

// bu birinchi ohang

bo'sh zelda () {

// bu hisoblagichni o'rnatadi, u ohangni ijro etayotganda o'zini yangilaydi, shuning uchun uni o'qishi va kerak bo'lganda to'xtatishi mumkin

uchun (int i = 0; i <sizeof (Zelda); i ++) {

// eslatma qancha davom etishini aytadi

int ZTime = 1000 / ZeldaTime ;

// ohanglarni yaratadi

ohang (ma'ruzachi, Zelda , ZTime);

// to'g'ri kechikish hosil qiladi

int pauza = ZTime * 1.30;

kechikish (pauza);

// hisoblagichni qayta o'rnatadi

kassir = 0;

// ketma -ket monitorda kiritilgan qiymatlarni chop etadi

Serial.println (kassir);

}

}

//""

bo'sh epona () {

uchun (int i = 0; i <sizeof (Epona); i ++) {

int ETime = 1000 / EponaTime ;

ohang (karnay, Epona , ETime);

int pauza = ETime * 1.30;

kechikish (pauza);

kassir = 0;

Serial.println (kassir);

}

}

//""

bo'sh sariya () {

for (int i = 0; i <sizeof (Saria); i ++) {

int STime = 1000 / SariaTime ;

ohang (karnay, Saria , STime);

int pauza = STime * 1.30;

kechikish (pauza);

kassir = 0;

Serial.println (kassir);

}

}

bekor rek

hts () {

// agar bu hali bosilmagan bo'lsa

agar (bir xil == 0) {

// agar hisoblagichda hozirda bu qiymatlardan biri bo'lsa, buni qo'shing

agar (xabarchi == 0 || xabarchi == 132 || tel == 165 || telet == 232 || teller == 265 || teller == 331 || teller == 374) {

kassir = kassir + 1;

}

// aks holda uni 999 ga o'rnating, shunda siz xato shovqinini eshitasiz

boshqa {

kassir = 999;

}

// bir xil qilib qo'ying, shunda Arduino uzoq bosishni bir nechta bosish sifatida o'qimaydi

bir xil = 1;

}

// ohangni o'ynang

boshqa {

ohang (karnay, NOTE_A4, BEATTIME);

}

// ketma -ket monitorda kiritilgan qiymatlarni chop etadi

Serial.println (kassir); }

//""

bo'sh havolalar () {

agar (bir xil == 0) {

agar (xabarchi == 133 || xabarchi == 254 || tel == 244 || teler == 332 || teller == 375 || teller == 221) {

kassir = kassir + 11;

}

aks holda (teller == 0) {

kassir = 111;

}

boshqa {

kassir = 999;

}

bir xil = 1;

} boshqa {

ohang (karnay, NOTE_B4, BEATTIME);

} Serial.println (kassir);

}

//""

void boven () {

if (bir xil == 0) {if (teller == 111 || xabarchi == 144 || teller == 233) {

kassir = kassir + 21;

}

aks holda (teller == 0) {

kassir = 221;

}

boshqa {

kassir = 999;

}

bir xil = 1;

}

boshqa {

ohang (karnay, NOTE_D5, BEATTIME);

Serial.println (kassir);

}

}

//""

bekor qilish () {

agar (bir xil == 0) {

agar (xabarchi == 343) {

kassir = kassir + 31;

}

aks holda (teller == 0) {

kassir = 331;

} boshqa {

kassir = 999;

} bir xil = 1;

} boshqa {

ohang (karnay, NOTE_F4, BEATTIME);

Serial.println (kassir);

}

}

//""

void a () {

agar (bir xil == 0) {

agar (xabarchi == 0) {

kassir = 461;

}

boshqa {

kassir = 999;

}

bir xil = 1;

}

ohang (karnay, NOTE_D4, BEATTIME);

Serial.println (kassir);

}

Tavsiya: