- IC PT2258
- Kako radi PT2258 IC
- Shema
- Komponente potrebne
- Arduino kod
- Testiranje kruga za kontrolu glasnoće digitalnog zvuka
- Daljnje poboljšanje
Potenciometar je mehanički uređaj pomoću kojeg se može postaviti otpor prema željenoj vrijednosti, mijenjajući tako struju koja prolazi kroz njega. Postoji mnogo aplikacija za potenciometar, ali uglavnom se potenciometar koristi kao regulator glasnoće za audio pojačala.
Potenciometar ne kontrolira pojačanje signala, ali oblikuje djelitelj napona i zato se ulazni signal oslabljuje. Dakle, u ovom projektu pokazat ću vam kako izraditi svoj digitalni kontroler glasnoće s IC PT2258 i povezati ga s Arduinom za kontrolu glasnoće kruga pojačala. Ovdje također možete provjeriti razne krugove povezane sa zvukom, uključujući VU mjerač, krug za kontrolu tona itd.
IC PT2258

Kao što sam već spomenuo, PT2258 je IC koji je napravljen za upotrebu kao 6 -kanalni elektronički regulator glasnoće, ovaj IC koristi CMOS tehnologiju posebno dizajniranu za višekanalne audio-video aplikacije.
Ovaj IC pruža upravljačko sučelje I2C s opsegom slabljenja od 0 do -79dB pri 1dB / koraku i dolazi u 20-pinskom DIP ili SOP paketu.
Neke od osnovnih značajki uključuju,
- 6-ulazni i izlazni kanali (za 5.1 kućne audio sustave)
- I2C adresa koja se može odabrati (za primjenu lanca tratinčica)
- Odvajanje visokih kanala (za primjenu s malim bukom)
- Omjer S / N> 100dB
- Radni napon je 5 do 9V
Kako radi PT2258 IC
Ovaj IC prenosi i prima podatke od mikrokontrolera putem SCL i SDA linija. SDA i SCL čine sučelje sabirnice. Te crte moraju visoko povući dva otpora od 4,7 K kako bi se osigurao stabilan rad.
Prije nego što prijeđemo na stvarni hardverski rad, evo detaljnog funkcionalnog opisa IC-a. ako ne želite sve ovo znati, možete preskočiti ovaj dio jer svim funkcionalnim dijelom upravlja Arduino knjižnica.
Provjera valjanosti podataka
- Podaci na SDA liniji smatraju se stabilnim kada je SCL signal VISOK.
- Stanja HIGH i LOW na SDA liniji mijenjaju se samo kada je SCL LOW.

Stanje pokretanja i zaustavljanja
Uvjet pokretanja aktivira se kada
- SCL je postavljen na HIGH i
- SDA se prebacuje iz VISOKOG u NISKO stanje.
Uvjet zaustavljanja aktivira se kada
- SCL je postavljen na HIGH i
- SDA se prebacuje iz NISKOG u VISOKO stanje

Bilješka! Ove su informacije vrlo korisne za otklanjanje pogrešaka u signalima.
Format podataka
Svaki bajt poslan na SDA liniju sastoji se od 8 bitova, koji čine bajt. Nakon svakog bajta mora slijediti potvrdni bit.
Priznanje
Potvrda osigurava stabilan i ispravan rad. Tijekom potvrdnog impulsa sata, mikrokontroler povlači SDA pin HIGH u ovom trenutku kada periferni uređaj (audio procesor) povuče (LOW) SDA liniju.

Sada je adresiran periferni uređaj (PT2258) i on mora generirati potvrdu nakon primanja bajta, inače će SDA linija ostati na visokoj razini tijekom devetog (9.) impulsa sata. Ako se to dogodi, glavni odašiljač generirat će STOP informacije kako bi prekinuo prijenos.

