Почему чтение на ESP32 читает max, когда чтение на UNO читается точно?
У меня есть "Емкостный датчик влажности почвы", подключенный к моему Uno. Очень простой код. analogRead (MoistureSensorPin); Это вернет другое значение, с которым я могу работать.
При применении того же кода к ESP32 с аналогичной настройкой. Он всегда возвращает "4095", что, как я понимаю, является максимальным значением, которое может вернуть аналоговый вход. Но я не могу понять, почему он это делает.
Любая помощь будет очень признательна.
@Howlan, 👍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 В. Итак, решения, которые я вижу, следующие:
Питайте датчик напряжением 3,3 В (это вариант?). таким образом, его выход будет находиться в пределах входного диапазона встроенного кондиционера ESP.
Масштабируйте выходной сигнал датчика от диапазона 0-5 В до диапазона 0-3,3 В, который может принять ESP. Можете ли вы использовать простую делительную сеть или вам понадобится операционный усилитель, может зависеть от датчика, но если, как я подозреваю, это простое устройство сопротивления, то делитель напряжения должен работать.
Используйте внешний 5v A /D преобразователь. Для этого потребуется источник питания 5 В (который, я полагаю, вы уже используете для питания датчика) и преобразование уровня напряжения между A / D и входным контактом (контактами) ESP. Преобразованием может быть купленная плата преобразователя уровня или простая резисторно-делительная сеть.
Спасибо за ответ! Я считаю, что это проблема, с которой я сталкиваюсь, так что это проблема аналого-цифрового преобразователя на устройстве ESP... Возможно, идеальным решением было бы другое устройство ESP? (ESP82?) Или вы знаете другое решение для меня, чтобы получить другой результат от моего ESP32? Очень признателен., @Howlan
- Считанное значение не меняется при вращении потенциометра в Arduino?
- Не получая никакого выхода от датчика ЭКГ AD8232
- Нестабильные показания аналогового датчика
- Шум на пьезо-аналоговом чтении из-за источника питания Arduino
- Различные серийные значения между Arduino Uno и TTGO ESP32 SX1276
- Помогите совместить цифровой и аналоговый код в программировании ардуино
- Датчик влажности SEN0114 низкое максимальное считывание?
- Программа работает при использовании Delay(), но та же программа не работает с millis()
Спасибо друг, этот ответ тоже мне очень помог, @Guillermo Bastian