Orodha ya maudhui:
- Hatua ya 1: Kufafanua Anwani za Sajili
- Hatua ya 2: Mpangilio na Vigeuzi vya Ulimwenguni
- Hatua ya 3: Kazi ya "serial.begin"
- Hatua ya 4: Kazi ya "serial.available"
- Hatua ya 5: Kazi ya "serial.read"
- Hatua ya 6: Kazi ya "serial.write"
- Hatua ya 7: Kazi ya Usanidi
- Hatua ya 8: Kazi za Kitanzi na ISR
- Hatua ya 9: Wiring
- Hatua ya 10: Kuiweka Pamoja
Video: Jenereta ya Toni ya Arduino Isiyo na Maktaba au Kazi za Siri (Pamoja na Usumbufu): Hatua 10
2024 Mwandishi: John Day | [email protected]. Mwisho uliobadilishwa: 2024-01-30 12:54
Hili sio jambo ambalo kwa kawaida ningefanya kufundishwa, napendelea ujumi wangu wa chuma, lakini kwa kuwa mimi ni mwanafunzi wa uhandisi wa umeme na lazima nichukue darasa juu ya watawala wadogo (Ubunifu wa Mifumo Iliyopachikwa), nilifikiri ningefundisha juu ya moja ya miradi yangu. Wakati mwanzoni nilifanya mradi na wengine kwa darasa hili, niligundua kuwa kuna mafunzo machache sana ambayo hayatumii kazi za maktaba ya arduino au kazi za serial, ambayo ni sababu nyingine nilidhani hii itakuwa nzuri kufundisha.
Nambari hii imeundwa kwa Mdhibiti mdogo wa Atmega 2560, kwa hivyo ikiwa unataka kuitumia kwenye bodi nyingine utahitaji kubadilisha rejista za anwani kwenye nambari kulingana na mwongozo wako wa watumiaji. Wazo la kimsingi nyuma ya nambari ni kwamba wakati wowote unapoingiza kitufe kwenye kibodi kwenye mfuatiliaji wa serial, mega ya arduino itatoa masafa fulani kulingana na ufunguo gani unabonyeza, na "q" kuiweka upya. Nilifanya hivyo ili "a" itoe frequency ya gorofa na "A" itatoa frequency kali, "b" ikitoa B gorofa, "c" kwa C gorofa, "C" kwa C mkali, na kadhalika. Nambari kamili imepakiwa mwishoni, lakini kila hatua itavunja nambari vipande vipande kwa hivyo ni rahisi kuelezea.
Hatua ya 1: Kufafanua Anwani za Sajili
Hatua hii ni rahisi, ikiwa unatumia atmega 2560, unahitaji tu kutumia anwani nilizotumia, ingawa ukitumia bodi iliyo na chip tofauti, utahitaji kupata anwani za kila moja ya rejista hizi kwenye mwongozo wa mtumiaji wa chips. Ufafanuzi hapo juu ni kanuni tu ambazo zitatumika kwa kazi zetu baadaye. Tunabainisha anwani kama ambazo hazijasainiwa kwa sababu hatutaki mkusanyaji afanye fujo nao.
Hatua ya 2: Mpangilio na Vigeuzi vya Ulimwenguni
Hapa tunataka kufafanua safu ya Mzunguko ambayo itakuwa na masafa ambayo kila kitufe kinapaswa kutolewa. Thamani hizi zimehesabiwa kutoka kwa masafa halisi ya maandishi, na kwa uaminifu nilisahau jinsi nilivyozipata, lakini ndio maadili sahihi wakati niliwajaribu kwenye oscilloscope ili kuhakikisha. Tunafafanua pia safu ya maelezo ambayo ina funguo zote za kubonyeza kila toni, na vile vile vigeuzi tutakavyohitaji kwa kazi zetu za baadaye.
Hatua ya 3: Kazi ya "serial.begin"
Tutaita kazi yetu ya kawaida ambayo inaiga kazi ya "serial.begin" U0init (). Inachukua baudrate inayotakiwa kama pembejeo na kuanza bandari ya serial kwenye baudrate hiyo.
Hatua ya 4: Kazi ya "serial.available"
Tutaita kazi inayoiga "serial.ava inapatikana" U0kbhit (). Haichukui pembejeo lakini badala yake hugundua ikiwa kuna mabadiliko yaliyofanywa kwenye kibodi kwa kutumia hali ya RDA na inarudi kweli wakati mabadiliko yanapatikana.
Hatua ya 5: Kazi ya "serial.read"
Tutaita kazi ambayo inaiga kazi ya "serial.read" U0getchar (), ambayo haichukui pembejeo na matokeo yoyote ya mabadiliko yanayofanywa kwenye kibodi, ambayo huhifadhiwa kwenye rejista ya UDR0.
Hatua ya 6: Kazi ya "serial.write"
Tutaita kazi ambayo inaiga "serial.write" U0putchar (), ambayo inachukua data kutoka kwa rejista ya UDR0 wakati mabadiliko yanagunduliwa na kuhifadhiwa, na matokeo ambayo yanabadilisha kurudi kwa mfuatiliaji wa serial.
Hatua ya 7: Kazi ya Usanidi
Hii ndio kazi ya msingi ya usanidi ambayo itatumia uigaji wetu wa "serial.begin" kuanzisha bandari ya serial, na itaanzisha mipangilio yetu kidogo ya rejista za timer na kuweka PB6 kutoa sauti zetu.
Hatua ya 8: Kazi za Kitanzi na ISR
Kitanzi hufanya kazi hivi: ikiwa mabadiliko hugunduliwa na kazi yetu ya "serial.available", kazi yetu ya "serial.read" huhifadhi mabadiliko hayo, na kazi yetu ya "serial.write" inaweka mabadiliko hayo kwenye mfuatiliaji wa serial. Kwa muda mrefu kama kutofautisha i ni chini ya saizi ya safu ya masafa, itaweka pato kuwa msimamo wa i katika safu hiyo, ikitoa masafa katika nafasi hiyo. ISR inafanya kazi kama kuweka upya, ambapo ikiwa nafasi ya safu ya masafa hailingani na 0 (kwa maneno mengine ikiwa "q" haikushinikizwa), itatoa masafa, lakini wakati "q" imesisitizwa itaweka upya. Tafadhali kumbuka: nambari hii hutumia usumbufu, lakini inaweza kufanywa na usumbufu wa walemavu. Nitaandika nambari bila kukatiza ikiwa nitapata ombi lolote, nadhani toleo la kukatiza ni la kufurahisha zaidi.
Hatua ya 9: Wiring
Wiring ya nambari hii ni rahisi sana, weka waya wa pato kutoka PB6 hadi kwenye ubao wa mkate, unganisha buzzer au spika mfululizo na hiyo, na uiunganishe tena chini. Kumbuka: ukitumia spika, weka kontena dogo mbele ya spika. Ikiwa unataka tu kuona pato lakini usilisikie, unganisha tu PB6 kwa risasi nyekundu ya oscilloscope na risasi nyeusi hadi ardhini.
Hatua ya 10: Kuiweka Pamoja
Niliongeza nambari kamili kwa hatua hii, kwani nimeelezea sehemu zake zote katika hatua zilizopita. Inachukua tu ingizo la kibodi kwa masafa tofauti na matokeo ya masafa kwa PB6. Natumahi umefurahiya kusoma njia tofauti ya kuweka nambari na IDE!
Pia, tafadhali pigia kura hii kwenye shindano la Microcontroller: D
Ilipendekeza:
Usumbufu wa Maabara (Kazi katika Maendeleo): 3 Hatua
Usumbufu wa Maabara (Fanya Kazi kwa Maendeleo): Kusudi la maabara hii inaendesha programu ya Arduino kwa kutumia Usumbufu. Maabara hii haifanyi kazi kikamilifu kwa usahihi kwa sababu ya shida za usimbuaji. Nini utahitaji: - 1 Arduino Uno - Bodi ya mkate 1 - kitufe 1 cha kushinikiza- 3 LED's- 220 Ohm resistors- waya za Jumper
Jenereta ya Usumbufu wa Aether ya Galvani-Edison: 4 Hatua (na Picha)
Jenereta ya Usumbufu wa Aether ya Galvani-Edison: Mkufunzi atapenda kutilia maanani maendeleo ya hivi karibuni ya Mabwana Galvani na Edison na utumiaji wa utafiti wao katika kutengeneza Jenereta ya Usumbufu wa Aether. Wasomaji wanaonywa kuwa kuna mengi
Arduino Synth / Jenereta ya Toni: Hatua 5
Arduino Synth / Jenereta ya Toni: Hii ni Synth / Toni Jenereta ambayo hutumia amri ya Toni ambayo ni ya asili kwa Arduino. Inayo funguo 12 za kibinafsi ambazo zinaweza kuwekwa ili kucheza masafa yoyote ya wimbi la mraba. Ina uwezo wa kwenda juu na chini octave na kitufe. Pia ina s
Jenereta ya Toni "Jimikky Kammal" Kutumia Arduino Pro Mini: Hatua 5
Jenereta ya Toni "Jimikky Kammal" Kutumia Arduino Pro Mini: Huu ni mradi rahisi wa jenereta ya toni ukitumia Arduino Pro Mini. Sehemu ya wimbo maarufu " Jimikky Kammal " ya sinema " Velipadinte Pusthakam " imeundwa kwa monotonic. Vidokezo vya muziki vinatokea katika maumbile kama sinuso laini na inayotembea
Jenereta ya Toni ya Microcontroller Fabric katika C-code: Hatua 8 (na Picha)
Microcontroller Fabric Tone Generator katika C-code: Mwisho wa Oktoba mwaka jana mtumiaji wa mafunzo carmitsu alinitumia ujumbe baada ya kuona synth yangu ya chakula cha mchana. Kutoka kwa ujumbe wake: Ninafundisha muziki katika shule ya msingi. Tunacheza muziki mwingi wa kinasa sauti. yaani watoto hucheza filimbi kidogo …… nimejitenga