Мазмұны:
- Жабдықтар
- 1 -қадам: Шолу
- 2 -қадам: тізбекті жинау
- 3 -қадам: Цикл қалай жұмыс істейді
- 4 -қадам: Кодекс қалай жұмыс істейді
- 5 -қадам: Әнді бағдарламалау
- 6 -қадам: Кері байланыс
Бейне: Ардуино мен тұрақты ток қозғалтқышымен ән жасау: 6 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:24
Келесі күні Arduino туралы бірнеше мақалаларды айналдыра отырып, мен қысқа әуендерді жасау үшін Arduino басқарылатын қадамдық қозғалтқыштарды қолданатын қызықты жобаны байқадым. Arduino қадамдық моторды музыкалық ноталарға сәйкес келетін белгілі бір жиілікте іске қосу үшін PWM (Pulse Width Modulation) түйреуішін қолданды. Қандай жиіліктер ойнағанын уақыт бойынша қадамдық қозғалтқыштан айқын әуен естіледі.
Алайда, мен оны өзім сынап көргенде, менде сатылы қозғалтқыштың дыбыс шығаратындай жылдам айнала алмайтынын байқадым. Оның орнына мен Arduino -ға бағдарламалау мен қосылу үшін қарапайым DC қозғалтқышты қолдандым. Қозғалтқышты Arduino PWM түйреуішінен оңай шығару үшін қарапайым L293D IC пайдалануға болады, ал Arduino -дағы жергілікті тон () функциясы қажетті жиілікті жасай алады. Бір таңқаларлығы, мен желіде тұрақты ток қозғалтқышын қолданатын мысалдар мен жобаларды таппадым, сондықтан бұл нұсқаулықтар - бұл мәселені шешуге жауап. Бастайық!
P. S. Менің ойымша, сізде Arduino -мен жұмыс тәжірибесі бар және оның бағдарламалау тілі мен аппараттық құралдарымен таныссыз. Сіз массивтердің не екенін, PWM дегеніміз не және оны қалай пайдалану керектігін, кернеу мен токтың қалай жұмыс істейтінін білуіңіз керек, тек бірнеше нәрсені атаңыз. Егер сіз әлі жоқ болсаңыз немесе Arduino -ны енді бастаған болсаңыз, уайымдамаңыз: Arduino ресми веб -сайтының осы бетін көріңіз және дайын болған кезде қайтып оралыңыз.:)
Жабдықтар
- Ардуино (Мен БҰҰ қолдандым, бірақ қаласаңыз, басқа Arduino қолдануға болады)
- Стандартты 5В тұрақты ток қозғалтқышы, жақсырақ желдеткіші бар («Схеманы құрастыру» суретін қараңыз)
- L293D IC
- Сіз ойнағыңыз келетін әндегі ноталар сияқты көптеген түймелер
- Нан тақтасы
- Jumper Wires
1 -қадам: Шолу
Жоба осылай жұмыс істейді: Arduino берілген жиілікте квадрат толқын жасайды, ол L293D шығарады. L293D қозғалтқышты Arduino беретін жиілікте қуаттандыру үшін пайдаланатын сыртқы қуат көзіне қосылады. Тұрақты ток қозғалтқышының білігінің айналуына кедергі келтіре отырып, қозғалтқышты дыбыс немесе нота шығаратын жиілікте өшіру мен қосуды естуге болады. Біз Arduino -ны батырмалар басылған кезде жазбаларды ойнатуға немесе оларды автоматты түрде ойнатуға бағдарламалай аламыз.
2 -қадам: тізбекті жинау
Схеманы жинау үшін жоғарыдағы Фритзинг диаграммасын орындаңыз.
Кеңес: Қозғалтқыштың нотасы білік айналмаған кезде жақсы естіледі. Мен желдеткішті қозғалтқыштың білігіне қойдым және қозғалтқыш жұмыс істеп тұрған кезде желдеткішті ұстап тұру үшін жабысқақ таспаны қолдандым (суретті қараңыз). Бұл біліктің бұрылуына жол бермеді және айқын, естілетін дыбыс шығарды. Қозғалтқыштан таза дыбыс алу үшін сізге біраз түзету қажет болуы мүмкін.
3 -қадам: Цикл қалай жұмыс істейді
L293D - салыстырмалы түрде жоғары вольтты, реле мен қозғалтқыштар сияқты жоғары токты құрылғыларды басқаруға арналған IC. Arduino қозғалтқыштардың көпшілігін тікелей шығысымен басқара алмайды (және қозғалтқыштың ЭҚК -і Arduino -ның сезімтал цифрлық схемасын зақымдауы мүмкін), сондықтан L293D сияқты IC -ді тұрақты ток қозғалтқышын оңай басқару үшін сыртқы қуат көзімен пайдалануға болады. L293D сигналын енгізу Arduino -ға зақым келтірместен тұрақты сигналды тұрақты қозғалтқышқа шығарады.
Жоғарыда L293D мәліметтер кестесінен түйін/функционалдық схемасы берілген. Біз тек 1 қозғалтқышты басқаратындықтан (L293D 2 жүргізе алады), бізге тек IC -тың бір жағы қажет. 8 -түйреуіш - қуат, 4 және 5 -ші түйреуіштер - GND, 1 -түйреуіш - Arduino -дан шығатын PWM, ал 2 -ші және 7 -ші түйреуіштер қозғалтқыштың бағытын бақылайды. 2 түйреуіш жоғары болса және 7 түйреуік төмен болса, қозғалтқыш бір бағытта айналады, ал 2 түйреуіш төмен және 7 түйреуіш жоғары болса, қозғалтқыш басқа бағытта айналады. Біз қозғалтқыштың қай бағытта айналатынына мән бермейтіндіктен, егер олар бір -бірінен өзгеше болса, 2 және 7 түйреуіштердің төмен немесе жоғары болуы маңызды емес. 3 және 6 түйреуіштер қозғалтқышқа қосылады. Қаласаңыз, бәрін басқа жаққа қосуға болады (9-16 түйреуіштер), бірақ қуат пен PWM түйреуіштері орын ауыстыратынын біліңіз.
Ескерту: Егер сізде әр түйме үшін түйреуіштері жоқ Arduino қолданылса, резисторлар желісін қолдана отырып, барлық қосқыштарды бір аналогтық түйреуге қосуға болады, мысалы, осы нұсқаулықта. Бұл қалай жұмыс істейді, бұл жобаның ауқымынан тыс, бірақ егер сіз R-2R DAC-ті қолданған болсаңыз, сіз оны таныс деп білуіңіз керек. Аналогты түйреуішті пайдалану кодтың үлкен бөліктерін қайта жазуды қажет ететінін ескеріңіз, себебі Button кітапханасын аналогтық түйреуіштермен пайдалану мүмкін емес.
4 -қадам: Кодекс қалай жұмыс істейді
Барлық түймелерді басқаруды жеңілдету үшін мен Madleech «Button» деп аталатын кітапхананы қолдандым. Мен бірінші кезекте кітапхананы енгіздім. Әрі қарай, 8-22 жолдарда мен Twinkle, Twinkle, Little Star (әннің үлгісі) ойнауға қажет ноталардың жиілігін, L293D дискісін басқару үшін қолданылатын түйреуішті және түймелерді анықтадым.
Орнату функциясында мен серияны, түймелерді инициализацияладым және L293D драйверінің түйреуішін шығыс режиміне қойдым.
Ақырында, негізгі циклде мен түйменің басылғанын тексердім. Егер бар болса, Arduino сәйкес жазбаны ойнатады және жазбаның атауын сериялық мониторға басып шығарады (сіздің тақтада қандай жазбалар бар екенін білу үшін пайдалы). Егер нота босатылса, arduino noTone () көмегімен кез келген дыбысты тоқтатады.
Өкінішке орай, кітапхананың құрылымына байланысты мен бір жазбаның 2 шартын қолданудан гөрі, батырманың басылғанын немесе босатылғанын тексерудің жолын таба алмадым. Бұл кодтың тағы бір кемшілігі - егер сіз бір уақытта екі түймені бассаңыз, содан кейін біреуін босатсаңыз, онда екі жазбаның да жұмысы тоқтатылады, себебі noTone () қандай жазбаның туындағанына қарамастан, кез келген жазбаларды тоқтатады.
5 -қадам: Әнді бағдарламалау
Жазбаларды ойнату үшін түймелерді пайдаланудың орнына, сіз Arduino -ға автоматты түрде әуен ойнауға бағдарламалай аласыз. Бұл моторда Twinkle, Twinkle, Little Star ойнаған бірінші эскиздің өзгертілген нұсқасы. Эскиздің бірінші бөлігі бірдей - нота жиілігін және тонды анықтайды. Біз жаңа бөлімге bpm = «100» кезінде жетеміз. Мен соққыларды минутына (bpm) орнаттым, содан кейін секундына миллисекундтардың санын анықтау үшін математиканы қолданып, bpm тең. Мұны істеу үшін мен өлшемді талдау деп аталатын әдісті қолдандым (алаңдамаңыз - бұл қиын емес). Егер сіз орта мектепте химия курсын оқыған болсаңыз, онда сіз бірліктерді түрлендіру үшін міндетті түрде өлшемді талдауды қолдандыңыз. Floats () дәлдіктің соңына дейін теңдеудегі ештеңе дөңгелектенбеуін қамтамасыз ету үшін бар.
Бізде ms/beat саны болғаннан кейін, мен музыкада кездесетін әр түрлі ноталар ұзақтығының миллисекундтық мәндерін табу үшін оны сәйкесінше бөлдім немесе көбейттім. Содан кейін мен хронологиялық тәртіппен әр нотаның жиынын жасаймын, ал әр жазбаның ұзақтығы бар. Әр нотаның индексі оның ұзақтығының индексіне сәйкес келуі өте маңызды, әйтпесе сіздің әуеніңіз өшеді. Мен мысал ретінде Twinkle, Twinkle, Little Star жазбаларын енгіздім, бірақ сіз кез келген әнді немесе жазбалар тізбегін көре аласыз.
Нағыз сиқыр цикл функциясында болады. Әр ескертулер үшін мен beat_values массивінде көрсетілген уақыт ішінде үнді ойнаймын. Бұл жерде тонды ойнатпауға себеп болатын кешіктіруді пайдаланудың орнына, millis () функциясымен бағдарлама басталған уақытты жазып алдым және оны ағымдағы уақыттан алып тастадым. Уақыт мен beat_values массивінде жазуды көрсеткен уақыттан асып кетсе, мен жазбаны тоқтатамын. For циклінен кейінгі кідіріс ноталар арасындағы алшақтықты қосады, бұл жиілігі бірдей кейінгі жазбалар бір -бірімен араласпауын қамтамасыз етеді.
6 -қадам: Кері байланыс
Бұл бұл жоба үшін. Егер сізде түсініксіз нәрсе болса немесе ұсыныстарыңыз болса, маған хабарласудан тартынбаңыз. Бұл менің бірінші нұсқаулық болғандықтан, мен бұл мазмұнды жақсарту туралы түсініктемелер мен ұсыныстарға өте ризамын. Келесі кездескенше!
Ұсынылған:
Айнымалы ток +15В, -15В 1А айнымалы және 5В 1А тұрақты жұмыс үстелінің тұрақты ток көзі: 8 қадам
Айнымалы ток +15В, -15В 1А айнымалы және 5В 1А тұрақты кернеудің тұрақты ток көзі: Қуат көзі-бұл электр жүктемесіне электр қуатын беретін электр құрылғысы. Бұл қуат көзі үш тұрақты күйдегі тұрақты ток көзінен тұрады. Бірінші жеткізу 1 амперге дейін 1,5 -тен 15 вольтке дейінгі айнымалы шығуды береді
Тұрақты ток - тұрақты кернеуді төмендету режимі Бак кернеу түрлендіргіші (LM2576/LM2596): 4 қадам
Тұрақты ток-тұрақты кернеуді төмендету режимі Бак кернеу түрлендіргіші (LM2576/LM2596): Жоғары тиімділікке арналған конвертер жасау-бұл қиын жұмыс, тіпті тәжірибелі инженерлер де дұрыс жобалау үшін бірнеше дизайнды қажет етеді. бұл кернеуді төмендететін тұрақты токтан тұрақты токқа түрлендіргіш (жоғарылату кезінде
Тұрақты ток қозғалтқышымен жоғары жылдамдықты желдеткішті қалай жасауға болады ?: 6 қадам
Тұрақты ток қозғалтқышымен жоғары жылдамдықты желдеткішті қалай жасауға болады?
1А -дан 40А -ға дейінгі ток күші 1000 Вт дейінгі тұрақты ток қозғалтқышы үшін ағымдағы BOOST түрлендіргіші: 3 қадам
1000А дейін тұрақты ток қозғалтқышы үшін 1А-дан 40А-ға дейінгі ағымдағы BOOST түрлендіргіші: Сәлеметсіз бе! Бұл бейнеде сіз 1000 Вт және 40 Амперке дейінгі тұрақты ток қозғалтқыштарының транзисторлары мен трансформаторы бар орталық ток трансформаторы үшін ток күшейткіш схемасын жасауды үйренесіз. шығудағы ток өте жоғары, бірақ кернеу
Жақсартылған тұрақты реттелетін тұрақты ток көзі: 5 қадам
Жақсартылған қарапайым реттелетін тұрақты ток көзі: жалғасуда: Мен бұл заттың қалай жұмыс істейтінін түсіндіретін қосымша мәтін мен алдағы бірнеше күнде схемалық кескін қосамын. эксперименттер мен жобалар