Orodha ya maudhui:

Sanduku la Puzzle la Arduino: Hatua 7
Sanduku la Puzzle la Arduino: Hatua 7

Video: Sanduku la Puzzle la Arduino: Hatua 7

Video: Sanduku la Puzzle la Arduino: Hatua 7
Video: Котенка просто оставили на обочине. Котенок по имени Роки 2024, Novemba
Anonim
Sanduku la Puzzle la Arduino
Sanduku la Puzzle la Arduino

Kwa mradi huu tutatengeneza kisanduku cha fumbo ambacho hufanya kazi na muziki. Kiini chake cha msingi ni kwamba unapobonyeza kitufe hutoa tune na Arduino huhesabu ni vifungo vipi vilivyobanwa ili ijue ni nini sahihi na jibu lisilo sahihi.

Vifaa

1 x Arduino uno

1 x 1k kupinga kwa Ohm

Vipimo 5 x 220 Ohm

1 xPiezo Buzzer

5 x kitufe cha kushinikiza 6x6 mm

1 x kuweka waya za Jumper

1 x perf / bodi ya ukanda

1 x solderset

1 x bawaba

1 x clamp

1 x kifua kidogo cha droo / kuni

Bunduki ya moto ya gundi 1x + vijiti vya gundi

1 x 9v betri + mmiliki

kidogo ya worbla

rangi

Hatua ya 1:

Picha
Picha

Kuanza na lazima ubonyeze pini zako kwenye ubao wako wa mkate. Sasa unganisha analog 2 na waya kwenye kona ya ubao. Tutaunganisha vipinga viwili ndani yake kwa laini. Ya kwanza ni 10k Ohm resistor. Kwa mwisho mwingine wa kipinga hiki tunaunganisha waya kwenye ardhi ya analog. Kinzani ya pili ni kontena ya 220 Ohm ambayo tunaunganisha kwenye kitufe cha kwanza. Tumia kipinzani kingine cha thamani sawa ili kuunganisha upande wa pili wa kifungo na kitufe cha pili. Endelea kuunganisha vifungo kama hii hadi mwisho. Mwishowe unachukua waya na kuiunganisha kwa upande uliofungwa wa kitufe na kuiunganisha kwa mstari unaofuata. Sasa unarudia mchakato uliofanya na wapinzani tu wanajua na waya wazi. Unganisha kitufe cha kwanza kwenye bandari ya Analog 3, 3V kwenye Arduino yako. Yote kwa yote utapata aina ya baba msalaba kama ilivyoonyeshwa hapo chini.

Hatua ya 2:

Halafu unganisha buzzer kwenye ubao wa mkate na salama upande mmoja kwenye uwanja wa dijiti na mwingine kwa bandari 12. Ni busara kupakia nambari ifuatayo kwenye Arduino yako ili uweze kujaribu ikiwa kila kitu kinafanya kazi kwa usahihi. Ikiwa ni wewe unaweza kuanza kuuza sehemu pamoja. Fanya hivi kwa kuzitoa kwenye ubao wa mkate na kuziunganisha waya na unganisho moja kwa moja. Ikiwa unafikiria unahitaji urefu zaidi kati ya vifungo unaweza kuongeza waya wa ziada kati ya vipinga. Bodi ya mkate haifai tena wakati huu.

Hatua ya 3:

Picha
Picha

Baada ya kila kitu kuuzwa ni wakati wa kutengeneza sanduku yenyewe. Nilitumia seti ya bei rahisi kama msingi wa mgodi. Nilikata tu kwa urefu wa nusu na nikaondoa nyuma na upande niliokata. Unapaswa kuwa na vipande viwili vya umbo c sasa. Kata upande mmoja wa mmoja wao kutumia kama kifuniko. Sasa zungusha moja ya vipande vilivyobaki ili viwe sawa kama sanduku lisilo na mfuniko na uunganishe pamoja. Mara gundi inapokuwa imeweka vizuri, chimba shimo dogo kwa kila upande wa sanduku kwa vifungo na kubwa kwa buzzer kwenye kifuniko.

