İçindekiler:
- Adım 1: Bu Proje İçin İhtiyacımız Olan Şeyler (Gereksinimler)
- Adım 2: ADC'den PWM'ye Teori
- Adım 3: Şematik
- Adım 4: Son Test
Video: Flyback Transformer veya Hoparlörde ADC - PWM Kullanarak Arduino İle Şarkı Çalın: 4 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:19
Selam beyler, Bu, başka bir talimatımın ikinci kısmı (bu çok zordu), Temel olarak, Bu Projede, Ses Sinyalini bir PWM Sinyaline dönüştürmek için Arduino'mdaki ADC ve ZAMANLAYICILARI kullandım.
Bu, önceki Eğitilebilirliğimden çok daha kolay, Görmek istiyorsanız, ilk Eğitilebilirliğimin bağlantısı burada. bağlantı
Ses sinyali teorisini anlamak için Bit Hızı, Bit derinliği, Örnekleme hızı, Teoriyi Instructable ile ilgili son dersimde okuyabilirsiniz. Bağlantı yukarıda.
Adım 1: Bu Proje İçin İhtiyacımız Olan Şeyler (Gereksinimler)
1. Arduino Board (herhangi bir Board (328, 2560) yani Mega, Uno, Mini, vb. ancak belirli farklı pinlerle kullanabiliriz)
2. Arduino Studio'lu PC.
3. Breadboard veya Perfboard
4. Bağlantı Kabloları
5. TC4420 (Mosfet sürücüsü veya benzeri bir şey)
6. Power Mosfet(N veya P kanalı, lütfen uygun şekilde kablolayın) (N-kanal kullandım)
7. Hoparlör veya Flyback Transformer(Evet doğru okudunuz!!)
8. Uygun Güç Kaynağı (0-12V) (Kendi ATX Güç Kaynağımı kullandım)
9. Isı Emici (Eski bilgisayarımdan kurtardım).
10. Bir Amplifikatör (normal Müzik Amplifikatörü) veya Amplifikatör Devresi.
Adım 2: ADC'den PWM'ye Teori
Bu Projede, bir Ses Sinyalinin veri örneklemesini yapmak için yerleşik Arduino ADC'sinde kullandım.
ADC(Analog-Dijital Dönüştürücü) adından da anlaşılacağı gibi, ADC Analog sinyali Dijital örneklere dönüştürür. Ve maksimum 10 bit derinliğe sahip Arduino için. Ancak bu Proje için 8-bit Örnekleme kullanacağız.
Arduino'nun ADC'sini kullanırken, ADC_referans Voltajını aklımızda tutmalıyız.
Arduino Uno, 1.1V, 5V (kodda tanımlanabilen dahili referans) veya harici bir referans (harici olarak AREF pinine uygulamamız gereken) sunar.
Tecrübelerime göre, ADC'den iyi bir sonuç almak için referans voltaj olarak minimum 2.0V kullanılmalıdır. 1.1V en azından benim için iyi gitmedi. (Kişisel deneyim)
*ÖNEMLİ* *ÖNEMLİ**ÖNEMLİ**ÖNEMLİ**ÖNEMLİ*
Bir Amplifikatörden veya bir Amplifikatör Devresinden, tepe voltajı (Maks. Voltaj) 5V olan güçlendirilmiş bir ses sinyali kullanmamız gerekiyor
Çünkü Projemiz için 5V dahili Voltaj Referansını ayarladım. Ve çoğunlukla evimizde bulunan veya kendiniz için bir tane oluşturabileceğiniz normal bir Amplifikatör (Müzik Amplifikatörü) kullanarak güçlendirilmiş bir Sinyal kullanıyorum.
Yani şimdi ana kısım. Örnekleme Hızı, yani ADC'mizin saniyede ne kadar örnek aldığı, dönüşüm oranı daha fazla, çıktı sonucu daha iyi olacak, girdi ile karşılaştırıldığında çıktı dalgası daha benzer olacaktır.
Bu projede ADC saatini 500Khz olarak ayarlayarak 33.33Khz örnekleme hızı kullanacağız. Bunun nasıl olduğunu anlamak için Atmega(328p) çipinin veri sayfasındaki ADC Zamanlama Sayfasını görmemiz gerekiyor.
Bir örneği otomatik örnekleme ile tamamlamak için 13,5 ADC saat döngüsüne ihtiyacımız olduğunu görebiliriz. 500Khz frekans ile, bir ADC döngüsü için 1/500Khz=2uS anlamına gelir; bu, otomatik örnekleme kullanıldığında bir örneği tamamlamak için 13,5*2uS=27uS gerektiği anlamına gelir. Mikrodenetleyiciye 3uS fazlasını vererek(güvenli taraf için), Bir numune için toplamda 30uS yapmak.
Yani 30uS'de 1 Örnek 1/30uS=33.33 KSörnek/S anlamına gelir.
Arduino'nun TIMER0'ına bağlı olan Örnekleme oranını ayarlamak için, ADC otomatik örnekleme tetikleyicisi buna bağlı olduğundan, bizim durumumuzda kod ve veri sayfasında da görebileceğiniz gibi, OCR0A=60 değerini yaptık(Neden öyleyse ???)
Çünkü veri sayfasında verilen formüle göre.
frekans(veya burada Örnek Hızı)=Arduino/Prescaler'ın saat frekansı*OCR0A değeri (bizim durumumuzda)
İstediğimiz Frekans veya Örnekleme oranı=33.33KHz
Saat frekansı=16MHz
Ön ölçekleyici değeri=8(bizim durumumuzda)
OCR0A=bulmak istediğimiz değeri??
Arduino kodumuzda da OCR0A=60 verir.
TIMER1, bir ses sinyalinin taşıyıcı dalgası için kullanılır ve bunun çok fazla detayına girmeyeceğim.
Yani, Arduino ile ADC'den PWM'ye kavramının kısa teorisi buydu.
Adım 3: Şematik
Tüm Bileşenleri şemada gösterildiği gibi bağlayın. Yani burada iki seçeneğiniz var: -
1. Bir Hoparlör Bağlayın (5V ile Bağlı)
2. Bir Flyback Trafo Bağlayın (12V ile Bağlı)
Her ikisini de denedim. Ve ikisi de oldukça iyi çalışıyor.
*ÖNEMLİ* *ÖNEMLİ**ÖNEMLİ**ÖNEMLİ**ÖNEMLİ*Bir Amplifikatörden veya bir Amplifikatör Devresinden gelen ve tepe voltajı(Maks. Voltaj) 5V olan güçlendirilmiş bir ses sinyali kullanmamız gerekiyor
Sorumluluk Reddi: -
* Yüksek Gerilim ürettiği için tehlikeli olabileceğinden Flyback Transformatör'ü Tedbirli kullanmanızı tavsiye ederim. Ve herhangi bir zarardan sorumlu olmayacağım.*
Adım 4: Son Test
Bu yüzden verilen kodu Arduino'nuza yükleyin ve Güçlendirilmiş Sinyali A0 pinine bağlayın.
Ve tüm topraklama pinlerini ortak bir toprağa bağlamayı unutmayın.
Ve Sadece Müzik Dinlemenin Keyfini Çıkarın.
Önerilen:
Arduino ile Neopixel Ws2812 LED veya LED STRIP veya Led Ring Nasıl Kullanılır: 4 Adım
Arduino ile Neopixel Ws2812 LED veya LED STRIP veya Led Ring Nasıl Kullanılır: Merhaba arkadaşlar Neopixel led Strip çok popüler olduğundan ve ws2812 led strip olarak da adlandırılır. Çok popülerler çünkü bu led şeritlerde her bir led'i ayrı ayrı ele alabiliyoruz, yani birkaç ledin tek renkte parlamasını istiyorsanız,
Sonic Pi'de Notalar Kullanarak Şarkı Nasıl Kodlanır: 5 Adım
Sonic Pi'de Notalar Kullanarak Bir Şarkı Nasıl Kodlanır: Bu talimat, Sonic Pi'de notalar kullanarak bir şarkıyı kodlarken kullanılacak bazı temel adımları ve kod parçalarını ana hatlarıyla açıklayacaktır! Bitmiş parçanıza lezzet katmaya çalışmak için milyonlarca başka kod parçası var, bu yüzden her zaman oynadığınızdan emin olun
AI ve YouTube Kullanarak CD Çalar Olmadan CD Çalın: 10 Adım (Resimlerle)
CD Çalar Olmadan CD Çalın, AI ve YouTube Kullanarak: CD'lerinizi çalmak istiyorsunuz ama artık CD çalarınız yok mu? CD'lerinizi kopyalamak için zamanınız olmadı mı? Onları kopyaladım ama dosyalar gerektiğinde kullanılamıyor mu?Sorun değil. Bırakın AI (yapay zeka) CD'nizi tanımlasın ve YouTube onu oynatsın!Bir Android uygulaması yazdım
Arduino İle Müzik Çalın!: 5 Adım (Resimlerle)
Arduino ile Müzik Çalın!: Bu derste size Arduino UNO ve SD Kart modülü kullanarak nasıl müzik çaldığımı göstereceğim.SPI İletişimini kullanacağız.Hadi başlayalım
Step Motor Kullanarak Şarkı Çalın!!: 11 Adım (Resimlerle)
Step Motor Kullanarak Şarkı Çalın!!: Bu proje, bir step motorla iki farklı şekilde etkileşime izin verecek basit bir dinamik arayüz tasarlamakla ilgilidir. İlk arayüz, step motorun yönünü ve hızını bir basit GUI, hangi