Функция AnalogWrite выдает меньшее напряжение, чем digitalWrite на моей плате.

Я не могу понять, почему выходное напряжение analogWrite(255) меньше напряжения digitalWrite(255). Мой код и изображение моей установки приведены ниже. Другая полезная информация заключается в том, что я использую NodeMCU от HiLetgo, резисторы сопротивлением 3,3 кОм с измерителями, и что измерители используют ток постоянного тока 1 мА в полной шкале. Спасибо за вашу помощь!

int pPressure       = D2;
int pPrecipProb     = D1;
int pWindSpeed      = D0;

int mTemperature;
int mHumidity;
int mPressure;
int mPrecipProb;
int mWindSpeed;
int mAlert;

void setup() {
  Serial.begin(9600);
  pinMode(pPrecipProb,   OUTPUT);
  pinMode(pWindSpeed,    OUTPUT);
  pinMode(pPressure,     OUTPUT);
  pinMode(LED_BUILTIN,   OUTPUT);     // Инициализируем вывод LED_BUILTIN как выход
}

// функция цикла выполняется снова и снова, вечно
void loop() {
    mPressure           = (int) constrain(mPressure + 1, 0, 255);
    mPrecipProb         = (int) constrain(mPrecipProb + 1,     0, 255 );
    mWindSpeed          = (int) constrain(mWindSpeed + 1,     0, 255 );

    if(mPressure == 255)
    {
      mPressure = 0;
      mPrecipProb = 0;
      mWindSpeed = 0;
    }

    digitalWrite(pPressure,      HIGH   );
    analogWrite(pPrecipProb,    255 );
    analogWrite(pWindSpeed,     mWindSpeed  );


    delay(10);                    

}

Left

Слева: AnalogWrite(255)

Средний: DigitalWrite(HIGH)

Справа: второй, который ездит на велосипеде

, 👍-1

Обсуждение

Пробовали ли вы поменять местами измерители/резисторы?, @Ignacio Vazquez-Abrams

Эти аналоговые счетчики могут нагружать (потреблять ток, достаточный для падения напряжения) «аналоговый» выход. Цифровой выход, вероятно, имеет более высокую способность возбуждения. Я не знаю этого наверняка, поэтому не ставлю это в качестве ответа., @slightlynybbled

@slightlynybbled: AnalogWrite() на ESP8266 выполняет (программное) ШИМ на обычном цифровом выходе., @Ignacio Vazquez-Abrams