
Съдържание:
2025 Автор: John Day | [email protected]. Последно модифициран: 2025-01-23 14:36




Здравейте момчета, Това е втората част от другата ми инструкция (която беше много трудна). По принцип в този проект използвах 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 на 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.
И не забравяйте да свържете всички заземителни щифтове към обща маса.
И просто се наслаждавайте на слушането на музика.
Препоръчано:
I2C / IIC LCD дисплей - Използвайте SPI LCD към I2C LCD дисплея, използвайки SPI към IIC модул с Arduino: 5 стъпки

I2C / IIC LCD дисплей | Използвайте SPI LCD към I2C LCD дисплея Използване на SPI към IIC модул с Arduino: Здравейте момчета, тъй като нормалният SPI LCD 1602 има твърде много кабели за свързване, така че е много трудно да го свържете с arduino, но на пазара има един модул, който може конвертирате SPI дисплея в IIC дисплей, така че тогава трябва да свържете само 4 проводника
Възпроизвеждане на песни (MP3) с Arduino Използване на PWM на високоговорител или Flyback трансформатор: 6 стъпки (със снимки)

Пускайте песни (MP3) с Arduino, използвайки PWM на високоговорител или Flyback Transformer: Здравейте момчета, това е първият ми инструктаж, надявам се да ви хареса !! По принцип в този проект използвах серийната комуникация между моя Arduino и моя лаптоп, за предаване на музикални данни от моя лаптоп към Arduino. И използвайки таймерите Arduino t
Пускайте песни с помощта на стъпков двигател !!: 11 стъпки (със снимки)

Пускайте песни с помощта на стъпков двигател !!: Този проект е за проектиране на прост динамичен интерфейс, който ще позволи да взаимодействате със стъпков двигател по два различни начина. Първият интерфейс ще контролира посоката и скоростта на стъпковия двигател чрез използването на прост графичен интерфейс, който h
Как да изтеглите песни или други неща от DVD като MP3: 4 стъпки

Как да изтеглите песни или други неща от DVD като MP3: Ако имате DualDisc с песни, които искате да слушате на Ipod, или нормален DVD с може би коментар, който искате да слушате Ipod, прочетете останалото, за да направите това. Необходими елементи-компютър, ръце, мозък, DVD, Ipod
20 000 000 Flyback трансформатор: 5 стъпки

20,000v Flyback Transformer: Това е Flyback трансформатор, свързан с кондензатор за бързо зареждане и 2 вериги на светкавицата на камерата