Flyback трансформаторында немесе динамикте PWM үшін ADC көмегімен Arduino көмегімен әндерді ойнаңыз: 4 қадам
Flyback трансформаторында немесе динамикте PWM үшін ADC көмегімен Arduino көмегімен әндерді ойнаңыз: 4 қадам
Anonim
Flyback трансформаторында немесе динамикте PWM үшін ADC көмегімен Arduino көмегімен әндерді ойнаңыз
Flyback трансформаторында немесе динамикте PWM үшін ADC көмегімен Arduino көмегімен әндерді ойнаңыз
Flyback трансформаторында немесе динамикте PWM үшін ADC көмегімен Arduino көмегімен әндерді ойнаңыз
Flyback трансформаторында немесе динамикте PWM үшін ADC көмегімен Arduino көмегімен әндерді ойнаңыз
Flyback трансформаторында немесе динамикте PWM үшін ADC көмегімен Arduino көмегімен әндерді ойнаңыз
Flyback трансформаторында немесе динамикте PWM үшін ADC көмегімен Arduino көмегімен әндерді ойнаңыз
Flyback трансформаторында немесе динамикте PWM үшін ADC көмегімен Arduino көмегімен әндерді ойнаңыз
Flyback трансформаторында немесе динамикте PWM үшін ADC көмегімен Arduino көмегімен әндерді ойнаңыз

Сәлем Жігіттер, Бұл менің басқа нұсқаулықтың екінші бөлігі (бұл өте қиын болды), Негізінен, бұл жобада мен Arduino -да ADC мен TIMERS -ты аудио сигналды PWM сигналына түрлендіру үшін қолдандым.

Бұл менің алдыңғы нұсқаулығыма қарағанда әлдеқайда жеңіл, егер сіз көргіңіз келсе, менің бірінші нұсқаулығымның сілтемесі. сілтеме

Дыбыстық сигналдың теориясын, бит жылдамдығын, бит тереңдігін, іріктеу жылдамдығын түсіну үшін сіз теорияны менің нұсқаулықтағы соңғы оқулықтан оқи аласыз. Сілтеме жоғарыда.

1 -қадам: Бұл жобаға қажет нәрселер (талаптар)

1. Arduino тақтасы (біз кез келген тақтаны қолдана аламыз (328, 2560), яғни Mega, Uno, Mini және т.б., бірақ әр түрлі түйреуіштері бар)

2. Arduino Studio бар ДК.

3. Breadboard немесе Perfboard

4. Сымдарды қосу

5. TC4420 (Mosfet драйвері немесе сол сияқты)

6. Power Mosfet (N немесе P арнасы, сосын сәйкесінше сым салыңыз) (мен N-арнаны қолдандым)

7. Динамик немесе Flyback трансформаторы (Иә, сіз оны дұрыс оқыдыңыз!)

8. Сәйкес қуат көзі (0-12В) (мен ATX қуат көзін қолдандым)

9. Жылытқыш (мен ескі компьютерден құтқарылдым).

10. Күшейткіш (қалыпты музыкалық күшейткіш) немесе күшейткіш схемасы.

2 -қадам: PWM -ге ADC теориясы

PWM -ге ADC теориясы
PWM -ге ADC теориясы
PWM -ге ADC теориясы
PWM -ге ADC теориясы

Сонымен, бұл жобада мен Arduino -ның ADC -де дыбыстық сигналдың деректерін іріктеуді қолдандым.

ADC (Аналогты-цифрлық түрлендіргіш) атауы анықтағандай, ADC аналогты сигналды сандық үлгілерге түрлендіреді. Ал максималды тереңдігі 10 бит болатын Arduino үшін. Бірақ бұл жоба үшін біз 8 биттік іріктеуді қолданамыз.

Arduino ADC пайдалану кезінде біз ADC_reference кернеуін есте ұстауымыз керек.

Arduino Uno 1.1V, 5V (кодта анықталуы мүмкін ішкі сілтеме) немесе сыртқы сілтемені ұсынады (оны AREF түйреуішіне сыртынан қолдану керек).

Менің тәжірибеме сәйкес, ADC -тен жақсы нәтиже алу үшін тірек кернеуі ретінде минимум 2,0В болуы керек. 1.1V кем дегенде мен үшін жақсы болмады. (Жеке тәжірибе)