Hatua ya 4:

Picha
Picha
Picha
Picha

Sasa unaweza kupata kuchora sanduku. Nilifanya yangu na muundo wa maua kulingana na BOTW lakini unaweza kuchagua muundo wowote unaotaka. Baada ya hii kufanywa unaweza kuweka vifungo ndani ya mashimo na kuweka glob ya gundi nyuma ya kitufe na kuni inayozunguka. Kanuni hiyo hiyo inatumika kwa buzzer lakini yangu inafaa kabisa kwenye shimo na kuifanya iwe ya lazima. Ifuatayo unachukua worbla na joto na kuikata ili kutengeneza vifungo vidogo. Gundi kwa uangalifu kwenye vifungo lakini hakikisha usitumie gundi nyingi kwa sababu unaweza kupata vifungo kwa bahati mbaya. Sasa unaweza kuwapaka rangi ili kuwafanya wachanganye na kisanduku zaidi.

Hatua ya 5:

Mwishowe gundi au unganisha, kambamba na bawaba kwenye sanduku na kifuniko kinachounganisha hizo mbili.

Hatua ya 6:

Sasa kwa kuwa sanduku lako limekamilika unachotakiwa kufanya ni kuweka Arduino na betri ndani yake na kufunga kifuniko.

Hatua ya 7: Kanuni

// Hii ndio nambari ya sanduku la fumbo / sanduku la muziki la Zelda.

// hii inaunganisha kificho chako na orodha ya vidokezo kwenye kichupo kingine

# pamoja na "viwanja."

// ubadilishaji huu utahakikisha kwamba Arduino anaona kitufe cha kifungo kirefu kama kitufe kimoja tu

int sawa = 0;

// kutoka hapa itasoma maoni yako

int k = 2;

// hii ni pini yako ya pato

msemaji wa int = 12;

// chini ni nyimbo za mwisho

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, SIJUI5, SIE_D5, SIE_C5, SIE_B}, SI

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};

wakati wa 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, NOT4E, 4

Wakati wa Saria = {8, 8, 4, 8, 8, 4, 8, 8, 8, 8, 4, 8, 8, 8, 8, 3, 8, 8, 8, 2, 1};

// muda wa kawaida wa dokezo

wakati wa BEATTIME = 300;

// hiyo ya kaunta itafuatilia tulikuwa katika suluhisho

mtangazaji = 0;

usanidi batili () {

Kuanzia Serial (9600);

pinMode (2, Pembejeo);

pinMode (1, Pembejeo);

}

kitanzi batili () {

// inasoma pembejeo kutoka kwa pini

k = analog Soma (2);

int p = analog Soma (1);

// ikiwa hakuna kitufe chochote kilichobanwa haipaswi kuwa na sauti

ikiwa (mwambiaji == 0) {

hakuna Sauti (12);

}

// ikiwa data iliyosomwa inafanana na vigezo vinaendesha nambari iliyoelezewa ya nambari

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

rechts ();

}

//""

vinginevyo ikiwa (k 290) {

viungo ();

}

//""

vinginevyo ikiwa (k> 260 && k <280) {

boven ();

}

//""

vinginevyo ikiwa (k> 240 && k <260) {

nyongeza ();

}

//""

vinginevyo ikiwa (k> 220 && k <240) {

();

}

// ikiwa haifanyi (wakati hakuna kifungo kimeshinikizwa), tumia nambari hii

mwingine {

// kuweka upya sawa ili iweze kutumiwa wakati ujao kitufe kinapobanwa

sawa = 0;

// ikiwa kaunta iko hadi nambari fulani tumia nambari iliyoelezewa

ikiwa (mwambiaji == 166) {

zelda ();

}

//""

vinginevyo ikiwa (mwambiaji == 386) {

saria ();

}

//""

vinginevyo ikiwa (mwambiaji == 266) {

epona ();

}

//""

vinginevyo ikiwa (mwambiaji == 999) {

// cheza toni hii kuashiria kosa

toni (spika, NOTE_C3, BEATTIME);

// kuweka upya kaunta hadi 0

msemaji = 0;

}

}

// kuchelewa kati ya pembejeo na pato

kuchelewesha (100);

// prints maadili ya pembejeo yako katika kufuatilia serial

Serial.println (k);

}

// huu ndio wimbo wa kwanza

batili zelda () {

// hii inaweka kaunta ambayo inajisasisha wakati inacheza wimbo ili iweze kuisoma na kusimama inapostahili

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

// anasema ni muda gani dokezo linapaswa kudumu

int ZTime = 1000 / ZeldaTime ;

// huzalisha tani

toni (spika, Zelda , ZTime);

// inaunda ucheleweshaji sahihi

pause = ZTime * 1.30;

kuchelewesha (pumzika);

// kuweka upya kaunta

msemaji = 0;

// prints maadili ya pembejeo yako katika kufuatilia serial

Serial.println (msemaji);

}

}

//""

utupu epona () {

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

int ETime = 1000 / Wakati wa Epona ;

toni (spika, Epona , ETime);

pause = ETime * 1.30;

kuchelewesha (pumzika);

msemaji = 0;

Serial.println (msemaji);

}

}

//""

utupu wa saria () {

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

ST STime = 1000 / SariaTime ;

toni (spika, Saria , STime);

pause = STime * 1.30;

kuchelewesha (pumzika);

msemaji = 0;

Serial.println (msemaji);

}

}

utupu rec

hts () {

// ikiwa hii haikuwa imeshinikizwa tayari

ikiwa (sawa == 0) {

// ikiwa kaunta sasa ina moja ya maadili haya ongeza hii kwake

ikiwa (mwambiaji == 0 || mwambiaji == 132 || mwambiaji == 165 || mwambiaji = 232 || mwambiaji == 265 || mwambiaji == 331

msemaji = msemaji + 1;

}

// vinginevyo weka 999 ili usikie kelele za makosa

mwingine {

msemaji = 999;

}

// weka sawa kwa moja ili Arduino isome vyombo vya habari vya muda mrefu kama mashinikizo mengi

sawa = 1;

}

// cheza toni

mwingine {

toni (spika, NOTE_A4, BEATTIME);

}

// prints maadili ya pembejeo yako katika kufuatilia serial

Serial.println (msemaji); }

//""

viungo batili () {

ikiwa (sawa == 0) {

ikiwa (mwambiaji == 133 || mwambiaji == 254 || mwambiaji == 244 || mwambiaji == 332 || mwambiaji == 375 || mwambiaji = 221) {

msemaji = msemaji + 11;

}

vinginevyo ikiwa (mwambiaji == 0) {

msemaji = 111;

}

mwingine {

msemaji = 999;

}

sawa = 1;

} mwingine {

toni (spika, NOTE_B4, BEATTIME);

} Serial.println (msemaji);

}

//""

boven boven () {

ikiwa (sawa == 0) {ikiwa (mwambiaji == 111 || mwambiaji == 144 || mwambiaji == 233) {

msemaji = msemaji + 21;

}

vinginevyo ikiwa (mwambiaji == 0) {

msemaji = 221;

}

mwingine {

msemaji = 999;

}

sawa = 1;

}

mwingine {

toni (spika, NOTE_D5, BEATTIME);

Serial.println (msemaji);

}

}

//""

onder batili () {

ikiwa (sawa == 0) {

ikiwa (mwambiaji == 343) {

msemaji = msemaji + 31;

}

vinginevyo ikiwa (mwambiaji == 0) {

msemaji = 331;

} mwingine {

msemaji = 999;

} sawa = 1;

} mwingine {

toni (spika, NOTE_F4, BEATTIME);

Serial.println (msemaji);

}

}

//""

batili () {

ikiwa (sawa == 0) {

ikiwa (mwambiaji == 0) {

msemaji = 461;

}

mwingine {

msemaji = 999;

}

sawa = 1;

}

toni (spika, NOTE_D4, BEATTIME);

Serial.println (msemaji);

}

Ilipendekeza: