Пускайте песни с Arduino, използвайки ADC към PWM на Flyback трансформатор или високоговорител: 4 стъпки
Пускайте песни с Arduino, използвайки ADC към PWM на Flyback трансформатор или високоговорител: 4 стъпки
Anonim
Пускайте песни с Arduino, използвайки ADC към PWM на Flyback Transformer или високоговорител
Пускайте песни с Arduino, използвайки ADC към PWM на Flyback Transformer или високоговорител
Пускайте песни с Arduino, използвайки ADC към PWM на Flyback Transformer или високоговорител
Пускайте песни с Arduino, използвайки ADC към PWM на Flyback Transformer или високоговорител
Пускайте песни с Arduino, използвайки ADC към PWM на Flyback Transformer или високоговорител
Пускайте песни с Arduino, използвайки ADC към PWM на Flyback Transformer или високоговорител
Пускайте песни с Arduino, използвайки ADC към PWM на Flyback Transformer или високоговорител
Пускайте песни с Arduino, използвайки ADC към PWM на Flyback Transformer или високоговорител

Здравейте момчета, Това е втората част от другата ми инструкция (която беше много трудна). По принцип в този проект използвах ADC и ТАЙМЕРИ на моя Arduino за преобразуване на аудио сигнал в PWM сигнал.

Това е много по -лесно от предишния ми Instructable, Ето линка на първия ми Instructable, ако искате да видите. връзка

За да разберете теорията на аудио сигнала, битрейт, битова дълбочина, честота на дискретизация, можете да прочетете теорията в последния ми урок на Instructable. Връзката е по -горе.

Стъпка 1: Нещата, от които се нуждаем за този проект (изисквания)

1. Arduino Board (можем да използваме всяка дъска (328, 2560), т.е. Mega, Uno, Mini и т.н., но със специфични различни щифтове)

2. PC с Arduino Studio.

3. Breadboard или Perfboard

4. Свързване на проводници

5. TC4420 (драйвер на Mosfet или нещо такова)

6. Захранване на Mosfet (N или P канал, моля свържете след това съответно) (използвал съм N-канал)

7. Високоговорител или Flyback трансформатор (Да, прочетохте го правилно !!)

8. Подходящо захранване (0-12V) (използвал съм собствено ATX захранване)

9. Радиатор (спасих го от стария си компютър).

10. Усилвател (нормален музикален усилвател) или схема на усилвател.

Стъпка 2: Теория на ADC към PWM

Теория на ADC към PWM
Теория на ADC към PWM
Теория на ADC към PWM
Теория на ADC към PWM

Така че в този проект използвах вграден ADC на Arduino за вземане на проби от данни на аудио сигнал.

ADC (аналогово-цифров преобразувател), както името определя, ADC преобразува аналоговия сигнал в цифрови проби. И за Arduino с максимум 10-битова дълбочина. Но за този проект ще използваме 8-битова извадка.

Докато използваме ADC на Arduino, трябва да имаме предвид напрежението ADC_reference.

Arduino Uno предлага 1.1V, 5V (Вътрешна референция, която може да бъде зададена в код) или външна референция (която трябва да приложим външно към AREF пина).

Според моя опит, минимум 2.0V трябва да се използва като референтно напрежение, за да се получи добър резултат от ADC. Тъй като 1.1V поне не ми вървеше. (Личен опит)

*ВАЖНО**ВАЖНО ** ВАЖНО ** ВАЖНО ** ВАЖНО*

Трябва да използваме усилен аудио сигнал от усилвател или усилвателна верига с пиково напрежение (макс. Напрежение) от 5V

Защото зададох вътрешното референтно напрежение от 5V за нашия проект. И аз използвам усилен сигнал, като използвам нормален усилвател (музикален усилвател), който е най -вече наличен в нашето домакинство или можете да създадете такъв за себе си.

Така че сега основната част. Честота на дискретизация, която е колко проби взема нашият ADC в секунда, повече е процентът на преобразуване, по -добър ще бъде изходният резултат, по -сходни ще бъдат изходните вълни в сравнение с входните.

Така че, ние ще използваме честота на дискретизация от 33.33Khz в този проект, като настроим часовника на ADC на 500Khz. За да разберем как е така, трябва да видим ADC Timing Page в листа с данни на чипа Atmega (328p).

Можем да видим, че се нуждаем от 13,5 цикъла на ADC часовник, за да завършим една проба с автоматично вземане на проби. С честота 500Khz, това означава 1/500Khz = 2uS за един цикъл на ADC, което означава, че са необходими 13,5*2uS = 27uS за завършване на проба, когато се използва автоматично вземане на проби. Като дадете 3uS повече на микроконтролера (за безопасна страна), направете общо 30uS напълно за една проба.

Така че 1 проба при 30uS означава 1/30uS = 33.33 KSample/S.

За да зададете честотата на дискретизация, която зависи от TIMER0 на Arduino, тъй като задействането на автоматичното вземане на проби от ADC зависи от това в нашия случай, както можете да видите и в кода и листа с данни, направихме стойността на OCR0A = 60 (Защо така ???)

Защото според формулата, дадена в листа с данни.

честота (или тук Sample Rate) = Тактова честота на Arduino/Prescaler*Стойност на OCR0A (в нашия случай)

Честота или честота на дискретизация, която искаме = 33,33KHz

Тактова честота = 16MHz

Стойност на предусилвателя = 8 (в нашия случай)

Стойност на OCR0A = искаме да намерим ??

което просто дава OCR0A = 60, също в нашия код на Arduino.

TIMER1 се използва за носеща вълна на аудио сигнал и няма да навлизам в толкова подробности за това.

Това беше кратката теория на концепцията за ADC към PWM с Arduino.

Стъпка 3: Схематично

Схематично
Схематично

Свържете всички компоненти, както е показано на схемата. Тук имате две възможности:-

1. Свържете високоговорител (свързан с 5V)

2. Свържете Flyback трансформатор (свързан с 12V)

Опитах и двете. И двете работят доста добре.

*ВАЖНО**ВАЖНО ** ВАЖНО ** ВАЖНО ** ВАЖНО*Трябва да използваме усилен аудио сигнал от усилвател или усилвателна верига с пиково напрежение (макс. Напрежение) 5V

Опровержение:-

*Препоръчвам да използвате предпазен трансформатор с предпазни мерки, тъй като той може да бъде опасен, защото произвежда високи напрежения. И няма да нося отговорност за никакви щети.*

Стъпка 4: Последен тест

Затова качете дадения код на вашия Arduino и свържете усиления сигнал към щифт A0.

И не забравяйте да свържете всички заземителни щифтове към обща маса.

И просто се наслаждавайте на слушането на музика.

Препоръчано: