
Mundarija:
2025 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2025-01-23 15:14




Salom bolalar, Bu mening boshqa o'qituvchi qismimning ikkinchi qismi (bu juda qiyin edi), asosan, men ushbu loyihada Arduino -dagi ADC va TIMER -dan audio signalni PWM signaliga aylantirish uchun foydalanganman.
Bu mening oldingi ko'rsatmaga qaraganda ancha oson, agar ko'rishni istasangiz, bu mening birinchi ko'rsatmasimning havolasi. havola
Ovoz signalining nazariyasini, bit tezligini, bit chuqurligini, namuna olish tezligini tushunish uchun siz nazariyani mening "Instructable" bo'limidagi oxirgi darsimda o'qishingiz mumkin. Havola yuqorida.
1 -qadam: Ushbu loyihaga kerak bo'lgan narsalar (talablar)
1. Arduino kengashi (biz har qanday taxtadan (328, 2560) foydalanishimiz mumkin, ya'ni Mega, Uno, Mini va hk.
2. Arduino Studio bilan kompyuter.
3. Breadboard yoki Perfboard
4. Simlarni ulash
5. TC4420 (Mosfet haydovchisi yoki shunga o'xshash)
6. Mosfet Power (N yoki P kanali, iltimos, shunga mos ravishda sim o'tkazing) (men N-kanalni ishlatganman)
7. Karnay yoki Flyback transformatori (Ha, siz uni to'g'ri o'qidingiz !!)
8. Mos keladigan quvvat manbai (0-12V) (men o'z ATX quvvat manbaidan foydalanganman)
9. Isitgich (men eski kompyuterimdan qutqarganman).
10. Kuchaytirgich (oddiy musiqa kuchaytirgichi) yoki kuchaytirgich davri.
2 -qadam: ADC nazariyasi - PWM


Shunday qilib, men ushbu loyihada Arduino -ning ADC -da ovozli signaldan ma'lumotlarni tanlash uchun foydalanganman.
ADC (Analog-to-Digital Converter) nomi aniqlaganidek, ADC analog signalni raqamli namunalarga o'zgartiradi. Va maksimal 10-bit chuqurlikdagi Arduino uchun. Ammo bu loyiha uchun biz 8-bitli namuna olamiz.
Arduino ADC -dan foydalanganda biz ADC_reference kuchlanishini yodda tutishimiz kerak.
Arduino Uno 1.1V, 5V (kodda belgilanadigan ichki mos yozuvlar) yoki tashqi havolani (biz AREF piniga tashqi tomondan qo'llashimiz kerak) taklif qiladi.
Mening tajribamga ko'ra, ADCdan yaxshi natija olish uchun mos yozuvlar zo'riqishida kamida 2,0V bo'lishi kerak. 1.1V hech bo'lmaganda men uchun yaxshi ishlamadi. (Shaxsiy tajriba)
*MUHIM**MUHIM ** MUHIM ** MUHIM ** MUHIM*
Kuchaytirgich yoki kuchaytirgich pallasida 5V kuchlanishli (Maks. Kuchlanish) kuchaytirilgan ovozli signalni ishlatishimiz kerak
Chunki men loyihamiz uchun 5V ichki kuchlanish ma'lumotnomasini o'rnatdim. Men odatdagi kuchaytirgich (musiqiy kuchaytirgich) yordamida kuchaytirilgan signalni ishlataman, u asosan bizning uyimizda mavjud yoki siz uni o'zingiz qura olasiz.
Shunday qilib, endi asosiy qism. Namuna olish tezligi, bu bizning ADC sekundiga qancha namuna oladi, konvertatsiya tezligi qanchalik ko'p bo'lsa, chiqish natijasi shunchalik yaxshi bo'ladi, kirish to'lqiniga o'xshash bo'ladi.
Shunday qilib, biz ADC soatini 500 kHz ga o'rnatib, ushbu loyihada 33,33 kHz chastotali namuna olish tezligidan foydalanamiz, bu qanday bo'lishini tushunish uchun biz Atmega (328p) chipining ma'lumotlar sahifasida ADC vaqt sahifasini ko'rishimiz kerak.
Ko'rib turganimizdek, bitta namunani avtomatik tanlash bilan to'ldirish uchun bizga 13,5 ADC soat tsikli kerak. 500 KGts chastotada, bu bitta ADC tsikli uchun 1/500Khz = 2uS, ya'ni avtomatik namuna olishda namunani to'ldirish uchun 13,5*2uS = 27uS kerak. Mikrokontrollerga 3uS ko'proq berish (xavfsiz tomoni uchun), bitta namuna uchun jami 30uS qilish.
Shunday qilib, 30uS da 1 namuna 1/30uS = 33.33 KSamples/S ni bildiradi.
Namuna olish tezligini o'rnatish, Arduino -ning TIMER0 -ga bog'liq, chunki ADC avtomatik namuna olish tetiği bizning holatimizga bog'liq, buni kod va ma'lumotlar jadvalida ko'rib turganingizdek, biz OCR0A = 60 qiymatini yaratdik. ???)
Chunki ma'lumotlar jadvalida berilgan formulaga muvofiq.
chastota (yoki bu erda namuna tezligi) = Arduino/Prescaler soat chastotasi*OCR0A qiymati (bizning holatda)
Biz xohlagan chastota yoki namuna tezligi = 33.33KHz
Soat chastotasi = 16 MGts
Prescaler qiymati = 8 (bizning holatda)
OCR0A qiymati = biz topmoqchimizmi?
bu shunchaki OCR0A = 60 ni beradi, bizning Arduino kodimizda ham.
TIMER1 ovozli signal uzatish to'lqinlari uchun ishlatiladi va men bu haqda juda ko'p tafsilotlarni aytmayman.
Shunday qilib, bu Arduino bilan PWM uchun ADC kontseptsiyasining qisqa nazariyasi edi.
3 -qadam: sxematik

Sxemada ko'rsatilganidek, barcha komponentlarni ulang. Shunday qilib, sizda ikkita variant bor:-
1. Karnayni ulang (5V ga ulangan)
2. Flyback transformatorini ulang (12V ga ulangan)
Men ikkalasini ham sinab ko'rdim. Va ikkalasi ham juda yaxshi ishlaydi.
*MUHIM**MUHIM ** MUHIM ** MUHIM ** MUHIM*Biz kuchaytirgich yoki kuchaytirgich pallasida 5V kuchlanishli maksimal kuchlanishli ovozli signalni ishlatishimiz kerak
Ogohlantirishlar:-
*Men Flyback transformatorini ehtiyotkorlik bilan ishlatishni maslahat beraman, chunki u xavfli bo'lishi mumkin, chunki u yuqori kuchlanish hosil qiladi. Va men hech qanday zarar ko'rmayman*.
4 -qadam: Yakuniy test
Shunday qilib, berilgan kodni Arduino -ga yuklang va kuchaytirilgan signalni A0 piniga ulang.
Va barcha pimlarni umumiy erga ulashni unutmang.
Va faqat musiqa tinglashdan zavqlaning.
Tavsiya:
Videoni ESP32 bilan ijro etish: 10 qadam (rasmlar bilan)

ESP32 yordamida videoni ijro etish: Ushbu ko'rsatmalarni ESP32 yordamida video va audio ijro etish haqida nimadir ko'rsatiladi
Gapirish Arduino - Hech qanday modulsiz Arduino bilan MP3 ijro etish - PC fayllari yordamida Arduino -dan Mp3 faylini ijro etish: 6 qadam

Gapirish Arduino | Hech qanday modulsiz Arduino bilan MP3 ijro etish | PC faylini ishlatib, Arduino -dan Mp3 faylini ijro etish: Bu erda biz audio faylni ishlatmasdan mp3 faylini arduino -da qanday ijro etishni bilib olamiz, bu erda biz Arduino uchun 8 -gigagertsli chastotali 16 -bitli PCM -ni o'ynaydigan PCM kutubxonasidan foydalanamiz
Karnay yoki Flyback transformatorida PWM yordamida Arduino yordamida qo'shiqlarni (MP3) ijro etish: 6 qadam (rasmlar bilan)

Qo'shiqlarni (MP3) Arduino bilan PWM yordamida karnay yoki Flyback transformatorida ijro eting: Salom bolalar, bu mening birinchi ko'rsatmam, sizga yoqadi degan umiddaman !! Asosan, men ushbu loyihada Arduino va noutbuk o'rtasidagi ketma -ket aloqani qo'lladim. musiqa ma'lumotlarini noutbukdan Arduino -ga uzatish. Va Arduino TIMERS -dan foydalanish
Eng zo'r xoldinglar: Men eng zo'r musiqani ijro etish uchun eski telefonni buzdim: 13 qadam (rasmlar bilan)

Eng zo'r xoldinglar: Men eng zo'r musiqani ijro etish uchun eski telefonni buzdim: https: //youtu.be/Ma4QnfQ7DxoWell … Ishonchim komilki, siz shunchaki musiqani ushlab turadigan telefonni xohlamaysiz … Lekin "Ish stoli" ning eng oddiy hacki bilan boshqa ko'plab qiziqarli loyihalarni amalga oshirish mumkin. telefonlar.
Ovozli ovozli fayllarni (Wav) Arduino va DAC yordamida ijro etish: 9 qadam

Ovozli ovozli fayllarni (Wav) Arduino va DAC yordamida ijro etish: Audino SD -kartangizdan wav faylli ovozni ijro etish. Bu ko'rsatma sizga sdCard -dagi wav faylini dinamikdan oddiy zanjir orqali qanday ijro etish mumkinligini ko'rsatib beradi. Wav fayli 8 bitli mono bo'lishi kerak. Menda 44 kHz chastotali fayllarni ijro etish muammosi yo'q edi