Электронный регулятор громкости на Microchip PIC18F2550 и DS1868. Цифровой предварительный аудио усилитель с микроконтроллером Управление звуком на микроконтроллере

Когда-то, в 2005-2006 году, мной был сделан регулятор громкости и тембра на TDA8425 с ДУ.
Статья была выложена на каком то сайте с демо версией прошивки МК.

Решил здесь выложить полную версию, может кому-нибудь пригодиться.
Переписывать то, что написано в прикрепленной статье (пдф-ка) не вижу смысла.
Если коротко, TDA8425 регулятор громкости и тембра управляемый по шине I2C, соответственно сделан контролер на ATMEL.
Контролер, кроме непосредственно регулировки громкости позволяет управлять дистанционно с пульта RC-5 и подобных, сделано плавное нарастание громкости в момент включения, контроль температур.

От редакции: Полную статью, прошивки и др. файлы вы сможете скачать внизу этой страницы. Я же приведу некоторые выдержки из статьи и фотки, что бы уважаемый читатель сам решил, насколько эта схема ему интересна и сложна в повторении. -- Датагор

О чем речь?

В данной статье рассказано, как изготовить двухканальный (стерео) регулятор громкости и тембра с дистанционным управлением на TDA8425. Технические характеристики устройства соответствуют характеристикам микросхемы TDA8425 и указаны в Data Sheet. Данное устройство может быть собрано отдельным блоком или вставлено в корпус усилителя.

Блок звукового процессора

Все, плата готова. Обязательно проверьте качество монтажа. Микросхема TDA8425 управляется по шине I2C с помощью контролера.

Микроконтроллер

Далее приведена схема и описание контролера (схема управления).
Основной задачей этой схемы является передача данных в микросхему TDA8425 (шина I2C). Однако присутствуют и ряд дополнительных функций. Далее краткое описание схемы.

1. «LCD панель и кнопки» - сюда подключается все, что выходит на переднюю панель. Это двухстрочная 16 знаковая LCD панель с подсветкой, четыре кнопки для управления с панели и фотоприемник для дистанционного управления.

2. «Термодатчик 1» и «Термодатчик 2» - устанавливаются на радиаторах усилителей (УНЧ), контролируют температуру и при достижении максимальной (заданной) температуры включают кулеры (вентиляторы) охлаждения подключенные соответственно к «К кулеру 1», «К кулеру 2» работают независимо, вентиляторы любые на +12V. Возможно, подключить вместо вентилятора, например светодиод для индикации высокой температуры радиатора или реле для отключения нагрузки и т. п.
Контакты «А1» и «А2» для включения или отключения системы контроля температуры. «А1» и «А2» замкнуты микроконтроллер контролирует температуру. «А1» и «А2» разомкнуты - микроконтроллер не контролирует температуру. В качестве датчика используется транзистор (любой n-p-n).

3. «К подсветке LCD» - подключается к минусу подсветки LCD панели, после окончания регулировок примерно через 15 −20 сек гаснет подсветка.

4. «Сигнал mute» - в режиме mute, кроме снижения громкости (в TDA8425) появляется +5V на контактах М1 и М2 (для усилителей в которых есть mute режим).

Если нет необходимости в дополнительных функциях, детали относящиеся к ним можно не устанавливать.
При использовании кулеров (вентиляторов) с большим рабочим током, необходимо поставить более мощные транзисторы VT2 и VT3.

Передняя панель

На переднюю панель выносятся: LCD панель, кнопки управления и фотоприемник. Схема подключения приведена ниже. Какие либо печатные платы приводить не имеет смысла т. к. расположения элементов зависит от конструкции корпуса.

Обязательно обратите внимание на подключение LCD панели, в приведенной схеме используется WH1602D. Питание +5 V подается на контакт 1 а корпус на 2. У других производителей LCD панелей, может быть наоборот +5 V контакт 2, корпус контакт 1.

Блок питания

Для питания, можно использовать любой стабилизированный источник +12V, или сделать по ниже приведенной схеме

Используемые детали

Платы рассчитаны на установку следующих деталей:
Не полярные, выводные конденсаторы К10-17. «Чип» элементы типоразмером 1206. Диоды КД522 или подобные. Стабилитроны на 5.1V или 5.6 V. Фотоприемник любой, используемый в телевизорах нового поколения. Резисторы R23, R24 желательно поставить одинакового номинала Платы рассчитаны на установку стандартных (с шагом 2.5 мм), разъемов.

Настройка

Перед настройкой запрограммируйте микроконтроллер (прошивка приведена далее).

1. Соединить одноименные выводы шины I2C (SDA SDA и т. п.) двух плат. Включить питание.
Вращая подстроечный резистор R1 установить нужную яркость показания LCD панели (качество вывода букв).

2. Если планируете использовать систему контроля температуры радиаторов, то необходимо определить пределы включения и выключения кулеров (вентиляторов). Эта необходимость связана с разбросом деталей (резисторов, стабилизаторов). Порядок определения пределов приведу на примере (цифры приводимые ниже это результат моих измерений).

Подключаем термодатчики и закрепляем их на металлической пластине вместе с термопарой подключенной к тестеру (тестер должен иметь возможность измерения температуры).

Контакты А1 и А2 должны быть замкнуты (поставить перемычку).

Включить питание, одновременно нажать на кнопки «+» и " - «, на экране LCD панели высветятся показания Т1=117 и Т2=117 (показания будут одинаковы если R23, R24 не отличаются друг от друга номиналом, может быть например Т2=114, но это не важно). Смотрим температуру на тестере. У меня Т1=117 соответствует 28 градусам С (комнатная температура).

Ложем пластину с термодатчиками на паяльник и нагреваем. При нужной температуре, записываем значения Т1 иТ2. Это минимальные значения. Т1=Т1min=110, Т2=Т2min=110 соответствует 45 градусам С. Нагреваем дальше и записываем максимальные значения. Т1=Т1max=97, Т2=Т2 max =97 соответствует 75 градусам С.(пределы температуры выбираете сами).

Получены значения Т1 иТ2 в десятичном виде, переводим их в шестнадцатеричные. Т1=Т1min=110=6Е, Т2=Т2min=110=6Е, Т1=Т1max=97=61, Т2=Т2 max =97=61. Полученные шестнадцатеричные значения записываем в ПЗУ микроконтроллера по адресу:

05 - Т1max, 06 - Т1min, 07 - Т2max, 09 - Т2 min.

Когда радиатор УНЧ нагреется до Т1max = 75 градусам С, включится кулер 1, и будет охлаждать радиатор до температуры Т1min = 45 градусам, при достижении температуры 45 градусов С кулер 1 выключится.

В результате при небольшом нагреве радиаторов (малая выходная мощность УНЧ) кулеры не включаются, при высокой выходной мощности УНЧ увеличивается нагрев радиаторов и работают кулеры. Эта система позволяет снизить габариты радиаторов УНЧ и не создавать лишнего шума работы кулеров на низких уровнях громкости (при большой мощности шум не слышен:)).

Описание работы

1. В устройстве используется дистанционное управление с помощью любого пульта, совместимого с системой команд RC5 или RC6. Все команды выполняются при удержании кнопки VCR

2. При первом включении, из-за отсутствия начальных установок на экране LCD увидите «Volume MUTE», возьмите пульт дистанционного управления и удерживая кнопку VCR нажмите кнопку MUTE (отключение звука). На экране LCD появятся значения громкости, нажмите кнопку «Write» на передней панели (запись в память).

3. Передняя панель.
Кнопки «+» и «-» для регулировки и изменения значений.
«Select» - выбор меню
«Write» - запись в память.
С помощью перечисленных кнопок установите нужные Вам уровни и значения во всех меню. Нажмите «Write» (запись в память). При следующем включении устройства будут установлены все значения, которые записаны в память.

При включении в сеть устанавливается громкость на минимум, появляется +5V на выходе «Сигнал mute» платы «Схема управления». Примерно через 2 сек - плавное нарастание громкости до значения записанного в память

4. Пульт дистанционного управления.
Кнопки «+» и «-»
«Select» - выбор меню.
Выполняют те же функции, что и кнопки на передней панели.
Только с пульта работают следующие кнопки: «MUTE» - выключения звука (происходит выключение звука в TDA8425 и «Сигнал mute» с микроконтроллера). «РР» - установка начальных значений (устанавливаются значения, записанные в память).

5. В любом меню, если не нажата не одна кнопка, примерно через 10 сек возврат в меню «Volume», и через такое же время гашение подсветки LCD.

УНЧ TDA2050

Далее, в качестве примера приведена схема и платы усилителя низкой частоты на микросхеме (выходная мощность 20-25Вт). Усилитель работает с данным регулятором громкости и тембра.

Схема, показанная на рисунке, представляет собой усилитель для Subwoofer. Сигнал левого и правого канала подаются соответственно на LI и RI, отфильтровываются, суммируются и усиливаются. Для получения усилителя для левого или правого канала необходимо сделать следующие изменения:
R1, R3, R6, C1, C4 не устанавливаются.
Вместо резистора R4 поставить перемычку.
R10 = 1кОм.
Сигнал подается на LI.
Показан один канал, для стерео надо два таких канала. Радиатор усилителя небольшой, используется охлаждение вентиляторами.

Для питания усилителя используется нестабилизированный, однополярной источник питания. Необходимо использовать трансформатор мощностью 70-100Вт с выходным напряжением не более 30-33В.
Питание регулятора громкости и тембра от отдельной обмотки (~15-18В), или отдельным трансформатором. Обязательно соблюдайте правила монтажа земель и сильноточных цепей (об этом существует множество статей).

Файлы

Собственно, сама статья, 2005 год
🕗 29/07/08 ⚖️ 3,09 Mb ⇣ 649 Здравствуй, читатель! Меня зовут Игорь, мне 45, я сибиряк и заядлый электронщик-любитель. Я придумал, создал и содержу этот замечательный сайт с 2006 года.
Уже более 10 лет наш журнал существует только на мои средства.

Хорош! Халява кончилась. Хочешь файлы и полезные статьи - помоги мне!

В данной статье рассказано, как, используя микросхемы аудиопроцессора и микроконтроллера, можно изготовить блок цифровых регуляторов громкости и тембра системы пространственного звучания при наличии компьютера или DVD проигрывателя. Самому собрать такое устройство есть смысл, если у кого-то есть усилители со старыми добрыми AC S-30, АС-25 и различными вариантами S-90.

Описываемый цифровой регулятор тембра, громкости, баланса обеспечивает регулировку общей громкости и громкости каждого из каналов системы пространственного звучания 5.1 в отдельности. Регулировка тембра - раздельная во фронтальной, тыловой и центральной АС, а также изменение уровня НЧ, раздельно по фронту, тылу и каналу сабвуфера. В блоке возможен выбор трех дополнительных режимов: "Стерео", "Расширенное стерео 1" (+30 %), "Расширенное стерео 2" (+52 %) - раздельно для каждой пары колонок. Предусмотрен и такой вариант блока регулировок, когда возможен выбор источников сигнала с трех раздельных входов каждой микросхемы регуляторов.

Рисунок 1

"Мозгом" блока регулировок, функциональная схема которого показана на рис. 1, является микроконтроллер PIC16F628A , управляющий по шине l2C (сигналы SDA и CLK) тремя аудиопроцессорами TDA9860. Кроме того, он обрабатывает сигналы с пульта ДУ, поступающие через ИК приемник СДУ (В1), и выводит всю информацию на ЖК индикатор.

Рисунок 2

Принципиальная схема подключения аудиопроцессора TDA9860 представлена на рис. 2. Аналоговые входы звукового процессора подключают к источникам многоканальных или стереофонических аудиосигналов - УКВ приемнику ("FM"), звуковой карте ("PC"), аудиовыходам телевизора или DVD проигрывателя ("TV"). Выходы LO, R0 аудиопроцессоров (А1-A3 на рис. 1) подключают соответственно к УМЗЧ левого и правого каналов для фронтальных (А1) и тыловых (А2) громкоговорителей либо центрального и сабвуферного каналов (A3). Следует отметить особенность подключения вывода 25 микросхемы TDA9860. Для шести каналов необходимы три печатных платы с аудиопроцессорами, причем у двух из них (А1 и А2 на рис. 1) он соединен с общим проводом, а у третьего (центрального и НЧ каналов) - с плюсовым проводом питания. Уровнем напряжения на этом выводе и определяется адрес устройства. На печатных платах этот выбор осуществляется с помощью перемычек.

Технические характеристики блока регулировок и системы в целом определяются аудиопроцессорами TDA9860, а также примененными усилителями мощности. Схема включения TDA9860 отличается от типовой введением эмиттерных повторителей на транзисторах VT1, VT2, которые включены на выходе устройства. Они обеспечивают лучшее сопряжение его с усилителем мощности (автором в качестве УМЗЧ использованы пять микросхем TDA7294 и две TDA7293 в "тандемном" включении для сабвуфера).

class="eliadunit">

В блоке предусмотрена запись в память всех предустановок регуляторов; при включении блока происходит плавное нарастание громкости до установленного ранее уровня. Есть режим понижения (выключения) громкости - Mute. Все режимы регулировок отображаются жидкокристаллическим индикатором на русском языке.

Все регулировки возможны посредством четырех кнопок на лицевой панели блока, а также с обычного пульта ДУ от телевизора. Хотелось бы отметить, что практически все надписи "зашиты" в EEPROM микроконтроллера, поэтому их можно менять, не затрагивая основной программы. Исключение составляют приветствие, а также названия режимов, которые выводятся на английском языке. Это связано с ограниченным объемом памяти EEPROM микроконтроллера, а также с целью максимальной совместимости ЖК индикаторов. Если кто-то не найдет русифицированного индикатора, в этом случае достаточно изменить русские надписи английскими в EEPROM микроконтроллера; информация об этом представлена ниже.

С помощью кнопок "1", "2" и "3" пульта ДУ есть возможность выбирать между тремя входами аудиопроцессора, причем переключение происходит одновременно всех трех пар входов. А вот посредством кнопок на лицевой панели блока можно выбирать вход отдельно для каждого аудиопроцессора, в результате при желании в одной паре колонок будет воспроизводиться радиопередача, в другой - музыка от компьютера, ну а в третьей - звук от телевизора или DVD проигрывателя. Многое зависит от используемого варианта коммутации входных разъемов, соединительных кабелей и вашей фантазии.

Подробно описывать перемещение по меню не имеет смысла, достаточно перечислить фактические функции используемых кнопок пульта ДУ:
"1" - переключение трех аудиопроцессоров на первый вход (например, FM-тюнер);
"2" - переключение трех аудиопроцессоров на второй вход (например, TV- приемник);
"3" - переключение трех аудиопроцессоров на третий вход (например, компьютер PC);
"М" - запись в память всех предустановок;
"SL" - вызов главного меню;
"Р+" - передвижение по меню вверх;
"Р-" - передвижение по меню вниз; "+" - увеличение выбранного параметра;
"-" - уменьшение выбранного параметра;
"Mute" - включение и выключение звука.

Рисунок 3

Схема узла управления, показанная на рис. 3, проста и особых пояснений не требует. Использован LCD индикатор SC1602EULT-SH-GB с размерами экрана 106x35 мм (видимая часть - 99x24 мм), у которого ток для подсветки достигает 750 мА. Можно рекомендовать также индикатор SC1602BULT-SH-HS-G с размерами экрана 71x25 мм (видимая часть - 65x16 мм). Чтобы не нагружать лишний раз блок питания, было решено ввести программное выключение подсветки, когда она не нужна. Для плавного изменения подсветки в устройство введены элементы VT1, VD1, СЗ, R2- R4. Резистор R4 следует подобрать как по сопротивлению, так и по мощности либо вовсе обойтись без него с учетом имеющегося индикатора. Для большого индикатора мощность резистора R4 может доходить до 2 Вт, для меньшего - достаточно 0,5 Вт. Кроме того, транзистор VT1 при токе 750 мА следует использовать с теплоотводом, например, алюминиевой пластиной размерами 20x30 мм.

Выход RA0 контроллера можно использовать для управления режимом "Mute". После включения аудиосистемы, пока происходит инициализация индикатора, считывание памяти и приветствие, переходные процессы в усилительном тракте заканчиваются и на выводе RA0 устанавливается высокий уровень, разрешая работу усилителей. Этим устраняется характерный щелчок в момент включения (напомню, что у микросхемы TDA7294 есть выводы управления режимами "Mute" и "St-by").

Теперь о программировании микроконтроллера. В НЕХ-файле отсутствует слово (байт) конфигурации, поэтому его нужно задать в опциях программатора: WDT - выключен, PWRTE - включен, тип генератора - XT.

В табл. 1 (лежит в архиве) представлены коды русифицированного индикатора, которые понадобятся, если потребуется изменить надписи, выводимые на индикатор. Каждая надпись (табл. 2) начинается с определенного адреса и обязательно заканчивается нулем. Этим ограничивается число символов заменяемой надписи. Вновь вводимая надпись не должна превышать число символов в заменяемой. Например, изменим надпись "ГРОМКОСТЬ" на "VOLUME". Слово "ГРОМКОСТЬ" состоит из девяти символов, a "VOLUME" - из шести, поэтому проблем с заменой не будет. Согласно табл. 1, в шестнадцатиричном представлении слово "ГРОМКОСТЬ" выглядит так: 0хА1, 0x50, 0x4F, 0x4D, 0x4В, 0x4F, 0x54, 0x62. Слово "VOLUME" записывают так: 0x20, 0x56, 0x4F, 0х4С, 0x55, 0x4D, 0x45, 0x20, 0x20. Коды "0x20" - это пробелы (см. табл. 1). Находим адрес EEPROM, с которого начинается надпись, в нашем примере это 0x27, и последовательно заменяем ее. Еще раз обращаю внимание, коды 0x00 в EEPROM изменять нельзя, по ним программа определяет конец надписи!


Вашему вниманию предлагается простой высококачественный

шестиканальный цифровой регулятор громкости

. Регулятор собран на микросхеме TDA7448, производимой европейской фирмой STMicroelectronics. Данная микросхема имеет цифровой интерфейс I2C. Для управления через этот интерфейс использован распространенный, дешевый, высокоскоростной RISC микроконтроллер фирмы Microchip PIC16F873 (возможна замена на PIC16F873A, PIC16F876, PIC16F876A).
Разработчики устройств на микроконтроллерах от Microchip имеют уникальную возможность лёгкого подключения нескольких энкодеров без дополнительной обвязки. Это позволило реализовать довольно необычный концепт устройства.
Конструктивно схема состоит из двух узлов: микроконтроллерного блока управления

И блока регулятора на TDA7448.

Регулятор предполагается использовать в системах формата 5.1. Это предполагает наличие следующих каналов: фронтальные (левый и правый), тыловые (левый и правый), центр и сабвуфер. Для управления этими каналами используется 4 энкодера. Режим громкости и баланса для фронта и для тыла переключается кнопкой "громкость/баланс". Также предусмотрены кнопки "Mute" (приглушение) и "StandBy" (дежурный режим). Есть и отдельная линия StandBy, которую можно использовать для аппаратного отключения усилителей. Особый режим - "Общая громкость" (Master volume). Переход в данный режим осуществляется кнопкой по зарезервированной линии. В этом режиме все энкодеры работают в параллели, т.е. равномерно изменяют уровни громкости по всем каналам (линиям). Параметр "общая громкость" не имеет какого-то определенного числового измерения, т.к. каждый из каналов настроен на свой уровень громкости. Регулировка "общей громкости" лишь синхронно уменьшает или увеличивает все каналы.
Для визуализации направления регулирования в этом режиме на индикаторе в верхней строке выводится название режима "Master volume", а в нижней строке анимированные значки <<<<< или >>>>>.

Все перечисленные функции управления можно осуществить через любой пульт дистанционного управления в формате RC5 (от бытовой техники Philips).
Печатные платы выполнены из одностороннего фольгированного текстолита методом ЛУТ, но могут быть легко выполнены на монтажных платах. Файлы рисунков плат в формате Sprint Layout в конце статьи. Ниже рисунок и фотография собранной печатной платы микроконтроллерного блока управления.

Номиналы сопротивлений и конденсаторов могут отличаться от указанных на схеме на 20%.
Индикатор имеет 2 строки по 16 символов. Их выпускает много разных фирм и в их составе используются разные микросхемы: HD44780 (HITACHI), KS0066 (SAMSUNG), КБ1013ВГ6 (АНГСТРЕМ) и другие.
ИК-приемник TSOP1736 (Vishay) можно заменить на SFH-506 (Siemens), TFMS5360 (Temic), ILM5360 (ПО "Интеграл").
Микросхема TDA7448 выполнена в корпусе для поверхностного монтажа, но имеет довольно широкий шаг выводов (1,27 мм) и легко припаивается острозаточенным паяльником. Далее рисунок и фотография собранной печатной платы блока регулятора на TDA7448.

Ниже рисунок платы энкодеров:

Энкодер механический инкрементирующий, например, PEC12 или из серии EC11. При выборе энкодера руководствуйтесь документацией по цоколевке выводов. Определить правильное включение можно методом научного перебора.

Кнопки могут быть любыми на ваш вкус - от тактовых до типовых пленочных клавиатур. Пленочная клавиатура имеет прочную липкую основу (как скотч), что позволяет легко наклеивать её на корпус устройства. Для подключения шлейфа пленочной клавиатуры удобно использовать разъемы серии FB-x, например, FB-5R.
Работа регулятора успешно протестирована с различными пультами в формате RC5. Ниже фотография одного из пультов. Кнопками влево-вправо выбирается регулируемый параметр, а кнопками вверх-вниз устанавливается желаемый уровень (функции кнопок соответствуют кнопкам "громкость" и "канал").

В процессе работы все настройки автоматически сохраняются и при включении плавно устанавливаются последние введенные уровни громкости.
Настройка схемы устройства сводится к установке необходимой контрастности подстроечным резистором. Все диалоги в меню сделаны на английском. Ниже фото из жизни:

Об организации питания.
В сторону микроконтроллерного блока управления на стабилизатор 7805 желательно подавать напряжение на уровне 6-7 вольт с тем, чтобы он не грелся при падении напряжения. В сторону TDA7448 следует подавать напряжение 9 вольт со стабилизированного источника питания, например собранного на стабилизаторе 7809. Общие "земли" рекомендуем соединить на стороне блока питания.
Для любителей синтетического моделирования собран проект в Proteus Professional 7.2 SP6, в котором можно оценить некоторые функции регулятора громкости.

Если на входе вашего усилителя уже стоят блокировочные конденсаторы, то в данной схеме выходные электролиты смело можно выкинуть и поставить на их место перемычки.


Рассказать в:
В широко распространенной в настоящее время аналоговой радиоэлектронной аппаратуре (РЭА) все чаще используют элементы цифровой техники, особенно в узлах, имеющих низкую надежность. Одним из самих надежных элементов РЭА являются переменные резисторы (потенциометры). Ряд фирм разработали широкую номенклатуру цифровых потенциометров, однако такие элементи требуют для своей нормальной роботы микропроцессорное управление, т.е. необходимо использовать микроеонтроллеры (МК). Учитывая далеко не всегда низкую стоимость как МК, так ицифровых понтециометров, актуальной является задача разработки простых дешевых цифровых регуляторов на основе самих микроконтреллеров. Как известно, потенциометр представляет собой регулируемый делитель напряжения и содержит два плеча: верхнее и нижнее. В рассматриваемой в этой статье конструкции верхнее плечо каждого делителя имеет постоянное сопротивление, а сопротивления нижнего плеча изменяется переключением резисторов (на корпус) с помощью МК (рис.1). Принципиальная схема простого двухканального цифрового потенциометра на основе недорогого микроконтроллера PIC16F628A показана на рис.2. Его можно использовать в качестве стереофонического регулятора громкости.
Для переключения резисторов нижних плеч делителей для одного канала цифрового потенциометра используются 6 линий порта А, для другого-6 линий порта В. К выводам портов А и В подключено по шесть точных резисторов R1-R6 и R7-R12 причем номиналы соседних резисторов отличаются в два раза. Учитывая, что используемых резисторов шесть, образуемый ими переменный резистор может иметь 64 положения «движка». Изменения сопротивления нижнего плеча каждого делителя, при выбранных номиналах резисторов, находится в приделах от 5 до 316 кОм. При использовании точных (или точно подобранных) резисторов R1-R12 регулировки может быть не хуже, чем в промышленных образцах цифровых потенциометров, например, МСР4021. Плавное изменение коэффициентов деления в обоих каналах осуществляется нажатием кнопки S1 путем плавного увеличения или уменьшения цифрового кода, обеспечивающего переключения резисторов нижних плеч делителей. С помощью кнопки S2 осуществляется регулировка стереобаланса. Основной сложностью при разработке программы для контроллера было то, что выводы портов А и В нужно постоянно переформатировать то как входы, то как выходы. Причем при работе линий портов в режиме выходов необходимо программно выставлять на них только уровни лог. «0». Если кроме лог. «0» на выводы портов поступит уровень лог. «1» ,то потенциалы на аналоговых выходах устройства будут формироваться непредсказуемым образом. Алгоритм работы МК выбран так, что при каждом последующем нажатии кнопки меняется направление регулировки (интервалы времени между нажатиями кнопок выбирают опытным путем). Во время удержания кнопки коды плавно изменяются (увеличиваются или уменьшаются). После отпускания кнопки значение кодов сохраняются. Устройство может использоваться в самых разнообразных радиоэлектронных устройствах: генераторах, радиоприемных и передающих устройствах, устройствах автоматики, измерительных устройствах, а также усилительных устройствах в качестве сдвоенного цифрового переменного резистора и регулятора баланса в стереофонической звуковоспроизводящее аппаратуре. Разработанное устройство может использоваться также в системах автоматического регулирования усиления (АРУ). Для этого его необходимо дополнить масштабирующим усилителем, диодным выпрямителем и компаратором. Принципиальная схема такого цифрового потенциометра показана на рис.3.
Если уровень входного сигнала компаратора превысит уровень, заданий переменим резистором R23, то компаратор срабатывает, и на его выходе появится постоянное положительное напряжение. Порог срабатывания компаратора ОР2 (а также необходимое усиления сигнала) регулируют переменным резистором R23. Слежение за уровнем сигнала происходит автоматически. Изначально код увеличивается, а после срабатывания компаратора начинает уменьшатся, а затем наоборот. Этот регулятор может найти применение в различных устройствах, в том числе измерительных. Особенность такой цифровой АРУ- отсутствие дополнительного увеличение коэффициента нелинейных искажений, связанного с цепями регулировки в аналоговых системах. Резисторы R1-R12 в схемах рис.1 и рис.2 должны быть точнее, например, типа С2-29В. Можно использовать резисторы близкого номинала, но при этом обязательно соответствующие резисторы в одном и втором каналах должны быть одинаковые. Допустимо использовать и обычные резисторы, но их обязательно нужно подбирать. Конденсаторы С1-С4 лучше использовать неполярные оксидные или пленочные. Входные провода нужно экранировать. Напряжение питания устройства +5 В. Регулятор разработан так, что он работает в режиме микропотребления (внутренний встроенный генератор микропроцессора, низкая тактовая чистота - 37 кГц при токе потребления 15 мкА). Поэтому устройство может быть оформлено в виде автономного малогабаритного блока, который можно включить в разрыв соединительного сигнального кабеля. Это значительно расширяет область использования устройства. Оно может использоваться как в качестве встроенного узла, так и совместно с давно используемыми усилителями. При этом штатные регуляторы громкости этих усилителей можно не использовать. Недостаток устройства: сопротивления не доходит до 0, но, по мнению автора этот недостаток не является существенным. Однако приделы регулировки можно уменьшить до 2,5 кОм путем использования дополнительного седьмого резистора номиналом 5 кОм, при этом «переменный» резистор будет 128 положений, однако программу можно откорректировать. Кто в этом разбирается, может сделать это сам. Если использовать 28-выводный МК типа РІС16F876A, то можно использовать и по восемь резисторов, такой потенциометр будет иметь 256 положений. Для сравнения заметить, что серийно выпускаемые цифровые потенциометры обычно имеют 64 положения, а минимальное сопротивление у них составляет 1,2 кОм(при максимально возможном - 316 кОм)При желанию можно расширить возможности и удобство использования устройства. Если вывод 3 МК через резистор номиналом 10 кОм подключить к +5 В, то на нем появятся импульсы прямоугольной формы звуковой частоты амплитудой размахом 5 В. Подав эти импульсы через делитель напряжения к выходам устройства, получим звуковую сигнализацию, которая будет работать при нажатии кнопок.