Важное примечание:
этот ответ был опубликован, чтобы решить проблему для входа от -20 В до + 20 В , потому что это было то, что было задано. Это умный метод, но он не работает, если лимит входного напряжения остается между рельсами.
Вам нужно будет масштабировать напряжение с помощью резисторного делителя, чтобы получить напряжение от -2,5 В до + 2,5 В и добавить 2,5 В. (Я предполагаю, что 5V блок питания для вашей PIC).
Следующий расчет выглядит длинным, но это только потому, что я подробно объясняю каждый шаг. На самом деле это так просто, что вы можете сделать это в своей голове в кратчайшие сроки.
Сначала это:
R1 представляет собой резистор между и V O U T ,
R2 представляет собой резистор между + 5 V и V O U T , и
R3 представляет собой резистор между V O U T и G N D . VINVOUT
+5VVOUT
VOUTGND
Сколько у нас неизвестных? Три, R1, R2 и R3. Не совсем, мы можем свободно выбирать одно значение, а два других зависят от этого. Давайте выберем R3 = 1k. Математический способ найти другие значения - создать набор из двух уравнений одновременно из двух пар ( , V O U T ) и найти неизвестные значения резисторов. Подойдут любые пары ( V I N , V O U T ), но мы увидим, что мы можем значительно упростить вещи, тщательно выбрав эти пары, а именно предельные значения: ( + 20 В , + 5 В ) и ( -ВяNВО UTВяNВО UT+ 20 В+ 5 В , 0 В ). - 20 В0V
Первый случай: , V O U T = + 5 В
Обратите внимание, что (и это ключ к решению!) Оба конца R2 видят + 5 В , поэтому падения напряжения нет, и, следовательно, нет тока через R2. Это означает, что I R 1 должен быть таким же, как I R 3 (KCL). I R 3 = + 5 В - 0 ВVIN=+20VVOUT=+5V
+5VIR1IR3
.
Мы знаем ток через R1, а также напряжение над ним, поэтому мы можем рассчитать его сопротивление:R1=+20В-5ВIR3=+5V−0V1kΩ=5mA=IR1
.
Найден наш первый неизвестный! R1=+20V−5V5mA=3kΩ
Второй случай: , V O U T = 0 В
То же самое, что и с R2, теперь происходит с R3: без падения напряжения, поэтому без тока. Опять же согласно KCL, теперь I R 1 = I R 2 . I R 1 = - 20 В - 0 ВVIN=−20VVOUT=0V
IR1IR2
.
Мы знаем ток через R2, а также напряжение над ним, поэтому мы можем рассчитать его сопротивление:R2=+5В-0ВIR1=−20V−0V3kΩ=6.67mA=IR2
.
Найден наш второй неизвестный! R2=+5V−0V6.67mA=0.75kΩ
Таким образом, решение: . R1=3kΩ,R2=0.75kΩ,R3=1kΩ
Как я сказал , что это только соотношение между этими величинами , которые имеют важное значение, так что я мог бы также выбрать .
Мы можем сравнить это решение с другой ( V I N , V O U T ) парой, например ( 0 В , 2,5 В ). R1 и R3 теперь параллельны (они оба имеют + 2.5V-0V над ними, поэтому, когда мы вычисляем их объединенное значение, мы находим 0.75R1=12kΩ,R2=3kΩ,R3=4kΩ
VINVOUT0V2.5V , точно значение R2 и значение, которое нам нужно было получить + 2,5 В от + 5 В ! Так что наше решение действительно правильное. [КК штамп идет здесь]0.75kΩ+2.5V+5V
Последнее, что нужно сделать, это подключить к АЦП PIC. АЦП часто имеют довольно низкое входное сопротивление, поэтому это может нарушить наше тщательно рассчитанное равновесие. Не о чем беспокоиться, однако, нам просто нужно увеличить R3 так, чтобы R 3 / / R A D C = 1 k Ω . Предположим, что R A D C = 5 k Ω , тогда 1VOUTR3//RADC=1kΩRADC=5kΩ Отсюда находимR3=1,25KОм. 11kΩ=1R3+1RADC=1R3+15kΩR3=1.25kΩ
редактировать
ОК, это было умно и очень просто, даже если я сам так говорю. ;-) Но почему это не сработает, если входное напряжение остается между рельсами? В описанных выше ситуациях у нас всегда был резистор, через который не проходил ток, так что после KCL ток, поступающий в узел через один резистор, уходил через другой. Это означало, что одно напряжение должно быть выше, чем V O U T , а другое - ниже. Если оба напряжения ниже, ток будет течь только от этого узла, и KCL запрещает это.VOUTVOUT