У меня есть дроссельная заслонка с датчиком Холла, которая выдает сигнал в диапазоне от 0,8 до 3,6 В. Проблема в том, что когда я подключаю его к аналоговому входу Arduino MEGA2560, напряжение никогда не превышает 2,3 В ни при измерении мультиметром, ни при использовании последовательного порта. Как будто что-то в Arduino ограничивает напряжение до этого значения. С чем это может быть связано и как решить?
смоделируйте эту схему - схема, созданная с помощью CircuitLab
Напряжение 2,3 В измеряется между контактом A2 на Arduino и дроссельной заслонкой.
Как мы можем прочитать в таблице данных:
АЦП оптимизирован для аналоговых сигналов с выходным сопротивлением приблизительно 10 кОм или менее. При использовании такого источника время выборки будет незначительным. Если используется источник с более высоким импедансом, время выборки будет зависеть от того, сколько времени требуется источнику для зарядки конденсатора S/H, которое может варьироваться в широких пределах. Пользователю рекомендуется использовать только низкоимпедансные источники с медленно меняющимися сигналами, поскольку это сводит к минимуму требуемую передачу заряда на конденсатор S/H.
Если это случай несоответствия импеданса, то вам нужен какой-то буфер импеданса.
Одним из возможных решений может быть операционный усилитель в конфигурации «повторитель напряжения».
Я думаю, что что-то в вашей настройке не настроено или ведет себя не так, как вы ожидаете.
Если вы измеряете сигнал мультиметром, не подключенным к Arduino, сигнал поднимается выше 2,3 В?
Если оно не поднимается выше 2,3 В, то это не имеет никакого отношения к Arduino, или сигнал может подниматься выше 2,3 В только в течение очень коротких периодов времени, и вы просто недостаточно быстро производите выборку, чтобы увидеть эти события. (выборка в цикле при выводе информации на последовательный монитор не очень быстрая, а мультиметры не предназначены для захвата высокочастотной информации)
Если вы уверены, что сигнал должен превышать 2,3 В, то я могу подозревать, что происходит последнее. Чтобы лучше понять, вы можете посмотреть на сигнал с помощью цифрового осциллографа, который может захватывать высокочастотные сигналы.
Если оно превысит 2,3 В, когда оно не подключено к Arduino, то, похоже, есть какое-то взаимодействие с вашим сигналом и входным сопротивлением АЦП. Входное сопротивление АЦП составляет 100 МОм. , так что это кажется маловероятным, но может произойти.
РЕДАКТИРОВАТЬ:
После прочтения вашего комментария кажется, что вы настроили аналоговый вход как цифровой вход, который не будет вести себя так, как вы ожидали. Вам нужно только установить пин-режим для цифровых пинов. Чтобы прочитать напряжение, просто удалите pinMode(A2, INPUT); строку вашего кода, и когда вы хотите прочитать аналоговое значение, просто используйте AnalogRead(A2);
Транзистор
Элиотт В.