Orodha ya maudhui:

Tengeneza wimbo na Arduino: Hatua 6
Tengeneza wimbo na Arduino: Hatua 6

Video: Tengeneza wimbo na Arduino: Hatua 6

Video: Tengeneza wimbo na Arduino: Hatua 6
Video: Cheki jama alivyo paa na ndege ya kichawi utashangaa 2024, Novemba
Anonim
Tengeneza wimbo na Arduino
Tengeneza wimbo na Arduino

Nilitaka kuunda mradi uliojumuisha masomo mawili ninayopenda: sayansi na muziki. Nilifikiria njia zote ambazo ningeweza kuchanganya vikoa hivi viwili, na, nilifikiri kuwa itakuwa ya kupendeza kufanya Arduino kucheza Fur Elise wakati wa kuonyesha alama ya maandishi huko Hertz. Sasa, wacha tuanze kujenga!

Utahitaji Arduino Uno moja au Mega, nyaya nyingi za kuruka, buzzer ya Piezo, ubao wa mkate, skrini ya LCD 16 * 2 na pini zote za wiper mahali, na Potentiometer ya 10k (unaweza pia kuwasikia wakitajwa kama vipodozi). Ni bora kupata vifaa hivi pamoja kabla ya kuanza kujenga.

Hatua ya 1: Badilisha alama ya Muziki kuwa Vidokezo vya Dijiti: Thamani za Kuchelewesha

Badilisha alama ya Muziki kuwa Vidokezo vya Dijiti: Thamani za Kuchelewesha
Badilisha alama ya Muziki kuwa Vidokezo vya Dijiti: Thamani za Kuchelewesha

Kuna hatua mbili za kunakili daftari kutoka kwa alama kuwa sawa na dijiti. Kwanza, tutahitaji kuandika wakati barua inakaa kwa milliseconds. Niliajiri chati iliyopatikana mkondoni kwa kazi hii. Kulingana na iwapo noti ilikuwa nusu noti, robo noti, nukuu ya nane, nk, niliandika urefu wa noti hiyo kuwa milliseconds. Unaweza kuona nambari hizi kwenye nambari yangu kama kuchelewesha (); kazi na nambari iliyo ndani ya mabano itakuwa thamani ya ucheleweshaji kwa milliseconds tulizoamua katika hatua hii.

Hatua ya 2: Badilisha alama ya Muziki kuwa Vidokezo vya Dijiti: Thamani za Hertz

Badilisha alama ya Muziki kuwa Vidokezo vya Dijiti: Thamani za Hertz
Badilisha alama ya Muziki kuwa Vidokezo vya Dijiti: Thamani za Hertz

Kabla ya kuanza hatua hii, wacha nifafanue maneno kadhaa ya kiufundi. "Thamani" ya dokezo inaweza kutumiwa kwa kutumia maneno "lami", "thamani", na "dokezo". Sasa, lazima usome kila maandishi ya wimbo kutoka kwa alama. Utalazimika kutafsiri kila maandishi kuwa Hertz ukitumia muziki kwenye meza ya Hertz, ambayo unaweza kupata kwa urahisi mkondoni. Jambo moja kukumbuka ni kwamba katikati C imeorodheshwa kama C4 kwenye meza, na octave kubwa ni C5, na kadhalika. Mara tu noti hizi zote zikiwa zimesajiliwa kwa Hertz, utakuwa unaweka maadili kwenye toni ya kazi (x, y, z); ambapo X ni nambari ya pini au const int, njia ya kufafanua anuwai ambayo nitaelezea baadaye. Y itakuwa thamani ya Hertz ambayo umeandika tu, na Z itakuwa muda wa noti katika milisekunde iliyozungushwa kwa mia ya karibu. Kucheleweshwa (); maadili yatakuwa muda wa dokezo. Sasa, wacha tubuni mzunguko ambao unaweza kucheza muziki.

Hatua ya 3: Ubunifu wa Mzunguko

Ubunifu wa Mzunguko
Ubunifu wa Mzunguko

Sasa kwa kuwa tumetafsiri noti zote kuwa maadili ya dijiti ambayo kompyuta inaweza kuelewa, ni wakati wa kujenga mzunguko. Anza kwa kuchukua ubao wa mkate na kuweka skrini ya LCD na pini ya kwanza (GND) katika safu ya 14. Weka buzzer mahali popote unapopenda, na uweke potentiometer karibu nayo. Lengo ni kupanga kila kitu juu, kupunguza msongamano wa waya. Weka Arduino karibu na ubao wa mkate, na unganisha pini ya 5v kwenye reli nzuri ya ubao wa mkate, na pini ya ardhini kwa reli mbaya. Sasa, tuko tayari kuunganisha kuruka kati ya Arduino na vifaa.

Sasa, wacha tuzungumze juu ya pini kwenye LCD, na jinsi ya kuzitia waya.

GND inasimama kwa ardhi, hii ni waya hasi kwa sasa ya moja kwa moja. Waya GND kwa reli mbaya ya ubao wa mkate.

VCC inasimama kwa Voltage kwa Mkusanyaji wa Kawaida, na hapa ndipo unapounganisha chanzo chako cha nguvu cha volt 5 (reli nzuri ya nguvu).

VO inasimama kwa Tofauti, waya hii kwa pini ya kati ya potentiometer. Unganisha pini ya kushoto ya potentiometer na reli chanya ya umeme, na pini ya kulia na reli ya nguvu ya ardhini.

RS inasimama kwa Chagua Sajili, na hii inatumiwa na Arduino kuambia onyesho mahali pa kuhifadhi data. Unganisha pini hii kubandika 12 kwenye Arduino.

RW inasimama kwa Soma / Andika pini, ambayo Arduino hutumia kuangalia ikiwa skrini inaonyesha kile ulichoweka programu kuonyesha. Unganisha pini hii na reli hasi kwenye ubao wa mkate.

E inasimama Wezesha, ambayo inaambia LCD ni saizi gani za kuwezesha (kuwasha) au kuzima (zima). Unganisha pini hii na pini ya Arduino 11.

D4, D5, D6, na D7 ni pini za Kuonyesha zinazodhibiti herufi na herufi zinazoonyeshwa. Waunganishe na pini za Arduino 5, 4, 3, na 2, mtawaliwa.

Pini A, wakati mwingine inaitwa LED, ni anode ya LED ya taa ya nyuma. Unganisha hii kwenye reli nzuri ya umeme na waya au kwa kontena la 220-ohm. Kontena ni bora kwa matumizi marefu kwani inahifadhi LCD, lakini ikiwa kifaa hakitatumika mchana na usiku, hauitaji kontena.

Pini K, wakati mwingine pia (iliyochanganyikiwa) inayoitwa LED, ni pini ya ardhi ya LED. Unganisha hii kwenye reli ya umeme ya ardhini.

Hatua ya 4: Kupakia Nambari: Jinsi-Kwa

Chomeka Arduino yako kwenye USB ya kompyuta yako. Pakia nambari ifuatayo kwa kutumia programu ya Arduino IDE.

# pamoja

const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2; LiquidCrystal LCD (rs, sw, d4, d5, d6, d7);

