Orodha ya maudhui:
- Hatua ya 1: Mazingatio ya Kiufundi
- Hatua ya 2: Vipengele vinavyohitajika
- Hatua ya 3: Ujenzi
- Hatua ya 4: Kanuni
- Hatua ya 5: Matumizi
Video: Jenereta ya Wimbi la Arduino: Hatua 5 (na Picha)
2024 Mwandishi: John Day | [email protected]. Mwisho uliobadilishwa: 2024-01-30 12:50
Sasisho la Februari 2021: angalia toleo jipya na 300x kiwango cha sampuli, kulingana na Raspberry Pi Pico
Katika maabara, mara nyingi mtu anahitaji ishara ya kurudia ya masafa, sura na amplitude. Inaweza kuwa kujaribu kipaza sauti, angalia mzunguko, sehemu au mtendaji. Jenereta zenye nguvu za mawimbi zinapatikana kibiashara, lakini ni rahisi sana kufanya faida mwenyewe na Arduino Uno au Arduino Nano, angalia kwa mfano:
www.instructables.com/id/Arduino-Waveform-…
www.instructables.com/id/10-Resister-Ardui…
Hapa kuna maelezo ya mwingine na sifa zifuatazo:
* Fomu sahihi za mawimbi: pato la 8-bit kwa kutumia R2R DAC, sura ya sampuli 256
* Haraka: 381 kHz kiwango cha sampuli
* Sahihi: 1mHz hatua masafa ya hatua. Sahihi kama kioo cha Arduino.
* Operesheni rahisi: wimbi na wimbi linaloweza kusuluhishwa na encoder moja ya rotary
* Mbalimbali ya amplitudes: millivolts hadi 20V
* 20 fomu za wimbi zilizofafanuliwa hapo awali. Moja kwa moja ili kuongeza zaidi.
* Rahisi kutengeneza: Arduino Uno au Nano pamoja na vifaa vya kawaida
Hatua ya 1: Mazingatio ya Kiufundi
Kutengeneza ishara ya analog
Upungufu mmoja wa Arduino Uno na Nano ni kwamba haina kibadilishaji cha dijiti-kwa-analog (DAC), kwa hivyo haiwezekani kuifanya itoe voltage ya analog moja kwa moja kwenye pini. Suluhisho moja ni ngazi ya R2R: pini 8 za dijiti zimeunganishwa na mtandao wa kontena ili viwango vya pato 256 viweze kufikiwa. Kupitia ufikiaji wa bandari ya moja kwa moja, Arduino inaweza kuweka pini 8 wakati huo huo na amri moja. Kwa mtandao wa kupinga, vipinga 9 vyenye thamani R vinahitajika na 8 na thamani 2R. Nilitumia 10kOhm kama thamani ya R, ambayo inaweka sasa kutoka kwa pini hadi 0.5mA au chini. Nadhani R = 1kOhm inaweza kufanya kazi pia, kwani Arduino inaweza kutoa 5mA kwa urahisi kwa pini, 40mA kwa kila bandari. Ni muhimu kwamba uwiano kati ya vipinga R na 2R ni kweli 2. Hiyo inafanikiwa kwa urahisi kwa kuweka vipinga 2 vya thamani R mfululizo, kwa jumla ya vipinga 25.
Mkusanyiko wa Awamu
Kuzalisha muundo wa wimbi basi huja kwa kurudia kutuma mlolongo wa nambari 8-bit kwenye pini za Arduino. Umbo la wimbi huhifadhiwa katika safu ya ka 256 na safu hii ni sampuli na kupelekwa kwenye pini. Mzunguko wa ishara ya pato imedhamiriwa na jinsi mtu anavyoendelea haraka kupitia safu. Njia thabiti, sahihi na ya kifahari ya kufanya hivyo ni pamoja na mkusanyiko wa awamu: nambari 32-bit huongezwa kila wakati, na tunatumia bits 8 muhimu kama faharisi ya safu.
Sampuli ya haraka
Usumbufu huruhusu sampuli kwa nyakati zilizoainishwa vizuri, lakini upeo wa usumbufu huzuia mzunguko wa sampuli hadi ~ 100kHz. Kitanzi kisicho na mwisho kusasisha awamu, sampuli muundo wa wimbi na kuweka pini inachukua mizunguko ya saa 42, na hivyo kufikia kiwango cha sampuli ya 16MHz / 42 = 381kHz. Kuzungusha au kusukuma kisimbuzi cha rotary husababisha badiliko la pini na usumbufu ambao hutoka nje ya kitanzi kubadilisha mpangilio (wimbi la mawimbi au masafa). Katika hatua hii nambari 256 kwenye safu zimehesabiwa tena ili kwamba hakuna mahesabu halisi ya umbo la mawimbi yanahitaji kufanywa katika kitanzi kuu. Mzunguko wa juu kabisa ambao unaweza kuzalishwa ni 190kHz (nusu ya kiwango cha sampuli) lakini basi kuna sampuli mbili tu kwa kila kipindi, kwa hivyo sio udhibiti mkubwa wa umbo. Kiolesura hivyo hairuhusu kuweka masafa juu ya 100kHz. Kwa 50kHz, kuna sampuli 7-8 kwa kila kipindi na kwa 1.5 kHz na chini ya nambari zote 256 zilizohifadhiwa katika safu hupata sampuli kila kipindi. Kwa maumbo ya mawimbi ambapo ishara hubadilika vizuri, kwa mfano wimbi la sine, kuruka sampuli sio shida. Lakini kwa maumbo ya mawimbi yenye spikes nyembamba, kwa mfano wimbi la mraba na mzunguko mdogo wa ushuru, kuna hatari kwamba kwa masafa zaidi ya 1.5 kHz kukosa sampuli moja kunaweza kusababisha muundo wa wimbi kutofanya kama inavyotarajiwa
Usahihi wa mzunguko
Nambari ambayo awamu imeongezwa kwa kila sampuli ni sawa na masafa. Mzunguko unaweza kuwekwa kwa usahihi wa 381kHz / 2 ^ 32 = 0.089mHz. Kwa mazoezi usahihi kama huo hauhitajiki sana, kwa hivyo kiolesura kinazuia kuweka masafa katika hatua za 1mHz. Usahihi kabisa wa masafa umedhamiriwa na usahihi wa masafa ya saa ya Arduino. Hii inategemea aina ya Arduino lakini wengi hutaja masafa ya 16.000MHz, kwa hivyo usahihi wa ~ 10 ^ -4. Nambari inaruhusu kurekebisha uwiano wa masafa na nyongeza ya awamu kusahihisha upungufu mdogo wa dhana ya 16MHz.
Bafu na kukuza
Mtandao wa resistor una impedance kubwa ya pato, kwa hivyo voltage yake ya pato huanguka haraka ikiwa mzigo umeambatanishwa. Hiyo inaweza kutatuliwa kwa kugonga au kukuza pato. Hapa, kugonga na kukuza hufanywa na opamp. Nilitumia LM358 kwa sababu nilikuwa nayo. Ni opamp polepole (kiwango cha kuua 0.5V kwa microsecond) kwa hivyo kwa masafa ya juu na kiwango cha juu cha ishara ishara hupotoshwa. Jambo zuri ni kwamba inaweza kushughulikia voltages karibu sana na 0V. Voltage ya pato hata hivyo imepunguzwa kwa ~ 2V chini ya reli, kwa hivyo kutumia nguvu ya + 5V inapunguza voltage ya pato hadi 3V. Moduli za hatua ni ndogo na bei rahisi. Kulisha + 20V kwa opamp, inaweza kutoa ishara na voltage hadi 18V. (NB, mpango huo unasema LTC3105 kwa sababu hiyo ndiyo hatua ya pekee niliyoipata katika Fritzing. Kwa kweli nilitumia moduli ya MT3608, angalia picha katika hatua zifuatazo). Ninachagua kutumia upunguzaji wa kutofautisha kwa pato la R2R DAC kisha utumie moja ya opamp kubatilisha ishara bila kukuza na nyingine kukuza na 5.7, ili ishara iweze kufikia kiwango cha juu cha takriban 20V. Pato la sasa ni mdogo, ~ 10mA, kwa hivyo amplifier yenye nguvu inaweza kuhitajika ikiwa ishara ni kuendesha spika kubwa au sumaku ya umeme.
Hatua ya 2: Vipengele vinavyohitajika
Kwa jenereta ya msingi ya wimbi
Arduino Uno au Nano
16x2 LCD kuonyesha + 20kOhm trimmer na 100Ohm mfululizo resistor kwa backlight
Encoder ya pini 5 ya rotary (na kitufe kilichojumuishwa cha kushinikiza)
Vipinga 25 vya 10kOhm
Kwa bafa / kipaza sauti
LM358 au opamp nyingine mbili
moduli ya kuongezeka kulingana na MT3608
Upinzani wa 50kOhm
Kontena la 10kOhm
Kinzani ya 47kOhm
1muF capacitor
Hatua ya 3: Ujenzi
Niliuza kila kitu kwenye ubao wa mfano wa 7x9cm, kama inavyoonekana kwenye picha. Kwa kuwa ilipata fujo kidogo na waya zote nilijaribu kupaka rangi risasi ambayo inabeba chanya nyekundu nyekundu na ile inayobeba nyeusi nyeusi.
Nakala niliyotumia ina pini 5, 3 upande mmoja, 2 upande mwingine. Upande ulio na pini 3 ndio usimbuaji halisi, upande ulio na pini 2 ni kitufe cha kushinikiza kilichounganishwa. Kwa upande wa pini 3, pini kuu inapaswa kushikamana na ardhi, pini zingine mbili hadi D10 na D11. Kwa upande wa pini 2, pini moja inapaswa kushikamana na ardhi na nyingine kwa D12.
Ni jambo baya zaidi ambalo nimewahi kufanya lakini inafanya kazi. Itakuwa nzuri kuweka ndani ya ua, lakini kwa sasa kazi ya ziada na gharama haifai kweli. Nano na onyesho limeambatanishwa na vichwa vya pini. Singefanya tena ikiwa ningejenga mpya. Sikuweka viunganishi kwenye ubao kuchukua ishara. Badala yake, ninawachukua na risasi za mamba kutoka kwa vipande vya waya wa shaba, vilivyoandikwa kama ifuatavyo:
R - ishara mbichi kutoka kwa R2R DAC
B - ishara iliyopigwa
A - ishara iliyoimarishwa
T - ishara ya kipima muda kutoka kwa pini 9
G - ardhi
+ - voltage chanya 'ya juu' kutoka kwa moduli ya hatua
Hatua ya 4: Kanuni
Nambari, mchoro wa Arduino, imeambatishwa na inapaswa kupakiwa kwenye Arduino.
Aina 20 za mawimbi zimefafanuliwa kabla. Inapaswa kuwa moja kwa moja kuongeza wimbi lingine lolote. Kumbuka kuwa mawimbi ya nasibu hujaza safu ya thamani ya 256 na maadili ya nasibu, lakini muundo huo huo unarudiwa kila kipindi. Ishara za kweli za nasibu zinasikika kama kelele, lakini muundo huu wa mawimbi unasikika zaidi kama filimbi.
Nambari huweka ishara ya 1kHz kwenye pini D9 na TIMER1. Hii ni muhimu kuangalia wakati wa ishara ya analog. Ndio jinsi niligundua kuwa idadi ya mizunguko ya saa ni 42: Ikiwa nadhani iwe 41 au 43, na nitatoa ishara ya 1kHz, ina wazi kuwa na masafa tofauti kutoka kwa ishara kwenye pini D9. Kwa thamani 42 zinalingana kabisa.
Kawaida, Arduino hukatiza kila millisecond kuweka wimbo wa wakati na kazi ya millis (). Hii itasumbua kizazi sahihi cha ishara, kwa hivyo usumbufu fulani umezimwa.
Mkusanyaji anasema: "Mchoro hutumia kaiti 7254 (23%) ya nafasi ya uhifadhi wa programu. Upeo ni baiti 30720. Viwango vya ulimwengu hutumia kaiti 483 (23%) ya kumbukumbu yenye nguvu, ikiacha kaiti 1565 kwa vigeuzi vya kawaida. Upeo ni kaa 2048." Kwa hivyo kuna nafasi ya kutosha ya nambari ya kisasa zaidi. Jihadharini kwamba itabidi uchague "ATmega328P (bootloader ya zamani)" kupakia kwa mafanikio kwa Nano.
Hatua ya 5: Matumizi
Jenereta ya ishara inaweza kuwezeshwa tu kupitia kebo ya mini-USB ya Arduino Nano. Inafanywa vizuri na benki ya umeme, ili kusiwe na kitanzi cha bahati mbaya na vifaa ambavyo vinaweza kushikamana.
Inapowashwa itazalisha wimbi la sine 100Hz. Kwa kuzungusha kitasa, moja ya aina zingine 20 za mawimbi zinaweza kuchaguliwa. Kwa kuzunguka wakati wa kusukuma, mshale unaweza kuwekwa kwa nambari yoyote ya masafa, ambayo inaweza kubadilishwa kuwa thamani inayotarajiwa.
Amplitude inaweza kudhibitiwa na potentiometer na ishara iliyopigwa au ishara iliyoongezwa inaweza kutumika.
Inasaidia sana kutumia oscilloscope kuangalia ukubwa wa ishara, haswa wakati ishara inapeana sasa kwa kifaa kingine. Ikiwa sasa nyingi imechorwa, ishara itakata na ishara hiyo imepotoshwa sana
Kwa masafa ya chini sana, pato linaweza kuonyeshwa na LED katika safu na kipinzani cha 10kOhm. Masafa ya sauti yanaweza kusikika na spika. Hakikisha kuweka ishara ndogo sana ~ 0.5V, vinginevyo sasa inakuwa juu sana na ishara inaanza kukata.
Ilipendekeza:
Jenereta ya Muziki inayotegemea hali ya hewa (ESP8266 Kulingana na Jenereta ya Midi): Hatua 4 (na Picha)
Jenereta ya Muziki ya Hali ya Hewa (ESP8266 Based Midi Generator): Halo, leo nitaelezea jinsi ya kutengeneza jenereta yako ndogo ya Muziki inayotegemea hali ya hewa. Inategemea ESP8266, ambayo ni kama Arduino, na inajibu kwa hali ya joto, mvua na nguvu ndogo. Usitarajie itengeneze nyimbo nzima au programu ya gumzo
Jenereta - Jenereta ya DC Kutumia Kubadilisha Reed: 3 Hatua
Jenereta - Jenereta ya DC Kutumia Kubadilisha Reed: Jenereta rahisi ya Dc Jenereta ya moja kwa moja (DC) ni mashine ya umeme ambayo hubadilisha nishati ya kiufundi kuwa umeme wa moja kwa moja wa sasa. Muhimu: Jenereta ya moja kwa moja ya sasa (DC) inaweza kutumika kama gari la DC bila ujenzi wowote. mabadiliko
Jenereta ya Pulse ya Wimbi ya Mlima wa Haraka: Hatua 4
Jenereta ya Pulse ya Wingu la Mlima wa Haraka: Jenereta ya Pulse ya Pembeni ya Haraka - Jenereta ya Pulse ya Mwendo wa Haraka wa Ultra Bora kwa upimaji wa umeme. Na uozo
Jinsi ya Kutengeneza Printa ya Wimbi ya Maingiliano: Hatua 8 (na Picha)
Jinsi ya Kutengeneza Printa ya Wimbi ya Sauti inayoingiliana: Katika mafunzo haya tutakuonyesha jinsi ya kuchapisha mawimbi ya sauti ya mwingiliano ndani ya fremu ya picha, ili uweze kuona na kusikia wimbo uupendao kwa wakati mmoja! Unapogusa uchapishaji kupitia glasi ya fremu, itacheza mwana
Saa ndogo ya wimbi la Mwezi: Hatua 5 (na Picha)
Saa ndogo ya wimbi la Mwezi: Huu ni mradi unaofanywa na Kituo cha SeaLife cha Alaska. Walipendezwa na mradi unaohusiana na bahari ambao ungewashirikisha wanafunzi wao katika ujenzi wa elektroniki na ufuatiliaji wa mazingira ya bahari. Ubunifu ni rahisi kutumia