Извините, но будет много букв на очень простую схему
Решил сделать цифровой омметр с автоматическим выбором предела измерения. Номиналы, подлежащие измерению: от 10 Ом до 1 МОм. Ограничений по точности не ставил - как получится.
В основе прибора - банальный делитель. Зная сопротивление одного плеча и напряжения с двух сторон, легко можем вычислить неизвестное сопротивление.
Замером напряжения и индикацией занимается мк (в моем случае - ардуино). Т.к. его АЦП дает 1024 значения на интервале 0-5в, очевидно, что для покрытия требуемого диапазона сопротивлений придется сделать несколько делителей и поочерёдно подключать исследуемый резистор к ним. Так же известно, что наивысшая точность АЦП в середине диапазона, поэтому желательно держать коэффициент делителя в районе 0.5.
В результате получаем следующую схему:
8-ми битный сдвиговый регистр, к каждому выходу подключаем плечо одного из делителей (на схеме для экономии места изображено только 3, но в реальности их будет 8 ).
Rx - измеряемый резистор, на схему не запаян, подключается через клеммы/крокодилы/щупы/итп.
R11-R18 - токоограничительные.
R1-R8 - заранее известные, взятые с таким шагом, чтобы равномерно покрыть весь диапазон - назову их эталонными.
R9 - для ограничения тока, чтобы не превысить допустимые транзистором 100ма в случае, если сопротивлений измерямого и эталонного резисторов для этой цели окажется недостаточно.
R10 - компенсирует влияние R9 на делитель.
A0 - нога АЦП мк, на которой меряем напряжение.
Элементы:
Источник питания - 5в, взятые с мк. Питание самого мк пока не рассматриваю.
Сдвиговый регистр - 74HCT164 (макс ток на ногу - 20ма) - выбор обусловлен наличием.
Транзисторы S9014 (на схеме аналог, т.к. в протеусе их не оказалось) - выбор обусловлен наличием. Даташит: http://www.fairchildsemi.com/ds/SS/SS9014.pdf
мк - Aurduino Uno, макс ток на ногу - 40ма.
Алгоритм работы софта:
0. Получена команда измерить резистор.
1. Двигаем единицу по регистру, поочерёдно включая все восемь делителей. На каждом шаге снимаем напряжение с A0.
2. В полученных данных находим число, максимально близкое к 2.5в - это будет самое точное измерение. (и тут же обрабатываем граничные случаи, когда измерить резистор нельзя или он мертв).
3. По формуле расчета делителя получаем значение измеряемого сопротивления.
4. Выводим результат.
Тестовый прогон в proteus показал, что всё работает, и даже выдаёт точность ~0.1%.
А теперь собственно вопросы.
1. Т.к. это первая схема в моей жизни, то я просто не мог не накосячить. Подскажите, пожалуйста, где ошибки.
2. Существует ли подходящая мне сборка 8-ми транзисторов в одном dip, чтобы не разводить/распаивать отдельными элементами? Гугл по теме, к сожалению, не увечался успехом.


