четверг, 3 августа 2023 г.

Цифро-аналоговый преобразователь

Есть задача управлять платой электронной нагрузки через микроконтроллер. Чтобы делать это нужно подавать напряжение от 0V до 0.5V на вход операционного усилителя, который управляет силовыми транзисторами. Это задача для цифро-аналогового преобразователя (ЦАП), но ни один из микроконтроллеров, которые есть у меня под рукой, не содержат ЦАП.

Варианты действий:

  1. использовать ШИМ (PWM) и ФНЧ (LPF);
  2. собрать R-2R ЦАП используя сопротивления с высокой точностью;
  3. микросхема ЦАП;

ШИМ + ФНЧ

С точки зрения схемотехники этот вариант максимально простой и дешёвый.
Протестировал этот вариант на Arduino Leonardo с ШИМ 8bit 980Hz.

В самом начале заметна нелинейность, а дальше есть "шум" в единицы милливольт если наблюдать мультиметром или осциллографом. Позже попробую увеличить разрядность ШИМ или поднять его частоту.

R-2R

 Для построения R-2R ЦАП нужны сопротивления с высокой точностью, номиналы которых отличаются в два раза. В моём случае это были сопротивления 11k и 22k с допуском 1%.
Линейность хорошая на всем диапазоне, "шумов", которые проявились в варианте ШИМ+ФНЧ, я не заметил (да и не должно их быть, если питание стабилизированное). Когда собрал первый вариант схемы заметил проблему с монотонностью значений в середине диапазона (при значениях 127 и 128 значение на выходе было одинаковым). Оказалось что дело в недостаточной точности сопротивлений и простая перестановка местами улучшила ситуацию.

Микросхема ЦАП

Неплохим вариантов видится MCP4725 который можно купить в виде готовых модулей и есть библиотеки для Arduino.

Комментариев нет:

Отправить комментарий