usanidi batili () {

// weka safu ya safu na safu za LCD: lcd. anza (16, 2); // Chapisha ujumbe kwa LCD. lcd.print ("Hertz Pitch:!"); kuchelewesha (1000); kitanzi batili () {// cheza kuchelewa e4 (600); // pumzika kwa sekunde 0.6 toni (10, 329.63, 300); 329.63 "); // onyesha ujumbe kwenye LCD" 329.63"

kuchelewa (350); // kuchelewa kwa sekunde.35

lcd. clear (); // wazi LCD na uweke upya kwa ujumbe unaofuata // cheza d4 # toni (10, 311.13, 300); lcd.print ("311.13"); kuchelewesha (350); lcd wazi (); // kucheza sauti ya e4 (10, 329.63, 300); lcd.print ("329.63"); kuchelewesha (350); lcd wazi (); // kucheza d4 # toni (10, 311.13, 300); lcd.print ("311.13"); kuchelewesha (350); lcd wazi (); // kucheza sauti ya e4 (10, 329.63, 300); lcd.print ("329.63"); kuchelewesha (350); lcd wazi (); // kucheza sauti ya b3 (10, 246.94, 300); lcd.print ("246.94"); kuchelewesha (400); lcd wazi (); // kucheza toni ya d4 (10, 293.66, 300); lcd.print ("293.66"); kuchelewesha (400); lcd wazi (); // kucheza toni ya c4 (10, 261.63, 300); lcd.print ("261.63"); kuchelewesha (400); lcd wazi (); // kucheza toni ya3 (10, 220, 900); lcd.print ("220.0"); kuchelewesha (1000); lcd.safi (); lcd.print ("146.63"); kuchelewesha (350); lcd wazi (); // kucheza toni f3 (10, 174.61, 300); lcd.print ("174.61"); kuchelewesha (400); lcd wazi (); // kucheza toni ya3 (10, 220, 300); lcd.print ("220"); kuchelewesha (400); lcd wazi (); // kucheza sauti ya b3 (10, 246.94, 900); lcd.print ("246.94"); kuchelewesha (1000); lcd wazi ();

// kucheza e3

toni (10, 164.81, 300); lcd.print ("164.81"); kuchelewesha (400); lcd wazi (); // kucheza g3 # toni (10, 207.65, 300); lcd.print ("207.65"); kuchelewesha (400); lcd wazi (); // kucheza sauti ya b3 (10, 246.94, 300); lcd.print ("246.94"); kuchelewesha (400); lcd wazi (); // kucheza sauti ya c4 (10, 261.63, 900); lcd.print ("261.63"); kuchelewesha (1000); lcd wazi (); // kucheza sauti (10, 164.81, 300); lcd.print ("164.81"); kuchelewesha (400); lcd wazi (); // kucheza sauti ya e4 (10, 329.63, 300); lcd.print ("329.63"); kuchelewesha (400); lcd wazi (); // kucheza d4 # toni (10, 311.13, 300); lcd.print ("311.13"); kuchelewesha (400); lcd wazi (); // kucheza sauti ya e4 (10, 329.63, 300); lcd.print ("329.63"); kuchelewesha (400); lcd wazi (); // kucheza d4 # toni (10, 311.13, 300); lcd.print ("311.13"); kuchelewesha (400); lcd wazi (); // kucheza sauti ya e4 (10, 329.63, 300); lcd.print ("329.63"); kuchelewesha (400); lcd wazi (); // kucheza sauti ya b3 (10, 246.94, 300); lcd.print ("246.94"); kuchelewesha (400); lcd wazi (); // kucheza toni ya d4 (10, 293.66, 300); lcd.print ("293.66"); kuchelewesha (400); lcd wazi (); // kucheza toni ya c4 (10, 261.63, 300); lcd.print ("261.63"); kuchelewesha (400); lcd wazi (); // kucheza toni ya3 (10, 220, 900); lcd.print ("220.0"); kuchelewesha (1000); lcd wazi (); // kucheza toni ya d3 (10, 146.83, 300); lcd.print ("146.83"); kuchelewesha (400); lcd wazi (); // kucheza toni ya f3 (10, 174.61, 300); // eeprom 20-6 yesno, flash 65-0 noyes lcd.print ("174.61"); kuchelewesha (400); lcd wazi (); // kucheza toni ya3 (10, 220, 300); lcd.print ("220.0"); kuchelewesha (400); lcd wazi (); // kucheza sauti ya b3 (10, 246.94, 900); lcd.print ("246.94"); kuchelewesha (1000); lcd wazi (); // kucheza toni ya f3 (10, 174.61, 300); lcd.print ("174.61"); kuchelewesha (400); lcd wazi (); // kucheza toni ya c4 (10, 261.63, 300); lcd.print ("261.63"); kuchelewesha (400); lcd wazi (); // kucheza sauti ya b3 (10, 246.94, 300); lcd.print ("246.94"); kuchelewesha (400); lcd wazi (); // kucheza toni ya3 (10, 220, 900); lcd.print ("220.0"); kuchelewesha (1000); lcd wazi (); // kucheza sauti ya b3 (10, 246.94, 300); lcd.print ("246.94"); kuchelewesha (400); lcd wazi (); // kucheza toni ya c4 (10, 261.63, 300); lcd.print ("261.63"); kuchelewesha (400); lcd wazi (); // kucheza toni ya d4 (10, 293.66, 300); lcd.print ("293.66"); kuchelewesha (400); lcd wazi (); // kucheza sauti ya e4 (10, 329.63, 900); lcd.print ("329.63"); kuchelewesha (1000); lcd wazi (); // kucheza sauti ya g3 (10, 196, 300); lcd.print ("196.0"); kuchelewesha (400); lcd wazi (); // kucheza toni f4 (10, 349.23, 300); lcd.print ("349.23"); kuchelewesha (400); lcd wazi (); // kucheza sauti ya e4 (10, 329.23, 300); lcd.print ("329.23"); kuchelewesha (400); lcd wazi (); // kucheza toni ya d4 (10, 293.63, 900); lcd.print ("293.63"); kuchelewesha (1000); lcd wazi (); // kucheza sauti ya e3 (10, 164.81, 300); lcd.print ("164.81"); kuchelewesha (400); lcd wazi (); // kucheza sauti ya e4 (10, 329.63, 300); lcd.print ("329.63"); kuchelewesha (400); lcd wazi (); // kucheza toni ya d4 (10, 293.63, 300); lcd.print ("293.63"); kuchelewesha (400); lcd wazi (); // kucheza sauti ya c4 (10, 261.63, 900); lcd.print ("261.63"); kuchelewesha (1000); lcd wazi (); // kucheza toni ya d3 (10, 146.83, 300); lcd.print ("146.83"); kuchelewesha (400); lcd wazi (); // kucheza toni ya d4 (10, 293.63, 300); lcd.print ("293.63"); kuchelewesha (400); lcd wazi (); // kucheza toni ya c4 (10, 261.63, 300); lcd.print ("261.63"); kuchelewesha (400); lcd wazi (); // kucheza sauti ya b3 (10, 246.94, 900); lcd.print ("246.94"); kuchelewesha (1000); lcd wazi (); // kucheza sauti ya e4 (10, 329.63, 300); lcd.print ("329.63"); kuchelewesha (400); lcd wazi (); // kucheza d4 # toni (10, 311.13, 300); lcd.print ("311.13"); kuchelewesha (350); lcd wazi (); // kucheza sauti ya e4 (10, 329.63, 300); lcd.print ("329.63"); kuchelewesha (350); lcd wazi (); // kucheza d4 # toni (10, 311.13, 300); lcd.print ("311.13"); kuchelewesha (350); lcd wazi (); // kucheza sauti ya e4 (10, 329.63, 300); lcd.print ("329.63"); kuchelewesha (350); lcd wazi (); // kucheza sauti ya b3 (10, 246.94, 300); lcd.print ("246.94"); kuchelewesha (400); lcd wazi (); // kucheza toni ya d4 (10, 293.66, 300); lcd.print ("293.66"); kuchelewesha (400); lcd wazi (); // kucheza toni ya c4 (10, 261.63, 300); lcd.print ("261.63"); kuchelewesha (400); lcd wazi (); // kucheza toni ya3 (10, 220, 900); lcd.print ("220.0"); kuchelewesha (1000); lcd wazi (); // kucheza toni ya d3 (10, 146.83, 300); lcd.print ("146.83"); kuchelewesha (350); lcd wazi (); // kucheza toni ya f3 (10, 174.61, 300); lcd.print ("174.61"); kuchelewesha (400); lcd wazi (); // kucheza toni ya3 (10, 220, 300); lcd.print ("220.0"); kuchelewesha (400); // kucheza b3 lcd. wazi (); toni (10, 246.94, 900); lcd.print ("246.94"); kuchelewesha (1000); lcd wazi (); // kucheza sauti ya e3 (10, 164.81, 300); lcd.print ("164.81"); kuchelewesha (400); lcd wazi (); // kucheza g # 3 toni (10, 207.65, 300); lcd.print ("207.65"); kuchelewesha (400); lcd wazi (); // kucheza sauti ya b3 (10, 246.94, 300); lcd.print ("246.94"); kuchelewesha (400); lcd wazi (); // kucheza sauti ya c4 (10, 261.63, 900); lcd.print ("261.63"); kuchelewesha (1000); kuchelewesha (300); lcd wazi (); // kucheza sauti ya e3 (10, 164.81, 300); lcd.print ("164.81"); kuchelewesha (400); lcd wazi (); // kucheza sauti ya e4 (10, 329.63, 300); lcd.print ("329.63"); kuchelewesha (400); lcd wazi (); // kucheza d4 # toni (10, 311.13, 300); lcd.print ("311.13"); kuchelewesha (400); lcd wazi (); // kucheza sauti ya e4 (10, 329.63, 300); lcd.print ("329.63"); kuchelewesha (400); lcd wazi (); // kucheza d4 # toni (10, 311.13, 300); lcd.print ("311.13"); kuchelewesha (400); lcd wazi (); // kucheza sauti ya e4 (10, 329.63, 300); lcd.print ("329.63"); kuchelewesha (400); lcd wazi (); // kucheza sauti ya b3 (10, 246.94, 300); lcd.print ("246.94"); kuchelewesha (400); lcd wazi (); // kucheza toni ya d4 (10, 293.66, 300); lcd.print ("293.66"); kuchelewesha (400); lcd wazi (); // kucheza toni ya c4 (10, 261.63, 300); lcd.print ("261.63"); kuchelewesha (400); lcd wazi (); // kucheza toni ya3 (10, 220, 900); lcd.print ("220.0"); kuchelewesha (1000); lcd wazi (); // kucheza toni ya d3 (10, 146.83, 300); lcd.print ("146.83"); kuchelewesha (400); lcd wazi (); // kucheza toni f3 (10, 174.61, 300); lcd.print ("174.61"); kuchelewesha (400); lcd wazi (); // kucheza toni ya3 (10, 220, 300); lcd.print ("220.0"); kuchelewesha (400); lcd wazi (); // kucheza sauti ya b3 (10, 246.94, 900); lcd.print ("246.94"); kuchelewesha (1000); lcd wazi (); // kucheza toni ya f3 (10, 174.61, 300); lcd.print ("174.61"); kuchelewesha (400); lcd wazi (); // kucheza toni ya c4 (10, 261.63, 300); lcd.print ("261.63"); kuchelewesha (400); lcd wazi (); // kucheza sauti ya b3 (10, 246.94, 300); lcd.print ("246.94"); kuchelewesha (400); lcd wazi (); // kucheza toni ya3 (10, 220, 900); lcd.print ("220.0"); kuchelewesha (1000); lcd wazi (); }

Hatua ya 5: Kupakia Nambari: Yote Inamaanisha Nini?

Wacha tufafanue kazi zingine kwa Kiingereza, ili uweze kuelewa nambari.

toni (x, y, z); = cheza toni na sauti ya y Hertz, kwa buzzer kwenye pin x, kwa z milliseconds.

lcd.print ("XYZ"); = chapisha ujumbe na herufi XYZ kwa skrini ya LCD. (kwa mfano onyesha uwanja wa Hertz)

kuchelewesha (x); = pause kwa x milliseconds.

const int X = Y = weka kutofautisha X kubandika Y, na utumie X au Y kupeana majukumu kwa kifaa.

lcd wazi (); = futa skrini ya LCD na uweke upya kwa onyesho mpya

pinMode (X, OUTPUT); = weka pin X kwa hali ya pato

Mara tu utakapoelewa kazi hizi zote, unaweza kubadilisha vigeugeu kwa urahisi na data unayokusanya wakati wa kutafsiri wimbo, na kisha unaweza kuweka wimbo wa wimbo wako mwenyewe!

Hatua ya 6: Imemalizika !!

Imemalizika !!!
Imemalizika !!!
Imemalizika !!!
Imemalizika !!!

Labda una Arduino ambayo hucheza Fur Elise na inaonyesha maadili ya maandishi huko Hertz, au umetengeneza Arduino ambayo hucheza wimbo wa wimbo uliochagua, na kuonyesha maandishi ambayo ungetaka kuonyesha. Asante kwa kutembelea mafunzo haya, na ninatumahi kwako mradi huu kwenye Arduino.

Ilipendekeza: