- ИЦ ПТ2258
- Како функционише ПТ2258 ИЦ
- Шема
- Компоненте потребне
- Ардуино код
- Тестирање круга за контролу јачине звука дигиталног звука
- Даље побољшање
Потенциометар је механички уређај помоћу којег се може подесити отпор према жељеној вредности, мењајући тако струју која пролази кроз њега. Постоји много апликација за потенциометар, али углавном се потенциометар користи као регулатор јачине звука за аудио појачала.
Потенциометар не контролише појачање сигнала, али формира делилац напона и зато се улазни сигнал ослабљује. Дакле, у овом пројекту ћу вам показати како да направите свој дигитални контролер јачине звука са ИЦ ПТ2258 и да га повежете са Ардуином за контролу јачине звука круга појачала. Овде такође можете проверити различите склопове повезане са звуком, укључујући ВУ мерач, коло за контролу тона итд.
ИЦ ПТ2258
Као што сам већ поменуо, ПТ2258 је ИЦ направљен за употребу као електронски контролер јачине звука са 6 канала , овај ИЦ користи ЦМОС технологију посебно дизајнирану за вишеканалне аудио-видео апликације.
Овај ИЦ обезбеђује И2Ц контролни интерфејс са опсегом слабљења од 0 до -79дБ при 1дБ / корак и долази у 20-пинском ДИП или СОП пакету.
Неке од основних карактеристика укључују,
- 6 улазних и излазних канала (за 5.1 кућне аудио системе)
- Избор И2Ц адресе (за апликацију Даиси-цхаин)
- Раздвајање високих канала (за примену са малим буком)
- С / Н однос> 100дБ
- Радни напон је 5 до 9В
Како функционише ПТ2258 ИЦ
Овај ИЦ преноси и прима податке од микроконтролера преко СЦЛ и СДА линија. СДА и СЦЛ чине интерфејс магистрале. Ове линије морају високо повући два отпорника од 4,7 К да би се осигурао стабилан рад.
Пре него што пређемо на стварни хардверски рад, ево детаљног функционалног описа ИЦ. ако не желите све ово да знате, можете да прескочите овај део јер свим функционалним делом управља Ардуино библиотека.
Валидација података
- Подаци на СДА линији сматрају се стабилним када је СЦЛ сигнал ВИСОК.
- Стања ХИГХ и ЛОВ на СДА линији мењају се само када је СЦЛ ЛОВ.
Услови покретања и заустављања
Услов старта се активира када
- СЦЛ је постављен на ХИГХ и
- СДА прелази са ВИСОКОГ на НИСКО стање.
Услов заустављања се активира када
- СЦЛ је подешен на ХИГХ и
- СДА се пребацује из НИСКОГ у ВИСОКО стање
Белешка! Ове информације су врло корисне за отклањање грешака у сигналима.
Формат података
Сваки бајт пренесен на СДА линију састоји се од 8 битова, који чине бајт. Сваки бајт мора бити праћен потврдним битом.
Признање
Потврда осигурава стабилан и исправан рад. Током потврдног импулса сата, микроконтролер повлачи СДА пин ВИСОКО у овом тренутку када периферни уређај (аудио процесор) повлачи (ЛОВ) СДА линију.
Сада је адресиран периферни уређај (ПТ2258) и он мора генерисати потврду након што прими бајт, у супротном, линија СДА ће остати на високом нивоу током деветог (9.) импулса сата. Ако се то догоди, главни предајник ће генерисати СТОП информације како би прекинуо пренос.
То уклања потребу за ваљаним преносом података.
Избор адресе
И2Ц адреса овог ИЦ-а зависи од стања ЦОДЕ1 (пин бр. 17) и ЦОДЕ2 (пин бр. 4).
ШИФРА1 (ПИН бр. 17) |
ШИФРА2 (ПИН бр. 4) |
ШЕСТАКОНСКА АДРЕСА |
0 |
0 |
0Кс80 |
0 |
1 |
0Кс84 |
1 |
0 |
0Кс88 |
1 |
1 |
0Кс8Ц |
Логиц Хигх = 1
Логика ниска = 0
Интерфаце Протоцол
Протокол интерфејса састоји се од следећег:
- Старт бит
- Бајт адресе чипа
- АЦК = Потврдни бит
- Бајт података
- Стоп бит
Мало домаћинства
Након укључивања ИЦ, потребно је да сачека најмање 200 мс пре слања првог бита података, у супротном пренос података може пропасти.
Након кашњења, прво што треба урадити је брисање регистра слањем „0КСЦ0“ ви на И2Ц линију, што осигурава исправан рад.
Горњи корак брише цео регистар, сада треба да поставимо вредност регистру, у супротном, регистар чува вредност смећа и добијамо пегави излаз.
Да би се осигурала одговарајућа подешавања јачине звука, неопходно је да се атенуатору узастопно пошаље вишекратник од 10дБ праћен кодом од 1дБ, у супротном, ИЦ се може понашати необично. Доњи дијаграм то више објашњава.
Обе горе наведене методе ће радити исправно.
Да бисте осигурали исправан рад, уверите се да брзина преноса података И2Ц никада не прелази 100КХз.
Тако можете пренијети бајт на ИЦ и умањити улазни сигнал. Горњи одељак је научити како функционише ИЦ, али као што сам раније рекао, користићемо Ардуино библиотеку за комуникацију са ИЦ-ом који управља свим хард кодом, а ми само треба да упутимо неке позиве функција.
Све горе наведене информације преузете су из техничког листа, потражите га за додатне информације.
Шема
Горња слика приказује тест шему круга за контролу јачине звука заснован на ПТ2258. Преузето је из техничког листа и модификовано према потреби.
За демонстрацију, коло је конструисано на безлемљеној плочи уз помоћ горе приказане шеме.
Белешка! Све компоненте су постављене што је могуће ближе како би се смањила индуктивност и отпор паразитског капацитета.
Компоненте потребне
- ПТ2258 ИЦ - 1
- Ардуино Нано контролер - 1
- Генериц Бреадбоард - 1
- Вијчана стезаљка 5 мм к 3 - 1
- Тастер - 1
- Отпорник 4.7К, 5% - 2
- Отпорник 150К, 5% - 4
- 10к отпорник, 5% - 2
- Кондензатор 10уФ - 6
- Кондензатор 0,1уФ - 1
- Јумпер жице - 10
Ардуино код
Ради једноставности, користићу ПТ2258 библиотеку из ГитХуб-а коју је направио сунрутцон.
Ово је врло добро написана библиотека, зато сам и одлучио да је користим, али с обзиром на то да је веома стара, мала је грешка и морамо је поправити пре него што је почнемо користити.
Прво преузмите и извуците библиотеку из ГитХуб спремишта.
Горње две датотеке добићете након издвајања.
#инцлуде #инцлуде
Затим отворите датотеку ПТ2258.цпп помоћу вашег омиљеног уређивача текста, ја користим Нотепад ++.
Можете да видите да је „в“ у жичној библиотеци малим словима, што је неспојиво са најновијим верзијама Ардуина, и треба да га замените великим словима „В“, то је то.
Комплетни код за контролер јачине звука ПТ2258 можете наћи на крају овог одељка. Овде су објашњени важни делови програма.
Код започињемо укључивањем свих потребних датотека библиотека. Библиотека Вире се користи за комуникацију између Ардуина и ПТ2258. ПТ2258 библиотека садржи све кључне И2Ц информације о времену и потврде. Библиотека езБуттон се користи за повезивање са тастерима.
Уместо да користите доленаведене слике кода, копирајте све инстанце кода из датотеке кода и учините их форматираним као што смо то радили у другим пројектима
#инцлуде
Затим направите објекте за два тастера и саму ПТ2258 библиотеку.
ПТ2258 пт2258; дугме езБуттон_1 (2); дугме езБуттон_2 (4);
Затим дефинишите ниво јачине звука. Ово је задани ниво јачине звука са којим ће започети овај ИЦ.
Инт запремина = 40;
Затим покрените УАРТ и подесите фреквенцију такта за И2Ц магистралу.
Сериал.бегин (9600); Вире.сетЦлоцк (100000);
Веома је важно подесити И2Ц сат, у супротном, ИЦ неће радити јер је максимална фреквенција такта коју подржава овај ИЦ 100КХз.
Даље, водимо мало домаћинства са изјавом иф елсе како бисмо осигурали да ИЦ правилно комуницира са И2Ц магистралом.
Иф (! Пт2258.инит ()) Сериал.принтИн („ПТ2258 је успешно покренут“); Елсе Сериал.принтИн („Није успело покретање ПТ2258“);
Даље, постављамо кашњење прекида позива за тастере.
Буттон_1.сетДебоунцеТиме (50); Буттон_2.сетДебоунцеТиме (50);
На крају, покрените ПТ2258 ИЦ подешавањем задате јачине канала и броја пина.
/ * Иницирање ПТ-а са подразумеваном запремином и Пин-ом * / Пт2258.сетЦханнелВолуме (запремина, 4); Пт2258.сетЦханнелВолуме (том, 5);
Ово означава крај одељка Воид Сетуп () .
У одељку Лооп морамо да позовемо функцију петље из класе буттон; то је библиотечка норма.
Буттон_1.лооп (); // Библиотечке норме Буттон_2.лооп (); // Библиотечке норме
Следећи одељак ако желите да смањите јачину звука.
/ * ако је притиснуто дугме 1 ако је услов тачно * / Ако (буттон_1.испрессед ()) {Волуме ++; // Повећавање бројача запремине. // Ово ако наредба осигурава да волумен не прелази 79 Иф (волуме> = 79) {Волуме = 79; } Сериал.принт („волуме:“); // штампање нивоа јачине звука Сериал.принтИн (волуме); / * подесите јачину звука за канал 4 који се налази у ПИН-у 9 ПТ2558 ИЦ * / Пт2558.сетЦханнелВолуме (јачина звука, 4); / * подесите јачину звука за канал 5 Који је ПИН 10 ПТ2558 ИЦ * / Пт2558.сетЦханнелВолуме (јачина звука, 5); }
Следећи одељак ако желите да повећате јачину звука.
// Исто се дешава и са дугметом 2 Иф (буттон_2.исПресс ()) {Волуме--; // ово ако израз осигурава да ниво јачине звука не иде испод нуле. Ако (запремина <= 0) Запремина = 0; Сериал.принт („волуме:“); Сериал.принтИн (обим); Пт2258.сетЦханнелВолуме (том, 4); Пт2558.сетЦханнелВолуме (том, 5); }
Тестирање круга за контролу јачине звука дигиталног звука
За испитивање кола коришћен је следећи апарат
- Трансформатор који има славину 13-0-13
- 2 звучника од 4Ω 20В као оптерећење.
- Извор звука (телефон)
У претходном чланку показао сам вам како да направите једноставно аудио појачало од 2к32 В са ТДА2050 ИЦ, користићу то и за ову демонстрацију.
Пореметио сам механички потенциометар и спојио два кабла са два мала кабла краткоспојника.
Сада се помоћу два тастера може контролисати јачина звука појачала.
Даље побољшање
Коло се може даље модификовати како би се побољшале његове перформансе. Побољшања попут склопа могу се направити на ПЦБ-у да би се даље елиминисала бука коју генерише дигитални одељак ИЦ. Такође можемо додати додатни филтер како бисмо одбили високофреквентне звукове. Такође погледајте друге кругове аудио појачала и друге пројекте повезане са звуком.
Надам се да вам се свидео овај чланак и да сте из њега научили нешто ново. Ако сумњате, можете питати у коментарима испод или можете користити наше форуме за детаљну дискусију.