Почему чтение на ESP32 читает max, когда чтение на UNO читается точно?

У меня есть "Емкостный датчик влажности почвы", подключенный к моему Uno. Очень простой код. analogRead (MoistureSensorPin); Это вернет другое значение, с которым я могу работать.

При применении того же кода к ESP32 с аналогичной настройкой. Он всегда возвращает "4095", что, как я понимаю, является максимальным значением, которое может вернуть аналоговый вход. Но я не могу понять, почему он это делает.

Любая помощь будет очень признательна.

, 👍1

Обсуждение

Спасибо друг, этот ответ тоже мне очень помог, @Guillermo Bastian


1 ответ


1

ESP - это устройство напряжением 3,3 В. Если ваш Uno является устройством 5 В, его аналого-цифровой преобразователь может измерять и сообщать о напряжениях от 0 до 4,9878 В (5 В минус 1 LSB). Если тот же сигнал подается на ESP, любое значение выше 3,29919 вольт (3,3в - 1 LSB) будет считываться как 4095, то есть вне диапазона.

(Если это не ваша проблема, добавление электрических схем каждой системы к вашему вопросу поможет нам лучше понять ее.)

Обновление:

Возможно, идеальным решением было бы другое устройство ESP?

Насколько я знаю, все ESP - это устройства 3,3 В. Итак, решения, которые я вижу, следующие:

  1. Питайте датчик напряжением 3,3 В (это вариант?). таким образом, его выход будет находиться в пределах входного диапазона встроенного кондиционера ESP.

  2. Масштабируйте выходной сигнал датчика от диапазона 0-5 В до диапазона 0-3,3 В, который может принять ESP. Можете ли вы использовать простую делительную сеть или вам понадобится операционный усилитель, может зависеть от датчика, но если, как я подозреваю, это простое устройство сопротивления, то делитель напряжения должен работать.

  3. Используйте внешний 5v A /D преобразователь. Для этого потребуется источник питания 5 В (который, я полагаю, вы уже используете для питания датчика) и преобразование уровня напряжения между A / D и входным контактом (контактами) ESP. Преобразованием может быть купленная плата преобразователя уровня или простая резисторно-делительная сеть.

,

Спасибо за ответ! Я считаю, что это проблема, с которой я сталкиваюсь, так что это проблема аналого-цифрового преобразователя на устройстве ESP... Возможно, идеальным решением было бы другое устройство ESP? (ESP82?) Или вы знаете другое решение для меня, чтобы получить другой результат от моего ESP32? Очень признателен., @Howlan