- IC PT2258
- Bagaimana PT2258 IC Berfungsi
- Skema
- Komponen Diperlukan
- Kod Arduino
- Menguji Litar Kawalan Kelantangan Audio Digital
- Peningkatan Lanjutan
Potensiometer adalah alat mekanikal yang mana yang dapat menetapkan rintangan sesuai dengan nilai yang diinginkan, sehingga mengubah arus yang melaluinya. Terdapat banyak aplikasi untuk potensiometer, tetapi kebanyakan potensiometer digunakan sebagai pengatur kelantangan untuk penguat audio.
Potensiometer tidak mengawal penambahan isyarat, tetapi membentuk pembahagi voltan dan itulah sebabnya isyarat input dilemahkan. Oleh itu, dalam projek ini, saya akan menunjukkan kepada anda cara membina Pengawal Volume Digital anda dengan IC PT2258 dan menghubungkannya dengan Arduino untuk mengawal kelantangan litar penguat. Anda juga boleh memeriksa pelbagai litar berkaitan Audio di sini termasuk meter VU, litar kawalan nada, dll.
IC PT2258
Seperti yang telah saya sebutkan sebelumnya, PT2258 adalah IC yang dibuat untuk digunakan sebagai Pengawal Volume Elektronik 6- Saluran, IC ini menggunakan teknologi CMOS yang direka khas untuk aplikasi audio-video berbilang saluran.
IC ini menyediakan Antaramuka Kawalan I2C dengan julat pelemahan 0 hingga -79dB pada 1dB / langkah dan hadir dalam pakej DIP atau SOP 20-pin.
Beberapa ciri asas merangkumi,
- 6-Saluran input dan output (Untuk 5.1 Sistem Audio Rumah)
- Alamat I2C yang boleh dipilih (Untuk Aplikasi rantaian Daisy)
- Pemisahan saluran tinggi (Untuk Aplikasi Kebisingan Rendah)
- Nisbah S / N> 100dB
- Voltan operasi adalah 5 hingga 9V
Bagaimana PT2258 IC Berfungsi
IC ini menghantar dan menerima data dari mikrokontroler melalui garis SCL dan SDA. SDA dan SCL membentuk antara muka bas. Garis-garis ini mesti ditarik tinggi oleh dua perintang 4.7K untuk memastikan operasi yang stabil.
Sebelum kita pergi ke operasi perkakasan sebenar, berikut adalah penerangan fungsional terperinci IC. jika anda tidak mahu mengetahui semua ini, anda boleh melangkau bahagian ini kerana semua bahagian berfungsi diuruskan oleh perpustakaan Arduino.
Pengesahan Data
- Data pada garis SDA dianggap stabil apabila isyarat SCL TINGGI.
- Keadaan TINGGI dan RENDAH dari garis SDA hanya berubah apabila SCL RENDAH.
Keadaan Mula dan Hentikan
Keadaan Mula diaktifkan apabila
- SCL ditetapkan ke TINGGI dan
- SDA beralih dari Negeri TINGGI ke RENDAH.
Keadaan Berhenti diaktifkan apabila
- SCL ditetapkan ke TINGGI dan
- SDA beralih dari Negeri RENDAH ke TINGGI
Catatan! Maklumat ini sangat berguna untuk menyahpepijat isyarat.
Format Data
Setiap bait yang dihantar ke Saluran SDA terdiri daripada 8 bit, yang membentuk bait. Setiap bait mesti diikuti oleh Acknowledge Bit.
Ucapan terima kasih
Ucapan terima kasih memastikan operasi yang stabil dan betul. Semasa Denyut Jam Akui, mikrokontroler menarik pin SDA TINGGI pada saat yang tepat ini peranti periferal (pemproses audio) menarik-turun (RENDAH) garis SDA.
Peranti periferal (PT2258) kini ditujukan & ia harus menghasilkan pengakuan setelah menerima bait, jika tidak, garis SDA akan tetap berada pada tahap Tinggi semasa Pulse Jam Kesembilan (ke-9). Sekiranya ini berlaku, pemancar induk akan menghasilkan Maklumat BERHENTI untuk membatalkan pemindahan.
Ini membersihkan tidak perlu adanya pemindahan data yang sah.
Pemilihan Alamat
Alamat I2C IC ini bergantung pada keadaan CODE1 (Pin No.17) dan CODE2 (Pin No.4).
KOD1 (PIN No. 17) |
KOD 2 (PIN No. 4) |
ALAMAT HEX |
0 |
0 |
0X80 |
0 |
1 |
0X84 |
1 |
0 |
0X88 |
1 |
1 |
0X8C |
Logik Tinggi = 1
Logik Rendah = 0
Protokol antara muka
Protokol antara muka terdiri daripada yang berikut:
- Sedikit permulaan
- Byte Alamat Cip
- ACK = Mengakui sedikit
- Bait Data
- Sedikit Berhenti
Pengemasan yang sedikit
Setelah IC dihidupkan, ia perlu menunggu sekurang-kurangnya 200ms sebelum menghantar bit data pertama, jika tidak, pemindahan data mungkin gagal.
Selepas penundaan, perkara pertama yang perlu dilakukan adalah membersihkan daftar dengan menghantar “0XC0” vi garis I2C, ini memastikan pengoperasian yang betul.
Langkah di atas membersihkan keseluruhan daftar, sekarang kita perlu menetapkan nilai ke daftar, jika tidak, daftar menyimpan nilai sampah dan kita mendapat output freckled.
Untuk memastikan penyesuaian isipadu yang betul, perlu mengirim gandaan 10dB diikuti dengan kod 1dB ke pelengkap secara berurutan, jika tidak, IC boleh berkelakuan tidak normal. Rajah di bawah menjelaskannya dengan lebih jelas.
Kedua-dua kaedah di atas akan berfungsi dengan baik.
Untuk memastikan pengoperasian yang betul, pastikan bahawa kecepatan pemindahan data I2C tidak pernah melebihi 100KHz.
Itulah bagaimana anda boleh menghantar bait ke IC dan mengurangkan isyarat input. Bahagian di atas adalah untuk mengetahui bagaimana IC berfungsi, tetapi seperti yang telah saya katakan sebelumnya, kami akan menggunakan perpustakaan Arduino untuk berkomunikasi dengan IC yang menguruskan semua kod keras, dan kami hanya perlu membuat beberapa panggilan fungsi.
Semua maklumat di atas diambil dari lembar data, sila rujuk untuk maklumat lebih lanjut.
Skema
Gambar di atas menunjukkan skema ujian Litar Kawalan Isipadu berdasarkan PT2258. Ia diambil dari lembar data dan diubah mengikut keperluan.
Untuk demonstrasi, litar dibina pada papan roti tanpa pateri dengan bantuan skema yang ditunjukkan di atas.
Catatan! Semua komponen diletakkan sedekat mungkin untuk mengurangkan induktansi dan daya tahan kapasitansi parasit.
Komponen Diperlukan
- PT2258 IC - 1
- Pengawal Arduino Nano - 1
- Papan Roti Generik - 1
- Terminal Skru 5mm x 3 - 1
- Butang Tekan - 1
- Perintang 4.7K, 5% - 2
- Perintang 150K, 5% - 4
- Perintang 10k, 5% - 2
- Kapasitor 10uF - 6
- Kapasitor 0.1uF - 1
- Wayar Jumper - 10
Kod Arduino
Untuk kesederhanaan, saya akan menggunakan perpustakaan PT2258 dari GitHub, yang dibuat oleh sunrutcon.
Ini adalah perpustakaan bertulis yang sangat baik, itulah sebabnya saya memutuskan untuk menggunakannya, tetapi kerana sangat lama, ia sedikit buggy dan kami perlu memperbaikinya sebelum dapat menggunakannya.
Pertama, muat turun & ekstrak perpustakaan dari repositori GitHub.
Anda akan mendapat dua fail di atas setelah pengekstrakan.
#sertakan #sertakan
Seterusnya, buka fail PT2258.cpp dengan Editor Teks kegemaran anda, saya menggunakan Notepad ++.
Anda dapat melihat bahawa "w" perpustakaan wayar ditulis dengan huruf kecil, yang tidak sesuai dengan versi Arduino terbaru, & anda perlu menggantinya dengan huruf "W", itu saja.
Kod lengkap untuk Pengawal Volume PT2258 boleh didapati di hujung bahagian ini. Di sini bahagian penting program dijelaskan.
Kami memulakan kod dengan memasukkan semua fail perpustakaan yang diperlukan. Perpustakaan Wire digunakan untuk berkomunikasi antara Arduino dan PT2258. Perpustakaan PT2258 mengandungi semua maklumat dan penghargaan masa penting I2C. The ezButton perpustakaan digunakan untuk antara muka dengan tolak-butang.
Daripada menggunakan gambar kod di bawah, Salin semua contoh kod dari fail kod dan jadikannya diformat seperti yang biasa kita lakukan dalam projek lain
#sertakan
Seterusnya, buat objek untuk dua butang dan perpustakaan PT2258 itu sendiri.
PT2258 pt2258; butang ezButton_1 (2); butang ezButton_2 (4);
Seterusnya, tentukan tahap kelantangan. Ini adalah tahap kelantangan lalai yang akan dimulakan oleh IC ini.
Isipadu int = 40;
Seterusnya, mulakan UART, dan tetapkan frekuensi jam untuk bas I2C.
Serial.begin (9600); Wire.setClock (100000);
Sangat penting untuk menetapkan jam I2C, jika tidak, IC tidak akan berfungsi kerana frekuensi jam maksimum yang disokong oleh IC ini adalah 100KHz.
Seterusnya, kami melakukan sedikit pengemasan dengan pernyataan if if untuk memastikan IC berkomunikasi dengan betul dengan bas I2C.
Sekiranya (! Pt2258.init ()) Serial.printIn ("PT2258 Berjaya Dimulakan"); Else Serial.printIn ("Gagal Memulakan PT2258");
Seterusnya, kami menetapkan kelewatan penurunan untuk menekan butang.
Button_1.setDebounceTime (50); Button_2.setDebounceTime (50);
Akhirnya, mulakan IC PT2258 dengan menyiapkannya dengan kelantangan saluran dan nombor Pin lalai.
/ * Meminati PT dengan kelantangan lalai dan Pin * / Pt2258.setChannelVolume (kelantangan, 4); Pt2258.setChannelVolume (kelantangan, 5);
Ini menandakan berakhirnya bahagian Persediaan Tidak Sah () .
Di bahagian Gelung , kita perlu memanggil fungsi gelung dari kelas butang; itu adalah norma perpustakaan.
Butang_1.loop (); // Norma perpustakaan Button_2.loop (); // Norma perpustakaan
Di bawah jika seksyen adalah untuk mengurangkan kelantangan.
/ * jika butang 1 ditekan jika keadaan benar * / Jika (butang_1. tertekan ()) {Jilid ++; // Menambah pembilang kelantangan. // Pernyataan jika ini memastikan kelantangan tidak melebihi 79 Jika (kelantangan> = 79) {Jilid = 79; } Serial.print ("kelantangan:"); // mencetak tahap kelantangan Serial.printIn (kelantangan); / * tetapkan kelantangan untuk saluran 4 Yang terdapat dalam PIN 9 IC PT2558 * / Pt2558.setChannelVolume (kelantangan, 4); / * tetapkan kelantangan untuk saluran 5 Yang merupakan PIN 10 IC PT2558 * / Pt2558.setChannelVolume (kelantangan, 5); }
Bahagian bawah jika mahu menambah kelantangan.
// Perkara yang sama berlaku untuk butang 2 Jika (butang_2.tekanan ()) {Jilid--; // ini jika pernyataan memastikan tahap kelantangan tidak berada di bawah sifar. Sekiranya (isipadu <= 0) Isipadu = 0; Serial.print ("kelantangan:"); Serial.printIn (kelantangan); Pt2258.setChannelVolume (kelantangan, 4); Pt2558.setChannelVolume (kelantangan, 5); }
Menguji Litar Kawalan Kelantangan Audio Digital
Untuk menguji litar, alat berikut digunakan
- Pengubah yang mempunyai Ketuk 13-0-13
- 2 pembesar suara 4Ω 20W sebagai beban.
- Sumber audio (Telefon)
Dalam artikel sebelumnya, saya telah menunjukkan kepada anda cara membuat Amplifier Audio 2x32 Watt Mudah dengan IC TDA2050, saya akan menggunakannya untuk demonstrasi ini juga.
Saya telah merosakkan potensiometer mekanikal dan memendekkan dua plumbum dengan dua kabel pelompat kecil.
Kini, dengan bantuan dua butang tekan, kelantangan penguat dapat dikawal.
Peningkatan Lanjutan
Litar dapat diubahsuai lebih jauh untuk meningkatkan prestasinya. Penambahbaikan seperti litar dapat dilakukan pada PCB untuk menghilangkan lagi kebisingan yang dihasilkan oleh bahagian digital IC. Kami juga dapat menambahkan penapis tambahan untuk menolak suara frekuensi tinggi. Juga, periksa litar Penguat Audio lain dan projek berkaitan Audio yang lain.
Saya harap anda menyukai artikel ini dan mengetahui sesuatu yang baru. Sekiranya anda mempunyai keraguan, anda boleh bertanya dalam komen di bawah atau boleh menggunakan forum kami untuk perbincangan terperinci.