Генерация истинного аналогового сигнала с помощью Arduino

Я ищу способ создать настоящий аналоговый выход с arduino uno. Я постоянно читаю аналоговый вход на выводе a0, все, что я хочу сделать, это отправить тот же сигнал, что и выход. Я знаю, что arduino преобразует сигнал в ШИМ, так что я могу преобразовать его обратно в истинный аналоговый сигнал.У меня тоже есть ЦАП, но он не получает должного вывода.

во-вторых, я хочу отправить тот же сигнал, преобразовав его в биты через Ethernet, так как я посылаю и получаю сигнал.

вот мой код для dac.

#include "Wire.h"
#include "MCP4725.h"
MCP4725 MCP(0x60);
uint32_t microphonePin=A0;
uint32_t threshold=800;
const int ledPin=13; 

void setup() {
    Serial.begin(115200);
    pinMode (ledPin, OUTPUT);
    Serial.print("MCP4725 test program: ");
    Serial.println(MCP4725_VERSION);
    if (MCP.begin() == false)
     {
       Serial.println("Could not find sensor");
     }

    MCP.begin();
 }

void loop() {
   uint32_t sensorValue=analogRead(microphonePin);
   MCP.writeDAC(sensorValue);
   Serial.println(MCP.getValue());
   if (MCP.getValue()>threshold)
    {
      digitalWrite (ledPin, HIGH);
    }
   else{ digitalWrite(ledPin, LOW); }

  } 

вот моя схема для аудио усилителя

here is my circuit for audio amplifier

а для динамика он подключен на DAC out.

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

, 👍1

Обсуждение

вы не можете вывести тот же сигнал, что и intput, потому что вы не читаете весь входной сигнал ... вы читаете только прерывистые отсчеты входного сигнала, @jsotola

используя эти значения я хочу создать если не один и тот же сигнал то примерно один и тот же сигнал, @eToll Systems

Можете ли вы описать, чем полученный вами сигнал отличается от ожидаемого? Какие частоты вам нужны для обработки?, @PMF

я соединил микрофон со схемой усилителя на моем аналоговом выводе a0, теперь я хочу, чтобы он посылал этот сигнал на динамик, который соединен с ЦАП. ЦАП соединен выводами А4 и А5., @eToll Systems

Почему вы подключаете динамик к микрофону через Arduino? Почему бы не подключить схему усилителя микрофона непосредственно к усилителю динамика? Uno на самом деле не предназначен для обработки звука. Кое-что можно сделать, но результат не очень хороший. И вы даете ему ненужную нагрузку с выводом оцифрованного сигнала как аналогового., @chrisl

моя конечная игра состоит в том, чтобы подключить микрофон к одному arduino и динамик к другому arduino, а затем общаться между ними, так как они будут находиться далеко друг от друга. но проблема в том, что его не в состоянии получить вывод на одном устройстве два устройства далеко., @eToll Systems


3 ответа


4

Я вижу, что MCP4725 использует проводную библиотеку с тактовой частотой по умолчанию 100 000 кб/с.

При грубой оценке каждый вызов MCP.writeDAC или MCP.GetValue будет иметь длину не менее 32 бит, и вы используете три из них в каждом цикле.

Вот этот:

   Serial.println(MCP.getValue());
   if (MCP.getValue()>threshold)

если это избыточно, вы должны сохранить значение во временной переменной и использовать его как в "print", так и в "if".

С 10us для каждого бита это означает 1060 us для каждого цикла. Аналоговое считывание также занимает 100us для завершения. За все 1160у минимум. Действительно ли нужен MCP.GetValue ()?

Это означает, что максимальная частота выборки составляет 860 Гц, а максимальная полоса пропускания-430 Гц. Я сомневаюсь, что это приемлемая пропускная способность для микрофона.

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

В некоторых пределах вы можете изменить библиотеку MCP4725, чтобы использовать быстрые проводные часы в четыре раза быстрее, если это соответствует вашим требованиям. Если вы также отбросите два вызова MCP.GetValue (), это будет снова почти в три раза быстрее, до 5 кГц.

Кроме того, вы можете поискать более быстрый АЦП на Arduino.

Обновление после схемы операционного микрофонного усилителя.

АЦП работает только при положительном напряжении. Короткое замыкание выходного конденсатора усилителя!

,

Эй, спасибо за ответ я удалил эти две линии только разница их меньше шума высокого тона, но я не получаю желаемый выход., @eToll Systems

@eTollSystems Oh!!! Теперь я вижу еще один большой изъян в вашем дизайне!!! АЦП не работает с отрицательными напряжениями!!! См. Обновленный ответ., @Dorian


2

Если вам нужно что-то более простое, чем транзисторная версия, вы также можете использовать следующее, а для других вариантов перейдите к отметке --here--

Олдстайл вышел. это работает как вакуумная трубка, и хотя я использую LDR, вы также можете использовать тепло или настоящую вакуумную трубку.

Вам Понадобится:

  1. Низкое сопротивление LDR или несколько параллельно.
  2. Картонную коробку или другую коробку, чтобы изолировать ее от внешнего вмешательства.
  3. Светодиод или лампочка.

Как это работает: пока светодиод мигает, LDR требуется определенное время, чтобы добраться до значений(часто до нескольких мс), так что это стабилизирует ваш сигнал АЦП.

Вы посылаете желаемую амплитуду в виде ШИМ-сигнала источнику света(вероятно, вы хотите инвертировать свой шим-сигнал), который нацелен на LDR. вы посылаете свою звуковую частоту через LDR, который теперь работает как переменный резистор.

!!Используйте низкоомные ЛДР и яркий источник света, чтобы получить как можно более низкое сопротивление. с помощью (слабых)лазеров вы можете получить нормальное значение LDR примерно от 1 до 0 Ом. но вы, скорее всего, будете использовать светодиод, так как он имеет более точный контроль интенсивности. Ancient style analog out like vacuum tubes

Еще один простой метод-инверсия аналогового считывания в Arduino. вы в основном используете несколько выходных портов с различными сопротивлениями, чтобы получить другой выход, когда все сделано правильно в этом случае вы можете получить около 257 различных уровней громкости с 8 выводами для амплитуды и 1 для частоты.

- вот...

- добавил это здесь в качестве простого объяснения/руководства- сначала начните с того, чтобы заставить ваш микрофон работать, посмотрите, есть ли у analogread какие-то высокие значения. если он остается на 0, 1 или другом низком значении, значит, вы не включили транзистор в свой микрофон, чтобы усилить сигнал.

-Для вашего вывода начните с проекта без микрофона, чтобы увидеть, правильно ли он работает. вам нужно будет использовать 2 контакта для питания вашего выхода(исключая землю, предполагая одноканальное аудио). -первый, который вам понадобится для вывода частотного сигнала. другой - для амплитуды/громкости/усиления. -Мы будем использовать любой тип усилителя(транзистора) для слияния сигналов, в данном случае я предполагаю транзистор, так как они дешевы, просты маломощны, имеют легкий динамический диапазон и у вас, скорее всего, они уже есть.

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

Способ 1: подсоедините вывод частотного выхода к выводу эммитора транзистора, куда обычно входит+. Соедините амплитудный выходной вывод с базовым выводом транзистора(триггера) , добавьте очень маленький конденсатор(или больший для тестов) между базой и землей, чтобы преобразовать АЦП в аналоговое напряжение вместо импульсов. коллектор транзистора, который вы обычно подключаете к земле, является вашим выходом. вы можете добавить небольшой резистор после него, особенно если вы используете его для аудиокабеля. вы также можете напрямую подключить очень маленький динамик, чтобы услышать звук по кабелю(будьте осторожны с подключением arduino IO к таким вещам, как ПК). но проверьте, какое напряжение поддерживает аудиопорт других устройств, так как контакты ввода-вывода arduino генерируют 5 В

способ 2. подсоедините вывод частотного выхода к базе транзистора, подсоедините АЦП амплитудного вывода к выводу эмиттера транзистора, подсоедините конденсатор большей емкости, чем описано в методе 1, между выводом эмиттера транзистора и землей Arduino. коллектор снова является вашим выходом, вы можете использовать его в качестве резистора. подсоедините провод от аналогового порта к выводу эмиттера транзистора, чтобы считывать напряжение в конденсаторе для точного регулирования напряжения.

поработайте со значениями размера конденсатора. (теперь у вас есть энергетический пул перед транзистором, если вы знаете ампер, на который вы выводите, вы можете использовать его для регулирования пула, в противном случае вы можете прочитать его с помощью аналогового контура обратной связи). важно знать, что если вы хотите точный объем, вы используете больший конденсатор, если вы хотите быстрые различия в объеме, вы используете небольшой и намеренно используете больше контактов для зарядки. для Arduino Uno из-за низкой скорости аналогового считывания я бы рекомендовал больший конденсатор или это.

дополнительные вещи при сборке всей системы вы можете столкнуться с проблемами скорости. для этого необходимо подключить микрофон как к цифровому, так и к аналоговому контакту. цифровой контакт постоянно контролирует частоту, а аналоговый контакт иногда измеряет амплитуду(добавьте небольшой конденсатор, чтобы получить эту среднюю амплитуду). Я бы также рекомендовал уменьшить точность аналогового считывания, чтобы предотвратить проверку всех 1024 возможных напряжений.

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

--конец простой версии--

Вы можете попробовать использовать 2 контакта для выходного сигнала. один из них посылает цифровую частоту(3 контакта, если вы также хотите получить звук с отрицательной полярностью). этот выходной сигнал должен поступать на что-то вроде транзистора, потенциометра с цифровым управлением или усилителя. Я предположу, что вы используете транзистор, так как они наиболее распространены и довольно быстры. первый вывод цифрового выхода должен идти к выводу эмиттера транзистора , второй вывод используется для объема и будет идти к базе транзистора. возможно, вам захочется добавить очень маленький конденсатор между базой и землей, чтобы уменьшить частотные помехи(чтобы частота АЦП не появлялась в вашем сигнале). вывод коллектора будет вашим аналоговым выходом, подходящим для аудио.

Итак, основные шаги:

  1. разделите сигнал на цифровую частоту и громкость. (цифровая частота может быть сделана увидев сигнал выше определенного значения, как высокий, а другой-как минимум, это работает лучше всего, когда вы используете как положительные, так и отрицательные стороны саундвейв в противном случае вы должны выбрать очень низкая цифра)(аналог частоты буквально в аналоговое значение для положительного только аудио, а значение-512 (*-1 для отрицательных чисел, чтобы получить только положительные числа) для полного звука при включении негативных аудио)
  2. Пошлите частотный сигнал на вывод эмиттера вашего диода.
  3. Отправьте сигнал амплитуды на базовый вывод вашего диода.
  4. Соедините небольшую емкость между землей и амплитудой сигнала.

однако то, что сказал Дориан, - это вещи, которые вы, возможно, захотите отслеживать, так как они часто действительно имеют тенденцию убивать такие проекты, потому что вы очень легко сталкиваетесь с ограничениями скорости(аналоговое чтение в arduino ar в основном 1024 цифровых чтения(буквально)).

Итак, несколько советов для вашего cirquit:

  1. Если у вашего микрофона нет транзистора, подключенного для усиления сигнала, добавьте его, так как в противном случае аналоговый порт arduino uno недостаточно чувствителен для измерения сигнала. вы можете и должны проверить это с помощью проекта, в котором вы постоянно читаете и печатаете. вы можете добавить небольшой конденсатор между аналоговым портом и землей, чтобы просто измерить напряжение.
  2. используйте диоды для выпрямления сигнала микрофона, ваш arduino может считывать только положительное напряжение, микрофон также посылает отрицательное напряжение. перенаправьте отрицательное напряжение на землю arduino (вы можете инвертировать отрицательное напряжение с помощью транзистора или некоторых других методов для считывания отрицательных напряжений, но я бы рекомендовал просто посылать отрицательные сигналы на землю, так как это также даст почти полный диапазон).
  3. используйте 2 микрофона, один для частоты, а другой для амплитуды. или подключите выход вашего микрофона как к аналоговому, так и к цифровому порту. в последнем случае вы можете использовать резисторы, чтобы снизить ток, идущий к ним, это гарантирует, что оба они получат точное напряжение.
  4. избегайте как можно большего количества аналоговых чтений мэнни, хранить их лучше, чем вызывать дважды
  5. использовать C/с++ bitmanipulations для IO, это не только более удобной в программу более крупных систем при их использовании, они также намного быстрее( для Arduino Uno имеет PORTB, PORTD, Пинд, PINB, ДРРР, DDRB, а A и C-версии(однако чаще всего использую только D и B) заранее. битманипуляции требуют очень мало знаний по сравнению с другими методами программирования, пока вы знаете адреса портов, которые опять же для arduino uno являются предопределенным поиском: arduino uno bit manipulations или arduino uno PORTB.
  6. вы можете сэмплировать звуковую частоту с помощью цифрового порта на более высокой частоте, чем амплитуда. поскольку звук часто не скачет так быстро по амплитуде, как вы бы это ясно заметили. это означает, что вы можете считывать звук с помощью вывода ввода-вывода и записывать его на другой вывод ввода-вывода, кроме того, вы можете один раз в каждый интервал измерять амплитуду для использования, что делает ваш код намного быстрее.

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

Для тех, кто хочет получить скетч ms paint:

версия первая: Version one resistors are optional, feedback look can be added

версия вторая: Version 2 can be made without resistors or feedbackloop

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

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

Как это работает Транзистор посылает напряжение от эмиттера к коллектору(или наоборот, в зависимости от используемого вами транзистора). так и в методе 2, который также работает для МОП-транзисторов. мы посылаем АЦП-сигнал на конденсатор, чтобы зарядить его до определенного напряжения, однако вы также должны добавить резистор к земле или кабель к аналоговому порту, потому что в противном случае напряжение может просто возрасти до 5 В. Этот конденсатор, который мы заряжаем, становится аналоговым источником питания. мы подключаем его к эммитору(или контакту, который вы обычно подключаете на стороне+). поэтому, если мы откроем транзистор(закроем cirquit), положив положительное напряжение на основание или триггер, то вы получите выход напряжения, которое вы в него вводите. таким образом, если вы воспроизводите цифровую частоту на базе полностью открывающего и закрывающего транзистора, то вы получаете выходное напряжение, аналогичное напряжению в конденсаторе. способ работает сложнее, но транзистор открывается вверх относительно текущего идет от основания до выхода, поэтому мы используем ШИМ и небольшой конденсатор для получения аналогового напряжения на нем, лишь отчасти открыв его, затем мы отправим цифровой аудио сигнал на PIN, который обычно подключается к 5V и вы получите, что частота расплатившись транзистор действует как переменный резистор Итак, метод один использует транзистор в качестве переменного резистора И метод два использует транзистор или fet в качестве переключателя, который использует накопление напряжения в конденсаторе, на самом деле не нужно использовать ШИМ, если вы используете контур обратной связи. Basic True analog without the transistor to create the frequency(for method 2 only)

,

я буду работать над этим, чтобы увидеть, дает ли это выход желания., @eToll Systems

микрофон работает нормально. Я не в состоянии понять, какую еще частоту вы посылаете на транзистор. одним из них будет выход микрофона через arduino, который будет содержать данные ШИМ., @eToll Systems

@eTollSystems данные ШИМ используются только для амплитуды/объема. поскольку шим посылает цифровую частоту, которая также будет отображаться как звук, и делает это только X раз в секунду, мы не можем использовать шим для звукового сигнала., @TeD van Loon

@eTollSystems сигнальный вывод используется для отражения частоты/звука, который слышит микрофон. поэтому вы посылаете звук цифровой. и используйте ШИМ для громкости., @TeD van Loon

@eTollSystems итак, если бы ваш микрофон давал эти сигналы: 0,382,890,3,999,4,439,0 , то вы могли бы, например, сказать, что все выше 200-это высоко, а все остальное-низко. если вы используете цифровой вывод для чтения микрофона, это будет намного проще, так что вы можете просто спросить, является ли он высоким или низким( вы можете подключить микрофон как к аналоговому, так и к цифровому порту(просто добавьте резистор к цифровому порту)), @TeD van Loon

таким образом, звук микрофона передается как цифровой сигнал, а громкоговоритель может передаваться как ШИМ., @TeD van Loon

@eTollSystems Я добавил 2 новых метода, первый похож на другие, но более простой и старомодный, так что это должно быть гораздо проще сделать. другой совершенно другой, но не нуждается в преобразовании, так как с его помощью вы можете буквально записать аналоговый сигнал(однако для этого требуется больше контактов). Я также добавил некоторые разъяснения по поводу метода 2-го транзистора. ваше микрофонное оборудование кажется хорошим, и вы сказали, что оно работает. однако вы можете подключить + out к аналоговому порту и через резистор к цифровому порту, чтобы также получить цифровой сигнал, или вручную преобразовать аналоговый код в цифровой., @TeD van Loon

я рассмотрю ваше предложение, и да, мой сигнал микрофона работает нормально. когда я подключаю эти два контакта непосредственно к динамику, я получаю правильный выход. Теперь я хочу разделить микрофон и динамик и общаться с ними через один arduino, если это сработает, то я буду еще больше разделять микрофон и динамик, соединяя микрофон в одном arduino и динамик в другом arduino и общаться между arduino. Если у вас есть какие-либо предложения или альтернативы для этого, пожалуйста, предоставьте. такс заранее, @eToll Systems

@eTollSystems если ваш второй arduino предназначен только для уменьшения нагрузки в первом, вы также можете просто подключить микрофон с усилителем к arduino и динамику, вы можете добавить дополнительный транзистор в качестве дополнительного усилителя, если он должен быть громче. вы также должны сначала попробовать выход с помощью tone() и некоторых предопределенных амплитуд, так как образец analogread действительно низкий, поэтому чтение микрофона с arduino в качестве аналогового устройства часто требует много пользовательских расширений для вашего arduino, чтобы все еще слышать звук propper.(без другого кода arduino теоретически может выполнять 10.000 аналоговых потоков в секунду максимум), @TeD van Loon

эй, Тед я начал получать некоторые выходные желания, но их все еще много шума. Я добавлю больше фильтра и транзистора, чтобы сделать это правильно. и нет, я не разделяю мой микрофон и динамик из-за нагрузки моя конечная игра-микрофон будет в одной комнате, а динамик в другой, и я должен быть в состоянии здесь, что голос правильно ., @eToll Systems

@eTollSystems, чтобы определить, где проблема, вы можете проверить частоту выборки, чтобы мы точно знали, что это правильно, так как это наиболее вероятно, чтобы иметь проблемы. также я не использовал тот конкретный чип усилителя, который вы используете, но у вас есть источник питания+, подключенный к arduino + и источник питания - к arduino - а не источник питания, который обеспечивает отрицательные напряжения относительно земли arduino. В чипах, которые я использую, есть опорный вывод, чаще всего он предназначен только для напряжения, так что вы можете поставить его на 2,5 В с помощью резисторов. это сделает его выходным от 0в до 5в, @TeD van Loon

для этой волны, однако, вам нужно будет разделить ее на 2 секции. <2.5v would be one wave and >2.5 в будет еще одна волна. поэтому вам нужно посмотреть, находится ли он ниже или выше. если выше просто вычесть 2,5 В и сделать результат *2. если он ниже. чем сделать это -2.5 v снова и *-2 вы можете захотеть, чтобы осветить низкую область вместо того, чтобы использовать только точно 2.5 v, например >2<3, @TeD van Loon

@eTollSystems Для другого noice. опять же не на основе вашего конкретного чипа, но я использую медицинские усилительные чипы, которые сделаны для низкого шума. но когда строишь неправильно, все равно получаешь хорошее. поэтому то, что вы должны делать с высоким усилением : держите короткие кабели, избегайте статических зарядов или областей с магнитными полями, такими как линии заземления или трансформаторы и электрические кабели/катушки. более простой подход-использовать фольгу aluim, чтобы сделать клетку Фарадея вокруг вашего усилителя cirquit. так что поставьте алуим вокруг более длинных джамперкаблов, чтобы защитить их. и положите картон с aluim вокруг cirquit, подключите aluim к arduino grnd, @TeD van Loon


1

для вашего случая(аудио) есть также https://github.com/connornishijima/arduino-volume1 или библиотеку объем установить его вы можете использовать Git, чтобы получить файлы, или, если вам использовать Arduino IDE, вы можете открыть в Arduino IDE и в программе перейдите на helptools(4thoptionoftopmenubar)->управление библиотеками-> {тип объема в строке поиска}-> установить библиотеку под названием объем. вы также можете выбрать том 2 или том 3, смотрите git для различий.

однако для этого все еще используется микро-шим, поэтому это не настоящий аналог, но для звука он работает. также обратите внимание, что при низкой громкости звук будет затронут. Я рекомендую использовать только тома в диапазоне от 100 до 255.

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

НЕ НАСТОЯЩИЙ АНАЛОГ, но это решает вашу проблему, методы, которые я описал в своем другом ответе, будут хорошо работать для большинства других аналоговых случаев, или даже добавление небольшого конденсатора на выходе ma может сработать во многих случаях. однако, поскольку аудио требует очень быстрого изменения напряжения, этот метод хорошо работает, также поскольку громкость считывается вашим разумом, а не цифровым устройством, в него встроен фильтр нормализации и низкая скорость выборки, а также чувствительность только к низкой частоте(как работают человеческий мозг и уши), что сделает громкость естественной.

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

в качестве альтернативы вы можете использовать регистр сдвига и подключать сопротивления к выходам, например, 12800, 6400,3200,1600,800,400,200,100. вроде немного, но наоборот, так как звук становится громче при более низком сопротивлении. вы можете использовать другие значения, просто не делайте их низкими, так как выходы arduino 5 В и 3,3 В намного выше, чем у вашего среднего подключения наушников, а также одновременное включение нескольких параллельных резисторов дает меньшее сопротивление. например, если мы включим резистор 100 Ом и резистор 200 Ом, мы получим выход около 66 66666666 Ом, так как выход равен 1/((1/Резистор1)+(1/Резистор2)+(1/Резисторет) таким образом, 8-разрядный сдвигающий регистр может обеспечивать 256 различных уровней громкости в качестве истинного аналога. если у вас есть свободные порты на вашем ardruino, вы также можете использовать их вместо сдвигового регистра, однако обязательно используйте битовые манипуляции, а не цифровую запись, так как более поздний вариант работает медленно. 1 вывод = 2 уровня громкости. 2-контактный = 4 уровня громкости 3-контактный = 8 уровней громкости 4-контактный = 16 уровней громкости 5-контактный = 32 уровня громкости 6 контактов = 64 уровня громкости. 7 контактов = 128 уровней громкости. 8 контактов = 256 уровней громкости и т.д. этот метод может дать истинное аналоговое напряжение, если вы знаете сопротивление на выходе, однако динамик отличается сопротивлением в зависимости от многих факторов, но это все равно даст вам хороший регулятор громкости, такой как фактическое аналоговое напряжение, даже если на самом деле это больше аналоговой силы тока. чтобы получить напряжение, терминал подключается ко всем выходам резисторов к другому резистору для создания делителя напряжения, это работает для таких вещей, как дисплеи vga, однако для таких вещей, как звук, освещение и т. Д. вы должны просто напрямую выводить выходные данные резисторов

,