Аналоговый порт чтения установлен как выход

У меня есть аналоговый порт ШИМ, который выводит частоту. Возможно ли выполнить analogRead на том же выводе и получить правильное значение? Если да, то нарушит ли чтение этого порта вывод частоты на выводе? Это делается на устройстве Teensy 3.2. Моя цель — визуально вывести частоту на OLED. Спасибо.

, 👍0

Обсуждение

Просто сохраняйте значение PWM в переменной каждый раз, когда вы вызываете analogWrite. Ваша процедура oled-display затем может просто прочитать эту переменную., @Gerben


3 ответа


Лучший ответ:

1

Вы хотите напряжение, которое будет считываться вольтметром? Если вы знаете, какое значение вы установили для ШИМ, вы знаете, какое напряжение будет сгенерировано.

Но если вам интересно, вы можете подключить выход ШИМ к выводу АЦП и считать, например, 100 значений и вычислить среднее. Вы увидите, что при одинаковом разрешении ШИМ и АЦП вы получите в качестве среднего значения АЦП то же значение, которое вы установили для ШИМ.

Это для M0:

void setup()
{
  Serial.begin(115200);
  while (!Serial);

  analogWriteResolution(10);

  for (int i = 0; i < 1024; i += 10) {
    analogWrite(7, i);
    delay(100);
    long sum = 0;
    int n = 0;
    unsigned long start_time = millis();
    while (millis() - start_time < 100) {
      sum += analogRead(A1);
      n++;
    }
    Serial.print(i);
    Serial.print(' ');
    Serial.println(sum / n);
  }
}

void loop()
{
}
,

1

Нет, это невозможно.

ШИМ на самом деле не аналоговый — он цифровой, но включается и выключается с высокой скоростью.

Если бы вывод был способен считывать аналоговое значение одновременно с выводом сигнала ШИМ (в чем я сильно сомневаюсь...), все, что вы бы получили, это чередующиеся значения 0 и 1023 (или любой другой диапазон, в котором считывает Teensy).

,

0

Вы можете создать параллельную ветвь от вывода ШИМ с помощью диода. И поместите конденсатор 0,1 мкФ и параллельный резистор 1 кОм после диода и подключите аналоговый вывод между диодом и резистором, чтобы считать среднее выходное напряжение ШИМ. Но будьте осторожны, это даст 0,6 В ниже.

,