Омметр цифровой автоматический - что я делаю не так?

Все прочитали, вроде даже поняли, взяли паяльник - а нифига не получается? Скорее сюда! Поможем. Чем можем...
Ответить
Родился
Аватара пользователя
Сообщения: 5
Зарегистрирован: Чт июн 24, 2010 13:33:15
Откуда: Минск

Сообщение keht »

Здравствуйте, товарищи!

Извините, но будет много букв на очень простую схему :)

Решил сделать цифровой омметр с автоматическим выбором предела измерения. Номиналы, подлежащие измерению: от 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, чтобы не разводить/распаивать отдельными элементами? Гугл по теме, к сожалению, не увечался успехом.
Kill yourself - save the Planet!
Реклама
Друг Кота
Аватара пользователя
Сообщения: 20093
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Сообщение Gudd-Head »

keht писал(а):R10 - компенсирует влияние R9 на делитель.
Вот это пипец. R9 поставить 5/0.1 = 50 Ом и не париться.
keht писал(а):всё работает, и даже выдаёт точность ~0.1%.
При минимальном Uкэ_нас = 40 мВ, т.е. 0.04/5*100% = 0.8 %???

И зачем заводить на регистр вывод "R", если достаточно просто записать в него "00000000"?
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Реклама
Родился
Аватара пользователя
Сообщения: 5
Зарегистрирован: Чт июн 24, 2010 13:33:15
Откуда: Минск

Сообщение keht »

Gudd-Head писал(а):Вот это пипец. R9 поставить 5/0.1 = 50 Ом и не париться.
Действительно, перемудрил. Уберу нафик.
Gudd-Head писал(а):При минимальном Uкэ_нас = 40 мВ, т.е. 0.04/5*100% = 0.8 %???
0.1% получился при испытаниях. Аналитически рассчитывать как-то даже не подумал : ) Похоже, просто повезло с входными данными. В реальном устройстве ожидаю куда более печальных результатов : )
Gudd-Head писал(а):И зачем заводить на регистр вывод "R", если достаточно просто записать в него "00000000"?
Спасибо за хинт! Я почему-то решил, что перед началом работы обязательно следует пользоваться резетом. Освобожу тогда ногу мк, а резет подтяну резистором от греха подальше.
Kill yourself - save the Planet!
Друг Кота
Аватара пользователя
Сообщения: 20093
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Сообщение Gudd-Head »

Я бы, конечно, применил полевики (им и в затвор можно резисторы не пихать). Но если у вас нет... :(
В качестве сборки можно посмотреть на что-то вроде ULN2003A, но по мне проще напаять 8 штук отдельных транзисторов в корпусе SOT-23.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Реклама
Эиком - электронные компоненты и радиодетали
Родился
Аватара пользователя
Сообщения: 5
Зарегистрирован: Чт июн 24, 2010 13:33:15
Откуда: Минск

Сообщение keht »

Gudd-Head писал(а):Я бы, конечно, применил полевики (им и в затвор можно резисторы не пихать). Но если у вас нет... :(
В качестве сборки можно посмотреть на что-то вроде ULN2003A, но по мне проще напаять 8 штук отдельных транзисторов в корпусе SOT-23.
Планировал паять обычные ТО92, которых навалом, и которые печалят необходимым количеством отверстий в плате. Поэтому идея с SOT-23 - очень понравилась. Я как-то сразу не подумал, что бывают другие типы корпусов, не требующие дырок в плате : ) Полез гуглить и очень удивился, когда оказалось что напридумывали не меньше полусотни разных вариантов - есть из чего выбирать.

ULN2003А - как раз то что я искал изначально. Спасибо за наводку!
Kill yourself - save the Planet!
Реклама
Друг Кота
Аватара пользователя
Сообщения: 20093
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Сообщение Gudd-Head »

А хотите ещё идейку? Можно собрать RC-генератор с исследуемым резистором, и просто мерить частоту генерации :idea:
Возможно, переключая конденсаторы для расширения измеряемого диапазона.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Реклама
Друг Кота
Сообщения: 13796
Зарегистрирован: Чт сен 20, 2007 14:08:00

Сообщение kalobyte »

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

Вернуться в «Практика»