AnalogWrite(DAC0, X), Аналоговое напряжение на выводе DAC0 выше при меньшем значении X - это нормально?

Я использую Arduino DUE. Используя команду analogWrite(DAC0, X), я записываю аналоговое значение на этот контакт. Х=0 - 255 насколько я понимаю.

Я наблюдаю, что когда X ниже, напряжение на DAC0 выше, а когда X выше, напряжение ниже.

Это ожидается?

Мой код прост:

void setup() 
{
  analogWriteResolution(12);
}

void loop() 
{
  analogWrite(DAC0, 10 );  
}

, 👍-1

Обсуждение

напряжение ниже ... как узнать, какое выходное напряжение? ... вы не описали, как вы измеряете напряжение., @jsotola

@jsotola Нагрузка? Я не уверен, к чему ты клонишь., @Nick Gammon

Смотрите, комментарии под вопросами для уточнения вопроса, а не для попытки ответить на них косо или нет. Если хотите спросить, под какой нагрузкой производился замер, то спросите., @Nick Gammon


1 ответ


-1

Это звучит неправильно. Попробуйте установить x на 0 и измерить с постоянным током. Вы должны получить ~0,56 В. Повторите с 4095, и вы должны получить ~2,76 В.

Также обратите внимание, что с analogWriteResolution(12) ваш диапазон составляет не 8 бит (0–255), а 12 бит (0–4095).

Выход должен быть следующим:

Vвыход = Vref * Xвход(2N-1) + Vсмещение

где

  • Vсмещение = 0,56 В
  • Vref = 2,2 В
  • 0 ≤ Xв ≤ 4095
,

Согласно [странице об AnalogWrite](https://www.arduino.cc/reference/en/language/functions/analog-io/analogwrite/): * В отличие от контактов PWM, DAC0 и DAC1 являются цифро-аналоговыми преобразователями, и действуют как настоящие аналоговые выходы.* - так что это не должно быть проблемой., @Nick Gammon

@NickGammon Ой, это проскользнуло мимо меня. Я отредактирую. Спасибо, @Blair Fonville