Линейное понижение напряжения [дубликат]

Возможный дубликат:
как я могу использовать вход 12 В на цифровом выводе Arduino?

Я хочу измерить напряжение автомобильного аккумулятора (диапазон 10-13 В). Но мой AVR принимает аналоговые входы от 0-5В. Как я могу снизить входное напряжение, чтобы я мог измерить разницу напряжений 3 В (10-13 В) примерно за 1024 шага (0-5 В от микроконтроллера).

По сути, мне нужен понижающий преобразователь напряжения, который работает линейно, те, которые я знаю, выдают только фиксированное напряжение (5-20 В всегда преобразуются в 5 В, как 7805).

Я не хочу использовать делитель напряжения, потому что тогда я никогда не смогу получить разрешение 3 В, я думаю.

Ответы (3)

Вы можете использовать простой резистивный делитель для масштабирования 0..13 В до 0..5 В.

В о ты т "=" р 2 р 1 + р 2 В я н

так что для р 1 = 16 кОм и р 2 = 10 кОм вы получаете 0..5 В на выходе для 0..13 В на входе.

Это самое простое решение, но оно преобразует 10..13 В в 3.85..5 В, а не в 0..5 В. Вопрос в том, действительно ли вам нужен полный диапазон АЦП? 10-разрядный АЦП дает разрешение 13 мВ для входного диапазона 13 В. Вы действительно хотите знать напряжение батареи с точностью до 3 мВ?

В любом случае, если вы хотите использовать весь диапазон АЦП, решением является разностный усилитель , который вычитает смещение на 10 В из входного напряжения:

если р 1 "=" р 2 и р ф "=" р г затем

В о ты т "=" р ф р 1 ( В 2 В 1 )

Вы подаете опорное напряжение 10 В на В 1 и подключите аккумулятор к В 2 . Выберите 25 кОм для р ф и р г , и 15 кОм для р 1 и р 2 , и вы получите 0..5 В на выходе для 10..13 В на входе.

Чтобы использовать весь диапазон до 0 В, вам понадобится операционный усилитель RRIO (Rail-to-Rail I/o).


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

Если бы ваше требование можно было бы несколько ослабить, чтобы преобразовать показания АЦП полного диапазона в 9-13 вольт вместо 10-13, когда вы знаете, что ваша батарея не падает ниже 10 В, это будет работать лучше: Диапазон АЦП ниже 10 В не будет использоваться. , но разностный усилитель, предложенный @stevenvh, будет надежно работать вплоть до линии 10 вольт.

ИС опорного напряжения или комбинацию стабилитронов можно использовать для опорного напряжения 9 В (или 9,5 В, если вы настаиваете), поскольку опорное напряжение 10 В, питаемое от батареи, вероятно, станет нестабильным или выйдет из строя, когда шина питания действительно достигнет 10 В.

Точно так же может быть разумным допустить диапазон немного выше 13 вольт (сопоставленный до 0-5 вольт для АЦП): во время зарядки или изменений температуры батарея может достигать более высокого напряжения, чем ее номинальное верхнее число.

Вам нужно 10-битное разрешение или 10-битная точность?

Чтобы получить 10-битную точность, падение напряжения 10 В должно иметь точность >> 0,1%, чего трудно достичь. Резисторы на 0,1% достать не так уж сложно, но как только вы подсчитаете точность TL431 или различные ошибки операционного усилителя (и опорного напряжения 10 В) в уравнении, вы, вероятно, получите 1%, а не 0,1%. И не забывайте, что вы, вероятно, измеряете источник питания 5 В в качестве эталона, который, вероятно, является 7805, который имеет точность всего 5%.

Если OTOH вам нужно только 10-битное разрешение, можно использовать «программируемый» стабилитрон TL431 для вычитания 10 В из вашего входа. Или используйте летний операционный усилитель Стивена, но для этого вам понадобится стабильное опорное напряжение 10 В.