Sisukord:
- Tarvikud
- 1. samm: ülevaade
- Samm: vooluringi kokkupanek
- Samm: kuidas vooluring töötab
- Samm: kuidas kood töötab
- 5. samm: laulu programmeerimine
- 6. samm: tagasiside
Video: Laulude tegemine Arduino ja alalisvoolumootoriga: 6 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:47
Teisel päeval, sirvides mõnda artiklit Arduino kohta, märkasin huvitavat projekti, mis kasutas lühikeste meloodiate loomiseks Arduino juhitavaid samm-mootoreid. Arduino kasutas samm -mootori käivitamiseks kindlatel sagedustel, mis vastavad muusikalistele nootidele, PWM (Pulse Width Modulation) tihvti. Ajastades, milliseid sagedusi mängiti, oli samm -mootorist kuulda selget meloodiat.
Kuid kui ma seda ise proovisin, leidsin, et minu samm -mootor ei saa tooni loomiseks piisavalt kiiresti pöörata. Selle asemel kasutasin alalisvoolumootorit, mida on suhteliselt lihtne programmeerida ja ühendada Arduinoga. Tavalist L293D IC -d saab kasutada mootori hõlpsaks juhtimiseks Arduino PWM -tihvtilt ja Arduino natiivse tooni () funktsioon võib tekitada vajaliku sageduse. Minu üllatuseks ei leidnud ma võrgust alalisvoolumootorit kasutavaid näiteid ega projekte ja seega on see juhis minu vastus selle parandamiseks. Alustame!
P. S. Eeldan, et teil on Arduinoga juba kogemusi ning olete kursis selle programmeerimiskeele ja riistvaraga. Peaksite teadma, mis on massiivid, mis on PWM ja kuidas seda kasutada ning kuidas pinge ja vool töötavad. Kui te pole veel kohal või alles alustasite Arduinoga, ärge muretsege: proovige seda alustamislehte Arduino ametlikult veebisaidilt ja tulge tagasi, kui olete selleks valmis.:)
Tarvikud
- Arduino (ma kasutasin UNO -d, kuid soovi korral võite kasutada ka teist Arduinot)
- Tavaline 5 V alalisvoolumootor, eelistatavalt selline, millele saab ventilaatori külge kinnitada (vt pilti jaotises "Vooluahela kokkupanek")
- L293D IC
- Sama palju nuppe kui noote, mida soovite esitada
- Leivalaud
- Jumper juhtmed
1. samm: ülevaade
Projekt töötab järgmiselt: Arduino genereerib antud sagedusel ruutlaine, mille ta väljastab L293D -le. L293D on ühendatud välise toiteallikaga, mida see kasutab mootori toiteks Arduino antud sagedusel. Välistades alalisvoolumootori võlli pöörlemise, on kuulda mootori välja- ja sisselülitamist sagedusel, mis tekitab tooni või noodi. Me võime programmeerida Arduino mängima noote nuppude vajutamisel või neid automaatselt esitama.
Samm: vooluringi kokkupanek
Vooluahela kokkupanemiseks järgige lihtsalt ülaltoodud Fritzingu diagrammi.
Näpunäide: Mootori märkus on kõige paremini kuulda, kui võll ei pöörle. Ma panin oma mootori võllile ventilaatori ja kasutasin mõnda kleeplinti, et hoida ventilaatorit mootori töötamise ajal paigal (vt pilti). See takistas võlli pöörlemist ja andis selge kuuldava tooni. Võimalik, et peate oma mootorilt puhta tooni saamiseks pisut kohandama.
Samm: kuidas vooluring töötab
L293D on IC, mida kasutatakse suhteliselt kõrgepinge ja suure vooluga seadmete, näiteks releede ja mootorite juhtimiseks. Arduino ei suuda enamikku mootoreid otse oma väljundist juhtida (ja mootori tagumine EMF võib kahjustada Arduino tundlikku digitaalskeemi), nii et sellist IC -d nagu L293D saab kasutada välise toiteallikaga, et hõlpsalt alalisvoolumootorit juhtida. Signaali sisestamine L293D -sse väljastab sama signaali alalisvoolumootorile, ohustamata Arduino kahjustamist.
Ülal on andmelehe L293D pinout/funktsionaalne skeem. Kuna me sõidame ainult 1 mootoriga (L293D saab sõita 2), vajame ainult ühte IC -i külge. Tihvt 8 on toide, tihvtid 4 ja 5 on GND, tihvt 1 on Arduino PWM -väljund ning tihvtid 2 ja 7 juhivad mootori suunda. Kui tihvt 2 on KÕRGE ja tihvt 7 on LOW, pöörleb mootor ühes suunas ja kui tihvt 2 on LOW ja tihvt 7 on KÕRGE, pöörleb mootor teistpidi. Kuna me ei hooli sellest, mis suunas mootor pöörleb, pole vahet, kas tihvtid 2 ja 7 on madalad või kõrged, kui need erinevad üksteisest. Tihvtid 3 ja 6 ühendatakse mootoriga. Soovi korral saate kõik teise küljega ühendada (tihvtid 9-16), kuid pidage meeles, et toite- ja PWM-tihvtid vahetavad kohti.
Märkus. Kui kasutate Arduinot, millel ei ole iga nupu jaoks piisavalt tihvte, võite kasutada kõigi takistite võrku, et ühendada kõik lülitid ühe analoogpistikuga, nagu käesolevas juhendis. Kuidas see töötab, jääb selle projekti raamest välja, kuid kui olete kunagi kasutanud R-2R DAC-i, peaksite selle tundma. Pange tähele, et analoogpinna kasutamine nõuab suurte osade koodi ümberkirjutamist, kuna nuppude teeki ei saa kasutada analoognõeltega.
Samm: kuidas kood töötab
Kõigi nuppude käsitsemise hõlbustamiseks kasutasin madleechi raamatukogu nimega “Button”. Esimese asjana lisasin raamatukogu. Järgmisena määratlesin ridades 8-22 Twinkle, Twinkle, Little Star (näidislaul) esitamiseks vajalike nootide sagedused, tihvti, mida kasutan L293D juhtimiseks, ja nupud.
Seadistusfunktsioonis lähtestasin jadaseadmed, nupud ja seadistasin L293D draiveri pin väljundrežiimi.
Lõpuks kontrollisin põhiahelas, kas nuppu on vajutatud. Kui see on olemas, mängib Arduino vastavat nooti ja prindib märkme nime jadamonitorile (kasulik teada saada, millised noodid teie leival on). Kui noot vabastatakse, peatab arduino heli ilma noTone () -ta.
Kahjuks ei suutnud ma raamatukogu ülesehituse tõttu leida võimalust kontrollida, kas nuppu on vajutatud või vabastatud vähem sõna otseses mõttes, kui kasutada 2 tingimust märkme kohta. Selle koodi teine viga on see, et kui vajutate korraga kahte nuppu ja vabastate ühe neist, peatatakse mõlemad noodid, kuna noTone () peatab märkmete genereerimise olenemata sellest, milline noot selle käivitas.
5. samm: laulu programmeerimine
Noodide esitamise asemel nuppude asemel saate programmeerida Arduino automaatselt teie jaoks meloodiat esitama. Siin on esimese visandi muudetud versioon, mis mängib mootoril Twinkle, Twinkle, Little Star. Visandi esimene osa on sama - noodisageduste ja toonPin määratlemine. Uue osa juurde jõuame kell bpm = "100". Seadsin lööki minutis (lööki minutis) ja seejärel kasutan matemaatikat, et selgitada välja millisekundite arv löögi kohta, millele löögisagedus võrdub. Selleks kasutasin tehnikat, mida nimetatakse mõõtmete analüüsiks (ärge muretsege - see pole nii raske, kui tundub). Kui olete kunagi keskkooli keemiakursuse läbinud, kasutasite mõõtühikute vahel teisendamiseks kindlasti mõõtmete analüüsi. Ujukid () tagavad, et midagi võrrandis pole ümardatud lõpuni.
Pärast seda, kui meil on ms/löögisagedus, jagasin või korrutasin selle sobivalt, et leida muusikas leiduvate erinevate nootide kestuste millisekundilised väärtused. Seejärel koostan massiivi igast noodist kronoloogilises järjekorras ja teise märkme iga noodi kestusega. On ülioluline, et iga noodi indeks ühtiks selle kestuse indeksiga, vastasel juhul kõlab teie meloodia. Panen näitena siia Twinkle, Twinkle, Little Star märkmed, kuid võite proovida mis tahes laulu või märkmete jada, mida soovite.
Tõeline maagia toimub silmuse funktsioonis. Iga noodi puhul mängin tooni beat_values massiivis määratud aja. Selle asemel, et kasutada siin viivitust, mille tõttu tooni ei esitataks, salvestasin programmi algusest saadava aja millis () funktsiooniga ja lahutasin selle praegusest ajast. Kui aeg ületab aja, mille määrasin märkme beat_values massiivis viimaseks, peatan noodi. Viide pärast for -tsüklit lisab märkmete vahele tühimiku, tagades, et järgnevad sama sagedusega noodid ei seguneks kokku.
6. samm: tagasiside
See on selle projekti jaoks. Kui millestki ei saa aru või kui teil on ettepanekuid, võtke palun minuga ühendust. Kuna see on minu esimene juhend, siis oleksin väga tänulik kommentaaride ja soovituste eest selle sisu täiustamiseks. Näeme järgmine kord!
Soovitan:
Kuidas juhtida alalisvoolumootoriga mootorit, kasutades 160A harjatud elektroonilist kiiruse regulaatorit ja servotesterit: 3 sammu
Kuidas juhtida alalisvoolumootoriga mootorit, kasutades 160A harjatud elektroonilist kiiruse regulaatorit ja servotesterit: Spetsifikatsioon: Pinge: 2-3S Lipo või 6-9 NiMH Pidev vool: 35A Sarivool: 160A BEC: 5V / 1A, lineaarne režiim: 1. edasi &tagurpidi; 2. edasi &pidur; 3. edasi & pidur & tagurpidi kaal: 34 g Suurus: 42*28*17 mm
Kuidas teha alalisvoolumootoriga kiiret ventilaatorit: 6 sammu
Kuidas teha DC -mootoriga suure kiirusega ventilaatorit?: Kõigepealt vaadake täielikku videokanalit, millest saate kõigest aru. Üksikasjad on toodud allpool
Laulude esitamine (MP3) Arduino abil PWM -i kasutamine kõlaris või tagasitransformaatoris: 6 sammu (piltidega)
Esitage laule (MP3) koos Arduinoga, kasutades kõlaris või Flyback -trafos PWM -i: Tere poisid, see on minu esimene juhendatav, ma loodan, et teile meeldib see !! Põhimõtteliselt olen selles projektis kasutanud oma Arduino ja sülearvuti vahelist jadaühendust, muusikaandmete edastamiseks sülearvutist Arduino. Ja kasutades Arduino TIMERS t
Soovimatute laulude automaatne eemaldamine oma iPodist: 4 sammu
Eemaldage soovimatud laulud automaatselt oma iPodist: see õpetus näitab teile, kuidas oma iPodi abil lugusid automaatseks kustutamiseks märkida, nii et te ei pea seda hiljem meeles pidama. See on järgmine parim asi, kui iPodis on nupp "Kustuta". Ja ärge muretsege, see ei kustuta lugusid iTust
Laulude või muu kraami eemaldamine DVD -lt MP3 -na: 4 sammu
Laulude või muu kraami eemaldamine DVD -lt MP3 -na: kui teil on DualDisc, millel on laulud, mida soovite iPodilt kuulata, või tavaline DVD, millel võib olla kommentaarrada, mida soovite kuulata Ipod, lugege ülejäänud osa selle tegemiseks. Vajalikud esemed-arvuti, käed, aju, DVD, iPod