*МАҢЫЗДЫ**МАҢЫЗДЫ ** МАҢЫЗДЫ ** МАҢЫЗДЫ ** МАҢЫЗДЫ*

Бізге кернеуі максималды (Вольт. 5 В) күшейткіштен немесе күшейткіш тізбегінен күшейтілген дыбыстық сигналды қолдану қажет

Мен 5В ішкі кернеу анықтамасын біздің жоба үшін орнатқандықтан. Мен әдетте біздің үйде бар немесе сіз оны өзіңіз жасай алатын қалыпты күшейткішті (музыкалық күшейткішті) пайдаланып күшейтілген сигналды қолданамын.

Енді негізгі бөлім. Іріктеу жылдамдығы, бұл біздің ADC секундына қанша үлгі алады, түрлендіру жылдамдығы неғұрлым жоғары болса, шығыс нәтижесі соғұрлым жақсы болады, кіріс толқынына ұқсас болады.

Осылайша, біз бұл жобада ADC сағатын 500 кГц -ге орнату арқылы 33.33 кГц іріктеу жиілігін қолданамыз, бұл қалай болатынын түсіну үшін біз Atmega (328p) чипінің деректер кестесіндегі ADC уақыт бетін көруіміз керек.

Біз бір іріктеуді автоматты іріктеуді аяқтау үшін бізге 13.5 ADC сағат циклдары қажет екенін көре аламыз. 500 кГц жиілігімен бұл бір ADC циклі үшін 1/500кГц = 2уС құрайды, яғни автоматты іріктеу қолданылған кезде үлгіні аяқтау үшін 13,5*2uS = 27uS қажет. Микроконтроллерге 3uS көбірек беру арқылы (қауіпсіз жағы үшін), барлығы бір үлгі үшін 30uS құрайды.

Сонымен 30uS -те 1 үлгі 1/30uS = 33,33 KSamples/S дегенді білдіреді.

Arduino -ның TIMER0 -ге тәуелді болатын іріктеу жылдамдығын орнату үшін ADC автоматты іріктеу триггері біздің жағдайда тәуелді, оны код пен деректер кестесінде көріп тұрғандай, біз OCR0A = 60 мәнін құрдық. ???)

Өйткені мәліметтер кестесінде берілген формула бойынша.

жиілік (немесе мұнда үлгі жылдамдығы) = Arduino/Prescaler сағат жиілігі*OCR0A мәні (біздің жағдайда)

Біз қалайтын жиілік немесе үлгі жиілігі = 33,33 кГц

Сағат жиілігі = 16 МГц

Prescaler мәні = 8 (біздің жағдайда)

OCR0A мәні = біз тапқымыз келеді ??

ол OCR0A = 60 береді, сонымен қатар біздің Arduino кодында.

TIMER1 дыбыстық сигналдың тасымалдаушы толқыны үшін пайдаланылады, мен бұл туралы егжей -тегжейлі айтпаймын.

Осылайша, бұл Arduino көмегімен PWM -ге ADC тұжырымдамасының қысқаша теориясы болды.

3 -қадам: схемалық

Схемалық
Схемалық

Схемада көрсетілгендей барлық компоненттерді қосыңыз. Сонымен, сізде екі нұсқа бар:-

1. Динамикті қосыңыз (5В қосылған)

2. Flyback трансформаторын қосыңыз (12 В -ға қосылған)

Мен екеуін де сынап көрдім. Және екеуі де жақсы жұмыс істейді.

*МАҢЫЗДЫ**МАҢЫЗДЫ ** МАҢЫЗДЫ ** МАҢЫЗДЫ ** МАҢЫЗДЫ*Біз күшейткіштен немесе 5В кернеуі (максималды кернеу) күшейткіш тізбегінен күшейтілген дыбыстық сигналды қолдануымыз қажет

Жауапкершіліктен бас тарту:-

*Мен Flyback трансформаторын сақтық шараларын қолдануды ұсынамын, себебі ол қауіпті болуы мүмкін, себебі ол жоғары кернеуді шығарады. Мен ешқандай зақымға жауап бермеймін*.

4 -қадам: Қорытынды тест

Сондықтан берілген кодты Arduino -ға жүктеңіз және күшейтілген сигналды A0 түйреуішіне қосыңыз.

Және барлық жерге қосылатын түйреуіштерді ортақ жерге қосуды ұмытпаңыз.

Және тек музыка тыңдаудан ләззат алыңыз.

Ұсынылған: