В начало | Зарегистрироваться | Заказать наши киты почтой
 
 
 
 

Аналоговый потенциометр с цифровым управлением для ламповой техники (ULN2803, PCF8574, Arduino)

📆31 октября 2020   ✒️-=Sm()kE=-   🔎7.677   💬13  

Цифровизация шагает по планете! Встретившись с гитарными эффектами с цифровым управлением, например, известным «SansAmp», и впечатление долго не отпускает.
Жуть, как удобно! Жуть, как надо такое же себе, только с перламутровыми пуговицами!

Загоревшись уже очень давно идеей, что мне нужен гитарный предусилитель полностью лампово-аналоговый, но со всеми удобствами цифрового управления, я потратил очень много времени в поисках, которые привели меня к осознанию того, что ничего адекватного нет и вряд-ли будет.
Что-ж, придется ваять самому! Поехали!

Вникая в проблему

Попытки найти удобоваримые варианты для работы в звуке известны давно. Каждый производитель извращается так, как хочет или, в худших вариантах, как умеет. Кто-то лучше, кто-то хуже, но все не то. Всегда есть какой-то серьезный косяк в принципе, который так мешает, что аж кушать не можешь, пиво в глотку не лезет.

Попробуем прикинуть все то, что используется в серийной аппаратуре :
  1. Интегральные цифровые потенциометры
  2. Оптопары светодиод-фоторезистор
  3. Моторезированные переменные резисторы
  4. Цифровые процессоры

Попробуем рассмотреть их проблемы пристальнее, чтобы понять что к чему.

1. Интегральные цифровые потенциометры

Аналоговый потенциометр с цифровым управлением для ламповой техники (ULN2803, PCF8574, Arduino)

Это удивительно неплохие устройства, как по мне, есть как общего применения, так и созданные исключительно для звука. Цифровое крайне быстрое управление, низкое потребление, бесшумность, компактность!
Но есть недостатки, которые не позволят использовать их в ламповой технике. Первое же, что сильно мешает всему — это очень низкое допустимое напряжение сигнала: даже в высоковольтных вариантах это лишь десятки Вольт, в то время как в ламповой схемотехнике 150 Вольт это норма жизни. Можно придумать делитель на входе и усилитель на выходе, но как это связать, скажем, с классическим Маршалловским темброблоком?

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

2. Оптопары светодиод-фоторезистор


Чумовая система, уже отчетливо отдающая аналогом. Управление сводится к изменению яркости свечения светодиода, на что фоторезистор будет реагировать изменением сопротивления. Вариантов управления довольно много. Это и малоразрядные многоканальные ЦАП, и отфильтрованный ШИМ, и даже микросхемы Peak-and-Hold, позволяющие работать в несколько каналов одним единственным ЦАПом.

Но, опять-таки, слишком много проблем для применения: тут и ощутимые искажения, придаваемые переходом фоторезистора, и узкий диапазон изменений сопротивления, и невозможность достигнуть нулевого сопротивления, а подчас даже и просто низкого, и, что так же весомо, требование двух оптопар для имитации переменного резистора. У того ведь как-бы 2 половинки, изменяющие сопротивление синхронно, но в разных направлениях.

3. Моторезированные переменные резисторы

Признаться, когда я в первый раз, очень давно, увидел, как у друга на усилителе Onkyo под воздействием пульта поворачивается ручка громкости, я был впечатлен. Более диковинно было лишь то, что усилитель устанавливал громкость по пресету в заранее выбранное положение.
Да, сейчас этим не удивить. Возьмите регулятор уровня фар в какой-нибудь Приоре, там тот же принцип.

Но выглядит потрясающе! И, главное, никаких искажений. Переменный резистор тут НАТУРАЛЬНЫЙ! Идеальный регулятор, техногеничный, потрясающе эстетичный и регулировка такая плавная.

И вот выполз облом: регулировка СЛИШКОМ плавная. Ждать, пока все такие переменники выстроятся в нужные положения невыносимо долго.
Дальше всех продвинулись, пожалуй, моторизированные линейные переменники «фейдеры», но они стоят просто жутких денег. Кроме того, конструкция ощутимо громоздкая, жрет довольно много и даже с моторизированными фейдерами нельзя говорить о быстрой, почти мгновенной смене пресетов.
К тому же, вы же помните: переменники стираются.

4. Цифровые процессоры

Прошло уже прилично времени с тех пор, когда выражение «цифровой процессор обработки звука» звучало наказанием, а не достоинством. Они стали лучше, больше, точнее, дают меньше искажений, лучше переводят аналог в цифру и обратно, мало жрут, много могут и все в таком духе.
Вроде как, чего тут думать? Ставь на выходе и твори все, что душе угодно! Недорогие монстры типа ADAU1701 могут такое! Вот прям ТАКОЕ!!!
Но все еще не могут в высокое напряжение сигнала. Так что о каких-то межкаскдных регулировках можно забыть. Ну или творить нечто невообразимое, ставя делитель перед входом процессора и усилитель после, убивая всю прелесть высокого динамического диапазона и накладывая дрожание первых бит АЦП/ЦАП на шум ламп. Вобщем, тоже мимо.

Тяготы дум

Если бы все проблемы всегда решались так же быстро и четко, как это происходит в голове, то цены бы не было таким проблемам. Раз и готово! Но на деле все куда хуже, во много-много раз. Проблемы, как водится, всегда подстерегают внезапно: нет времени, нет денег и, что хуже, нет желания. И вот так понемногу проект, начатый в 2018 году, смог свершиться только 25 октября этого самого 2020 года! Жуть, разве нет? Поэтому не обижусь, если многие эту часть — про думы, собственно, решат пропустить.
Тогда переходите сразу к разделу «Реализация решения».

Теория работы

Итак, обдумав все возможные варианты и распробовав всего понемногу, я пришел к единственно возможному, как мне кажется, выводу: регулировка, как и управление ей, должна быть дискретной, и только так можно будет реализовать как точность, так и быстроту реакции. Очевидно, что проще всего использовать реле, значит, не мудрствуя лукаво, можно завести двоичную логику работы- каждая ступень будет являться множителем очередной степени двойки.

На пальцах- разложим степень двойки, скажем, на 4 бита: 2^0, 2^1, 2^2 и 2^3. На обычные цифры это 1, 2, 4, 8. Из этих вот цифр, комбинируя их между собой, можно получить любое число от 1 до 15 и 0, если не выбрана ни одна цифра. Теперь, если мы хотим получить нужный нам диапазон, то просто добавляем множитель к каждой из цифр! Получаем двоичный регулятор нужного нам диапазона с 15 ступенями! Нужно больше ступеней? Увеличим разрядность! Так из 8 битов получится 256 ступеней регулировки! Больше- уже бессмысленно, слишком тонкая будет грань изменения звука, на слух не ощутимая. А если не слышно- не имеет смысла тратиться.

Выбор железа

Далее, если взять реле с 2 группами переключающих контактов, то можно реализовать среднюю точку, навесить резисторы на одну группу нормально разомкнутых контактов и на одну группу нормально замкнутых контактов, одинаковые для каждого реле и соединить все так, чтобы получилось подобие переменника: срабатывание каждого из реле приведет к подключению резистора в цепь с одной стороны и шунтирование резистора с другой. Таким нехитрым образом получаем подобие натурального переменника с 3 выводами. И да, хотелось бы компактности.

Тут на помощь пришли реле фирмы AXICOM, в частности, у меня был некоторый запас IM07

Неплохо! Метода есть. Теперь надо решить вопрос с управлением, то есть с самой мякоткой проблемы. У нас есть 8 реле.
Что можно взять для коммутации питания? Конечно ULN2803 — 8-канальную сборку Дарлингтонгских транзисторов. Вполне достаточно, даже с огромным запасом.

Как рулить будем?

Вот подходя к вопросу со стороны и вскользь, кажется, что это вообще просто. А потом пригляделся. Ну вот 8 реле - это один переменник. Скажем, если повторять схему какого-нибудь простенького усилителя с темброблоком — это 3 переменника, или 24 реле. А если я захочу опять что-нибудь типа slo-recto-twin? Это 9 переменников минимум! То есть 72 реле! Как таким массивом управлять?

Напрямую почти никак, у редких микроконтроллеров достаточно портов для такого. Использовать небольшие микроконтроллеры для каждого потенциометра? Возможно, но нужно будет программно реализовать протокол связи. А можно пойти проще- расширитель портов с i2c интерфейсом PCF8574! Как удачно, что портов как раз 8, а адреса можно задавать аппаратно! Наверное, кто-то чуть знающий о вопросе скажет, что, мол, у PCF8574 только 8 доступных адресов, чего явно не хватает для того же самого slo-recto-twin! А вот тут есть одна хитрость: выпускаются PCF8574 как простые, так и с литерой A (PCF8574A), у них как раз разные адреса. То есть 8 адресов для PCF8574 и еще 8 для PCF8574А- итого 16! Как по мне- вполне себе достаточно для реализации самых необычных планов, хватило бы денег на покупку реле :)

Реализация решения

Вопрос стоит так, что лично я очень хотел бы создать нечто в корпусе «под рэк», желательно в 1 юнит высотой. Это значит, что с учетом основной платы, которая будет установлена на некоторой высоте от днища корпуса (не КЗ же делать!), реально остается порядка 28 мм в высоту. Компактность должна быть, простите за каламбур, на высоте. Плюс здоровенная конструкция наверняка будет притягивать на себя пристальное внимание наших любимых наводок, потому обязательно наличие экрана, а это тоже будет придавать высоты. Вот с этим надо что-то делать. Впрочем, что я и сделал.

Принципиальная схема

Начну о реализации именно со схемы.

Схема не содержит в себе ничего того, о чем я бы не говорил выше. Ну, это не считая блокировочного конденсатора. Включение контактов реле как раз такое, что позволяет реализовать две «половинки» переменника. Обратите внимание, где нормально замкнутые, а где нормально разомкнутые контакты! Это принципиально важно для правильной работы. Разумеется, можно обойтись и реле с одной группой контактов, но тогда количество таких реле придется удвоить и включать сразу парой. Это вообще не практично, не говоря об экономии, но возможно- мощности драйвера хватит.

В драйвер встроены диоды, поэтому ставить еще по одному, параллельно каждой катушки реле для подавления всплеска ЭДС самоиндукции, не имеет необходимости. Хочу еще, кстати, заметить, что я умышленно разъединил цифровую землю (GND) от земли экрана (GNDA), потому как назначения у них разные. Первая- для работы логики и реле, вторая — только для экранирования. Питание тоже разделено: на контакт 1 разъема JP1 приходит питание логики- 5 Вольт, а на контакт 3 того же разъема приходит питание реле, в моем случае- 24 вольта.

Печатная плата

Плата получилась двусторонней, в одну сторону при такой компактности было просто не уместить. Первая версия выглядела как-то вот так

Из ключевых особенностей здесь надо заметить полигон экранирующей земли, он сделан так, чтобы не было земляной петли (хотя, конечно, мог что-то не заметить). Не рекомендую его убирать, ведь хоть цепи питания реле и сигнальные я и старался пересекать под 90 градусов (или хотя-бы под 45), наводки все же могут быть. Далее, резисторы SMD из металлопленки, типоразмер выбран 1206 исходя из максимально допустимого напряжения между контактами (150 Вольт). Да, оно не будет достигнуто, но все же- не лишним будет перестраховаться. Высота платы- 27,5 мм, что с учетом 0,2 мм экрана будет оставлять еще небольшой запас по высоте на погрешность монтажа.

Сборка

Вот и дошли до самого интересного. Кому как, мне вот всегда хочется быстрее собрать конструкцию, как только ко мне в руки попадает все для этого необходимое. В этот раз было так же, получилось как-то вот так


Радостный я подключил все это добро и… ничего! Не работает, лишь что-то потрескивает. Но не работает ни в какую. Оказалось, что у таких крохотных реле есть подвох- миниатюрная катушка не может развить достаточно мощности для притягивания якоря, потому в конструкции магнитной цепи применяются неодимовые магниты. А, значит, у катушек есть вполне себе конкретная полярность приложения напряжения, о чем и в даташите указано.
Но невнимательность и расторопность сыграли злую шутку со мной. Теперь у меня есть платы старого образца, на которых полярность неверна… Проект-то я переделал и учел вопрос о полярности, именно поэтому приложил вторую версию.

Но и это не беда! Я просто впаял реле на другую сторону, получилось страшно, как 12 часов ночи, но работоспособно.

Паял реле прямо поверх резисторов — дно у реле не проводящее. А вот родная сторона осталась лысой, только лишь со штыревыми линейками

Но работает- проверено! Чуть ниже видео об этом, кстати.

Теперь экран. Не мудрствуя лукаво, я взял медную фольгу толщиной 0,2 мм

Именно ее и именно такую потому, что она достаточно жесткая, после сборки, легко паяется, режется, гнется и выпрямляется. Далее, начеркал всяких похабных надписей начертил развертку прямо на куске фольги, а так как воспитан я был госпланом до развитого капитализма, то начертил прямо посередине!

Затем обрезал все лишнее, сделал надрезы в средней части и ступленным роликовым ножом для пиццы сделал углубления в фольге, по которым будет легче сгибать фольгу.


Заметили появившиеся дырочки? Это дырочки, получившиеся после прикладывания на развертку голой платы переменника. между штыревыми линейками есть отверстие, рассчитанное под пропуск через себя луженой проволоки толщиной 1 мм, отверстие металлизированное и соединяется с полигонами экранирующей земли. Дальше станет понятно, как это все использовать.

Затем, исходя из сомнительных соображений, убрал лишние части развертки. Можно было бы умнее сделать, но импровизация жеж!

После согнул все это дело по насеченым сгибам и пропаял стыки изнутри.

Вставил уже собранную плату переменника и продел в отверстия ту самую луженую проволоку

После чего припаял проволоку сначала к плате, а потом к стенкам кожуха ИЗНУТРИ

Лишние концы проволоки снаружи откусил и края запилил надфилем. К этому всему я рекомендую залить содержимое двухкомпонентым силиконовым наполнителем. Обязательно двухкомпонентным, а не мазать анаэробным силиконовым герметиком. Компаунд-то застынет, а герметик внутри так и будет жидким еще очень долго!


В результате получим такую конструкцию. Хорошо поработали! Какой же я молодец, сам от себя балдею, просто чудо! ?

Программное обеспечение

Так как программист из меня вышел довольно поганый, я решил воспользоваться Arduino, что резко сокращает порог вхождения и вообще. Что нужно: Arduino IDE 1.8.13, библиотека «PCF8574» от Rob Tillaart (установленная, например, через менеджер библиотек), и немного мозгов.
В моем примере кроме цифрового аналогового переменника, подключенного к портам i2c в Arduino, есть еще один настоящий переменник. Один крайний его вывод подсоединен к земле, второй крайний вывод- к +5 Вольт. А средний вывод (ползунок) соединен с портом A0 на Arduino. Это будет задающий потенциометр.
Внимание, код в студию!

PCF8574 PCF (0×20);
// Обозначили, что микросхема PCF8574 имеет адрес 0×20
// (все выводы адреса микросхемы притянуты к земле)

void setup () {
  PCF.begin ();
  // Запускаем коммуникацию с PCF8574 по i2c

  Serial.begin (9600);
  // Запускаем последовательный интерфейс чтобы видеть, что происходит
}

void loop () {
  int res = analogRead (A0);
  // Читаем значение нашего потенциометра

  Serial.println (res);
  // Выводим значение на последовательный порт, просто поглядеть

  PCF.write8(map (res, 0, 1023, 0, 255));
  // Устанавливаем переменник в новое значение.
  // Команда PCF.write8(х); устанавливает выходы микросхемы
  // PCF8574 сразу одним восьмибитным числом.
  // х может принимать десятичное значение от 0 до 255

 // Команда map (res, 0, 1023, 0, 255) приводит диапазон
 // АЦП от 0 до 1023 к диапазону от 0 до 255
}


Чтобы код работал, не забудьте подключить нужную библиотеку к коду! После установки библиотеки «PCF8574» нужно в меню в Arduino IDE выбрать «Скетч» — «Подключить библиотеку» — «PCF8574».
Фактически, вся суть кода находится в команде
PCF.write8(х);

Именно она устанавливает выходы микросхемы в нужные состояния. Очень просто.

Видео в работе


На этом видео можно оценить громкость переключения релюх. В целом — не бесит. К тому же, конструкция без кожуха, а с кожухом, в корпусе аппарата и тем более если внутри кожуха залить силиконом, звука не будет слышно практически совсем. Ну, немножко только. В общем, смотрите!
Я бы предложил сварить себе предварительно пельменей, или заварить доширак, как советуют многие ютуберы, но видео слишком короткое. Так что откусите козинак, и приятно хрустите во время просмотра! Так вы не заметите, что у видяшки проблема с синхронизацией звука. Не знаю почему так вышло.

Файлы проекта

Да, их несколько. Перво-наперво — проект в Autodesk Eagle. Делалось в версии 9.6.0.
Это вторая, исправленная версия проекта.
🎁digital_pot.zip  49.34 Kb ⇣ 45

А это таблица в Экселе для быстрого пересчета номиналов резисторов! Магия табличного процессора позволяет пересчитать номиналы резисторов исходя из базовой единицы ступени (например, 100 ом), так и исходя из общего сопротивления всех ступеней (т.е. переменника вцелом). В таблице изменяйте только зеленые поля. Так быстро и просто сделать переменник нужного сопротивления.
🎁digital_pot_xls.zip  7.64 Kb ⇣ 41
Да, конечно, таблица простая и не подбирает резисторы из стандартных рядов. Это уже на плечах решивших повторить конструкцию. Просто берите доступный, ближайший к расчетному номиналу и все будет отлично!

Спасибо за внимание!

Камрад, рассмотри датагорские рекомендации

🌼 Полезные и проверенные железяки, можно брать

Опробовано в лаборатории редакции или читателями.




 

Читательское голосование

Нравится

Статью одобрили 49 читателей.

Для участия в голосовании зарегистрируйтесь и войдите на сайт с вашими логином и паролем.
 

Поделись с друзьями!

 

 

Связанные материалы

 

Схема на Датагоре. Новая статья Баширов С.Р. Баширов А.С. Современные интегральные усилители... М.: Эксмо, 2008, 174 стр с илл. В книге рассмотрены конструкции узлов современных усилителей....
Схема на Датагоре. Новая статья Ламповый Hi-Fi усилитель своими руками. Торопкин М. В.... Торопкин М. В. Ламповый Hi-Fi усилитель своими руками. — СПб.: Наука и Техника, 2005. — 240 с: ил....
Схема на Датагоре. Новая статья В. Трамперт. Измерение, управление и регулирование с помощью AVR микроконтроллеров.... Книга описывает особенности применения AVR-микроконтроллеров в технике измерения, управления и...
Схема на Датагоре. Новая статья Конструкции на элементах цифровой техники. Фромберг Э. М.... Фромберг Эдуард Михайлович Конструкции на элементах цифровой техники. — М.: Горячая линия-Телеком,...
Схема на Датагоре. Новая статья Справочное руководство по звуковой схемотехнике. Шкритек П.... Справочное руководство по звуковой схемотехнике. П. Шкритек. Книга специалиста из ФРГ, в которой...
Схема на Датагоре. Новая статья Мощный светодиод в панель... Всем доброго дня! Возникла необходимость закрепить мощные светодиоды на панели без возможности...
Схема на Датагоре. Новая статья Ламповый преамп для бас-гитары на основе Alembic (12AX7, ECC83)... Часто встречается явление, когда басист хочет изменить или улучшить звук своего инструмента....
Схема на Датагоре. Новая статья Современный тюнер своими руками: УКВ стерео + микроконтроллер. Б.Ю.Семенов... Борис Юрьевич Семенов Современный тюнер своими руками: УКВ стерео + микроконтроллер В последние...
Схема на Датагоре. Новая статья Параметры всех трансформаторов ТАН, ТН, ТА, ТПП, ОСМ, ТВК, ТС, ТНВС, ТП, ТПГ, ТПК. Справочник в MS Excel [v.121312, 1543шт.]... Шествуя по радиорынку славного города Симферополя и встречая на прилавках развалы заводских...
Схема на Датагоре. Новая статья Усилительные устройства: Учебник для вузов. Войшвилло Г. В.... Войшвилло Г. В. Усилительные устройства: Учебник для вузов. — 2-е изд., перераб. и доп. — М.:...
Схема на Датагоре. Новая статья Прибор для наладки и тестирования импульсных блоков питания и сварочников... Я занят ремонтом инверторного сварочного оборудования, стабилизаторов переменного напряжения, и т....
Схема на Датагоре. Новая статья Микроконтроллеры AVR семейств Tiny и Mega фирмы ATMEL, Евстифеев А.В.... Издательство: Додэка XXI [М.], 560 стр. 2005 г. Книга посвящена вопросам практического применения...
 

Комментарии, вопросы, ответы, дополнения, отзывы

 

<
Читатель Датагора

vimay

<
Читатель Датагора

geldiev

<
Читатель Датагора

Datagor

<
Читатель Датагора

Yamazaki

<
Читатель Датагора

-=Sm()kE=-

<
Читатель Датагора

-=Sm()kE=-

<
Читатель Датагора

EVA

<
Читатель Датагора

geldiev

<
Читатель Датагора

vimay

<
Читатель Датагора

viladata

<
Читатель Датагора

Datagor

<
Читатель Датагора

-=Sm()kE=-

<
Читатель Датагора

EVA

Добавить комментарий, вопрос, отзыв 💬

Камрады, будьте дружелюбны, соблюдайте правила!

  • Смайлы и люди
    Животные и природа
    Еда и напитки
    Активность
    Путешествия и места
    Предметы
    Символы
    Флаги
 
 
В начало | Зарегистрироваться | Заказать наши киты почтой