Аналоговый порт чтения установлен как выход
У меня есть аналоговый порт ШИМ, который выводит частоту. Возможно ли выполнить analogRead на том же выводе и получить правильное значение? Если да, то нарушит ли чтение этого порта вывод частоты на выводе? Это делается на устройстве Teensy 3.2. Моя цель — визуально вывести частоту на OLED. Спасибо.
@Wildview, 👍0
Обсуждение3 ответа
Лучший ответ:
Вы хотите напряжение, которое будет считываться вольтметром? Если вы знаете, какое значение вы установили для ШИМ, вы знаете, какое напряжение будет сгенерировано.
Но если вам интересно, вы можете подключить выход ШИМ к выводу АЦП и считать, например, 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()
{
}
Нет, это невозможно.
ШИМ на самом деле не аналоговый — он цифровой, но включается и выключается с высокой скоростью.
Если бы вывод был способен считывать аналоговое значение одновременно с выводом сигнала ШИМ (в чем я сильно сомневаюсь...), все, что вы бы получили, это чередующиеся значения 0 и 1023 (или любой другой диапазон, в котором считывает Teensy).
Вы можете создать параллельную ветвь от вывода ШИМ с помощью диода. И поместите конденсатор 0,1 мкФ и параллельный резистор 1 кОм после диода и подключите аналоговый вывод между диодом и резистором, чтобы считать среднее выходное напряжение ШИМ. Но будьте осторожны, это даст 0,6 В ниже.
- Программный шлюз на порту ШИМ
- avrdude ser_open() can't set com-state
- Загрузка Arduino Nano дает ошибку: avrdude: stk500_recv(): programmer is not responding
- Какое максимальное энергопотребление Arduino Nano 3.0?
- Как навсегда изменить скорость передачи данных ESP8266 (12e)?
- Питание светодиодной ленты - Сколько ампер?
- Arduino nano как клавиатура HID
- Как я могу запитать Arduino Nano от батареи LiPo, желательно 3,7 В
Просто сохраняйте значение PWM в переменной каждый раз, когда вы вызываете analogWrite. Ваша процедура oled-display затем может просто прочитать эту переменную., @Gerben