To uklanja potrebu za valjanim prijenosom podataka.
Odabir adrese
I2C adresa ovog IC-a ovisi o stanju CODE1 (pin br. 17) i CODE2 (pin br. 4).
|
KOD1 (PIN br. 17) |
KOD2 (PIN br. 4) |
ŠESTAKNA ADRESA |
|
0 |
0 |
0X80 |
|
0 |
1 |
0X84 |
|
1 |
0 |
0X88 |
|
1 |
1 |
0X8C |
Logic High = 1
Logika niska = 0
Protokol sučelja
Protokol sučelja sastoji se od sljedećeg:
- Start bit
- Bajt adrese čipa
- ACK = Potvrdni bit
- Bajt podataka
- Zaustavi malo

Malo domaćinstva
Nakon što se IC uključi, prije prijenosa prvog podatkovnog bita mora pričekati najmanje 200 ms, u protivnom prijenos podataka može zakazati.
Nakon kašnjenja, prvo što treba učiniti je očistiti registar slanjem "0XC0" vi na I2C liniju, što osigurava ispravan rad.

Gornji korak briše cijeli registar, sada moramo postaviti vrijednost registru, inače registar pohranjuje vrijednost smeća i dobit ćemo pjegavi izlaz.
Da bi se osigurale pravilne prilagodbe glasnoće, potrebno je slati umnožak od 10 dB praćen kodom od 1 dB u prigušivač, u suprotnom, IC se može ponašati neobično. Dijagram u nastavku to više pojašnjava.

Obje gore navedene metode funkcionirat će ispravno.
Da biste osigurali ispravan rad, pobrinite se da brzina prijenosa podataka I2C nikada ne prelazi 100KHz.
Tako možete prenijeti bajt na IC i prigušiti ulazni signal. Gornji dio želi naučiti kako IC funkcionira, ali kao što sam već rekao, koristit ćemo Arduino knjižnicu za komunikaciju s IC-om koji upravlja svim hard kodom, a mi samo trebamo uputiti neke pozive funkcija.
Sve gore navedene informacije preuzete su iz tehničkog lista, molimo pogledajte ga za daljnje informacije.
Shema

Gornja slika prikazuje test shemu kruga za regulaciju glasnoće koji se temelji na PT2258. Preuzeto je iz podatkovne tablice i modificirano prema potrebi.
Za demonstraciju, sklop je konstruiran na bezlemljenoj ploči uz pomoć gore prikazane sheme.
Bilješka! Sve su komponente postavljene što je moguće bliže kako bi se smanjila induktivnost i otpor parazitskog kapaciteta.
Komponente potrebne
- PT2258 IC - 1
- Arduino Nano kontroler - 1
- Općeniti oglasni ploča - 1
- Vijčana stezaljka 5 mm x 3 - 1
- Gumb - 1
- Otpornik 4,7 K, 5% - 2
- Otpornik 150K, 5% - 4
- 10k otpornik, 5% - 2
- Kondenzator 10uF - 6
- Kondenzator 0,1uF - 1
- Žica kratkospojnika - 10
Arduino kod
Radi jednostavnosti, koristit ću PT2258 biblioteku iz GitHub-a koju je izradio sunrutcon.
Ovo je vrlo dobro napisana knjižnica, zato sam je odlučio koristiti, ali budući da je vrlo stara, malo je prislušno i moramo je popraviti prije nego što je upotrijebimo.
Prvo preuzmite i izvucite biblioteku iz GitHub spremišta.

