Аналоговый входной контакт Arduino влияет на входящий сигнал

У меня есть дроссельная заслонка с датчиком Холла, которая выдает сигнал в диапазоне от 0,8 до 3,6 В. Проблема в том, что когда я подключаю его к аналоговому входу Arduino MEGA2560, напряжение никогда не превышает 2,3 В ни при измерении мультиметром, ни при использовании последовательного порта. Как будто что-то в Arduino ограничивает напряжение до этого значения. С чем это может быть связано и как решить?

схематический

смоделируйте эту схему - схема, созданная с помощью CircuitLab

Напряжение 2,3 В измеряется между контактом A2 на Arduino и дроссельной заслонкой.

Вы не даете нам много подсказок, чтобы помочь вам. (1) Схема. (2) Спецификация дроссельной заслонки. (3) Конфигурация аналогового входа в коде. Пожалуйста, отредактируйте свой вопрос.
Извините за это, только что отредактировал свой вопрос. У меня очень мало информации о дросселе, за исключением того факта, что это дроссель с датчиком Холла и диапазона выходного сигнала, который он производит. Входной контакт просто инициализируется как: pinMode(A2, INPUT);//дроссель в

Ответы (2)

Как мы можем прочитать в таблице данных:

АЦП оптимизирован для аналоговых сигналов с выходным сопротивлением приблизительно 10 кОм или менее. При использовании такого источника время выборки будет незначительным. Если используется источник с более высоким импедансом, время выборки будет зависеть от того, сколько времени требуется источнику для зарядки конденсатора S/H, которое может варьироваться в широких пределах. Пользователю рекомендуется использовать только низкоимпедансные источники с медленно меняющимися сигналами, поскольку это сводит к минимуму требуемую передачу заряда на конденсатор S/H.

Если это случай несоответствия импеданса, то вам нужен какой-то буфер импеданса.

Одним из возможных решений может быть операционный усилитель в конфигурации «повторитель напряжения».введите описание изображения здесь

http://www.atmel.com/Images/Atmel-2549-8-bit-AVR-Microcontroller-ATmega640-1280-1281-2560-2561_datasheet.pdf

Я думаю, что что-то в вашей настройке не настроено или ведет себя не так, как вы ожидаете.

Если вы измеряете сигнал мультиметром, не подключенным к Arduino, сигнал поднимается выше 2,3 В?

Если оно не поднимается выше 2,3 В, то это не имеет никакого отношения к Arduino, или сигнал может подниматься выше 2,3 В только в течение очень коротких периодов времени, и вы просто недостаточно быстро производите выборку, чтобы увидеть эти события. (выборка в цикле при выводе информации на последовательный монитор не очень быстрая, а мультиметры не предназначены для захвата высокочастотной информации)

Если вы уверены, что сигнал должен превышать 2,3 В, то я могу подозревать, что происходит последнее. Чтобы лучше понять, вы можете посмотреть на сигнал с помощью цифрового осциллографа, который может захватывать высокочастотные сигналы.

Если оно превысит 2,3 В, когда оно не подключено к Arduino, то, похоже, есть какое-то взаимодействие с вашим сигналом и входным сопротивлением АЦП. Входное сопротивление АЦП составляет 100 МОм. Ом , так что это кажется маловероятным, но может произойти.

http://www.atmel.com/Images/Atmel-2549-8-bit-AVR-Microcontroller-ATmega640-1280-1281-2560-2561_datasheet.pdf

РЕДАКТИРОВАТЬ:

После прочтения вашего комментария кажется, что вы настроили аналоговый вход как цифровой вход, который не будет вести себя так, как вы ожидали. Вам нужно только установить пин-режим для цифровых пинов. Чтобы прочитать напряжение, просто удалите pinMode(A2, INPUT); строку вашего кода, и когда вы хотите прочитать аналоговое значение, просто используйте AnalogRead(A2);

https://www.arduino.cc/en/Reference/PinMode

https://www.arduino.cc/en/Reference/AnalogRead

Когда я измеряю сигнал мультиметром без подключения к Arduino, сигнал превышает 2,3 В и работает во всем диапазоне (от 0,8 до 3,6 В).
Вы пытались изменить код, как я предложил?
Да, спасибо, но проблема была в том, что я недозаряжал Arduino, подавая на плату только 5 В!