Gornje dvije datoteke dobit ćete nakon izdvajanja.
#include #include
Zatim otvorite datoteku PT2258.cpp svojim omiljenim uređivačem teksta, ja koristim Notepad ++.
Možete vidjeti da je "w" u žičnoj knjižnici malim slovima, što je nespojivo s najnovijim verzijama Arduina, i morate ga zamijeniti s velikim slovima "W", to je to.
Potpuni kod za kontroler glasnoće PT2258 možete pronaći na kraju ovog odjeljka. Ovdje su objašnjeni važni dijelovi programa.
Kod započinjemo uključivanjem svih potrebnih datoteka knjižnica. Žična knjižnica koristi se za komunikaciju između Arduina i PT2258. Knjižnica PT2258 sadrži sve ključne I2C podatke o vremenu i potvrde. EzButton knjižnica koristi se sučelje s tipkala.
Umjesto da koristite slike koda ispod, kopirajte sve instance koda iz datoteke koda i učinite ih formatiranima kao što smo to radili u drugim projektima
#include
Zatim izradite objekte za dva gumba i samu PT2258 knjižnicu.
PT2258 pt2258; gumb ezButton_1 (2); gumb ezButton_2 (4);
Zatim definirajte razinu glasnoće. Ovo je zadana razina glasnoće s kojom će započeti ovaj IC.
Int volumen = 40;
Zatim pokrenite UART i postavite frekvenciju takta za I2C sabirnicu.
Serial.begin (9600); Wire.setClock (100000);
Vrlo je važno postaviti I2C sat, inače IC neće raditi jer je maksimalna frekvencija takta koju podržava ovaj IC 100KHz.
Dalje, malo se brinemo o naredbi if else kako bismo osigurali da IC pravilno komunicira s I2C sabirnicom.
Ako (! Pt2258.init ()) Serial.printIn („PT2258 uspješno pokrenut“); Else Serial.printIn ("Nije uspjelo pokretanje PT2258");
Dalje, postavljamo kašnjenje prekida zvuka za tipke.
Button_1.setDebounceTime (50); Button_2.setDebounceTime (50);
Na kraju, pokrenite PT2258 IC postavljanjem zadane glasnoće kanala i broja pina.
/ * Iniciranje PT-a sa zadanom glasnoćom i Pin-om * / Pt2258.setChannelVolume (glasnoća, 4); Pt2258.setChannelVolume (svezak, 5);
Ovo označava kraj odjeljka Void Setup () .
U odjeljku Loop moramo pozvati funkciju petlje iz klase button; to je knjižnična norma.
Button_1.loop (); // Knjižnične norme Button_2.loop (); // Knjižnične norme
Odjeljak dolje ako želite smanjiti glasnoću.
/ * ako je pritisnuta tipka 1 ako je uvjet istinit * / Ako (button_1.ispressed ()) {Volume ++; // Povećavanje brojača glasnoće. // Ovo ako izjava osigurava da glasnoća ne prelazi 79 Ako (glasnoća> = 79) {Volumen = 79; } Serial.print („volumen:“); // ispis razine glasnoće Serial.printIn (volume); / * postavite glasnoću za kanal 4 koji je u PIN-u 9 PT2558 IC * / Pt2558.setChannelVolume (glasnoća, 4); / * postavite glasnoću za kanal 5 Koji je PIN 10 PT2558 IC * / Pt2558.setChannelVolume (glasnoća, 5); }
Sljedeći odjeljak ako želite povećati glasnoću.
// Isto se događa i za gumb 2 If (button_2.isPress ()) {Volume--; // ovo ako naredba osigurava da razina glasnoće ne ide ispod nule. Ako je (volumen <= 0) Volumen = 0; Serial.print („volumen:“); Serial.printIn (volumen); Pt2258.setChannelVolume (svezak, 4); Pt2558.setChannelVolume (svezak, 5); }
Testiranje kruga za kontrolu glasnoće digitalnog zvuka
Za ispitivanje sklopa korišten je sljedeći aparat
- Transformator koji ima slavinu 13-0-13
- 2 zvučnika od 4Ω 20W kao opterećenje.
- Izvor zvuka (telefon)
U prethodnom članku pokazao sam vam kako napraviti jednostavno audio pojačalo od 2x32 W s TDA2050 IC, upotrijebit ću to i za ovu demonstraciju.
Poremetio sam mehanički potenciometar i spojio dva kabela s dva mala kratkospojnika.
Sada se uz pomoć dvije tipke može kontrolirati glasnoća pojačala.
Daljnje poboljšanje
Sklop se može dalje modificirati kako bi se poboljšale njegove performanse. Poboljšanja poput sklopa mogu se napraviti na PCB-u radi daljnjeg uklanjanja buke koju generira digitalni dio IC-a. Možemo dodati i dodatni filtar kako bismo odbili visokofrekventne zvukove. Također, pogledajte druge sklopove audio pojačala i druge projekte povezane sa zvukom.
Nadam se da vam se svidio ovaj članak i da ste iz njega naučili nešto novo. Ako sumnjate, možete pitati u komentarima ispod ili možete koristiti naše forume za detaljnu raspravu.
