Форум программистов, компьютерный форум, киберфорум
Электроника и радиотехника
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.68/81: Рейтинг темы: голосов - 81, средняя оценка - 4.68
0 / 0 / 0
Регистрация: 03.09.2015
Сообщений: 29

Лабораторный мониторинг сопротивления жидкости

06.09.2015, 16:47. Показов 15230. Ответов 47
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Сразу хочу предупредить - я врач-исследователь. Поэтому, несмотря на старательные попытки подтянуть знания в области электроники, могу делать тупейшие ошибки. Сейчас занимаемся стволовыми клетками и мне понадобилось получить мониторинг сопротивления жидкости, чтобы измерять динамику изменения концентрации солей. Типа TDS-метр. Дальнейшая логика не принципиальна - там хоть свисток включай, хоть клапан перекрывай. Это мне не очень сложно. Не без помощи уроков уважаемого Di Halt, который пинал в мозг и тыкал носом в самые очевидные ляпы. Я был бы очень благодарен, если бы вы просмотрели все это безобразие, прежде чем я ЛУТ начну делать. Все компоненты уже в наличии. Arduino nano, которых у меня пачка, работает в качестве контроллера. АЦП внешний - briokout c ADS1115 16-bit и обвязкой.

Принципиальная схема:

https://habrastorage.org/files/865/05a/5a1/86505a5a1ddd40fb91a016025e06286c.png

Логика работы: обычный импульсный блок питания на 12 вольт, линейные стабилизаторы снижают все это до 5 вольт и фильтруют. Просто 5 вольт идет на питание arduino и периферии, где небольшие погрешности напряжения некритичны. Также 5 вольт идут на питание ИОН REF198ESZ. Он на выходе может выдавать 30 мА. Этого достаточно на питание малошумящего операционного усилителя AD795JRZ, АЦП и на ток через раствор. Работаем на принципе обычного делителя напряжений, где раствор выступает в роли резистора с переменным сопротивлением. Операционный усилитель работает в дифференциальной схеме. Оставляем только разницу в диапазоне и умножаем на 7.5. Сигнал получаем АЦП и отдаем контроллеру по y2s. По y2s аналогично подключается экран символьный на 2 строчки обычный. Там прилеплен китайский контроллер, что позволяет сэкономить ноги. Работает отлично. Добавил подтяжку к +5V SDA и SCL. Работает и без них, но на всякий случай.

Чтобы не налажать в расчетах попытался освоить SPICE-моделирование. Использовал QUCS опенсорсный. Я преимущественно в Linux работаю, поэтому и выбор инструментов соответственный. ОУ упрощенно взят идеальным. Мне не столь принципиальны совсем мелкие отличия. Тем более, что постоянный ток короткими импульсами. Результаты моделирования:

https://habrastorage.org/files/49e/76f/9f0/49e76f9f0e8d41988c960bf340c9e1c4.png

Схему развел настолько аккуратно, насколько умею. Постарался разделить землю на силовую, аналоговую и цифровую. Все будет залито полигонами соответствующими. Я их не заливал пока, чтобы нагляднее было. Все согласно даташиту на ОУ для подавления помех. Линия до усилителя будет с двух сторон закрыта землей. На плате все более чем просторно, но утрамбовывать все, кроме зоны ОУ, где это критично, смысла особого нет. Места в корпусе еще на такую же хватит.

Общий вид платы:

https://habrastorage.org/files/a58/bfb/e1e/a58bfbe1ed3f4e538b6e7b3e29336cf8.png

Отдельно линии GND, +5V, +4.096, syknal, preamp.
GND

https://habrastorage.org/files/319/6fb/0e6/3196fb0e6af544348d9e618ad2ea8166.png

+5V

https://habrastorage.org/files/19a/65b/87d/19a65b87d66247ce9791aa03a811dc5d.png

+4.096

https://habrastorage.org/files/796/af9/b11/796af9b11e89494d8c5cf1883749dae6.png

Preamp

https://habrastorage.org/files/8b9/37a/a02/8b937aa02ffa4687a68bbfebc7307ed0.png

Signal

https://habrastorage.org/files/63f/83f/66d/63f83f66d1a44865953085ef43f2fad3.png
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
06.09.2015, 16:47
Ответы с готовыми решениями:

При турбулентном течении жидкости в трубах с гладкими стенками коэффициент сопротивления определяется по формуле

Найти силу сопротивления, испытываемого цилиндром при его движении в вязкой несжимаемой жидкости
Добрый день! Не получается решить задачу.Задача:« найти силу сопротивления, испытываемого цилиндром при его движении в вязкой несжимаемой...

Сколько тепла переходит от одной жидкости к другой жидкости в процессе теплообмена
Пожалуйста, помогите решить! Смешаны две жидкости одинаковой массы. Одна жидкость имеет теплоемкость 800 Дж / К, температура 90 ° С, а...

47
0 / 0 / 0
Регистрация: 03.09.2015
Сообщений: 29
08.09.2015, 01:03
Author24 — интернет-сервис помощи студентам
Цитата Сообщение от _pv
а зачем там вообще ОУ? пара входов AIN0/AIN1 измеряет падение напряжения на R5, другая пара - на ячейке, или на ячейке + R5, тремя входами обойтись можно, а еще один на всякий случай останется.
в АЦП есть PGA на 16. правда не буферизированный, и входной импеданс у него от коэффициента зависит, но даже минимальные 700кОм это более чем достаточно чтобы с 1% измерить сопротивление 500 Ом.
и опора тоже не нужна, она у АЦП внутри.
а вместо оптопары питать делитель можно и просто от ноги МК.
https://habrastorage.org/files/6ce/3d5/34a/6ce3d534a5b8475aa4bdae9c332571d8.png
Размах получается в 0.4 В. В принципе, немало, но множитель использовать не получится, насколько я понимаю. Даже при умножении на 2 мы выходим за предел диапазона в 5 В. Без отрицательных значений нам доступно 2^15 значений. Значит на 0.4 вольта полезного диапазона будет приходиться 0.4/(5/2^15) = 2621 значений. В принципе очень неплохо. Лишь бы не шумело сильно.
0
0 / 0 / 0
Регистрация: 03.09.2015
Сообщений: 29
09.09.2015, 14:42
Нормальные электроды пришли) Теперь у меня есть banana-plug с гальваническим покрытием золотом.))

https://habrastorage.org/files/4ff/2a0/bd8/4ff2a0bd8e36456aaef467006890f4a5.jpg
0
0 / 0 / 0
Регистрация: 03.09.2015
Сообщений: 29
09.09.2015, 17:28
Поляризация электродов дикая(( Кто-нибудь может подсказать простой вариант генерировать меиндр с частотой в районе 1-3 кГц через тот же делитель и потом это выпрямлять и скармливать АЦП? Самый просто вариант ногами дрыгать разнонаправленно, но потом это все надо через диодный мост пропустить? Я схему не очень представляю.

Короче, чувствую, что самым простым решением с учетом моего нулевого опыта будет припаяться к китайскому TDS-метру до оцифровки сигнала.
0
0 / 0 / 0
Регистрация: 06.06.2011
Сообщений: 2,514
09.09.2015, 18:54
зачем диодный мост?
входы АЦП дифференциальные, подключите резистивный делитель из R5 и ячейки просто между двумя ногами МК.
и выставляйте на них либо 01 либо 10. АЦП-то какая разница, всё равно напряжение в пределах 5В.
0
0 / 0 / 0
Регистрация: 03.09.2015
Сообщений: 29
09.09.2015, 21:16
Цитата Сообщение от _pv
зачем диодный мост?
входы АЦП дифференциальные, подключите резистивный делитель из R5 и ячейки просто между двумя ногами МК.
и выставляйте на них либо 01 либо 10. АЦП-то какая разница, всё равно напряжение в пределах 5В.
Блин. Почему это так просто после того, как ткнут носом?
Спасибо, попробую.
0
0 / 0 / 0
Регистрация: 03.09.2015
Сообщений: 29
10.09.2015, 14:25
Цитата Сообщение от _pv
зачем диодный мост?
входы АЦП дифференциальные, подключите резистивный делитель из R5 и ячейки просто между двумя ногами МК.
и выставляйте на них либо 01 либо 10. АЦП-то какая разница, всё равно напряжение в пределах 5В.
Частота маловата. В районе 800 Гц, но это ограничение АЦП. Сейчас поменяю на 3 кГц. Надеюсь, ситуация исправится.
0
0 / 0 / 0
Регистрация: 06.06.2011
Сообщений: 2,514
10.09.2015, 18:50
следующим щагом будет выкидывание внешнего АЦП, и использование внутреннего (заодно и с таймером, который шим будет выдавать на делитель, синхронизироваться проще), он побыстрее немного, до 20-30кГц работать пожалуй будет, а недостаток разрядности небольшим оверсэмплингом компенсировать, требуемый 1% получить думаю вполне удастся.
0
0 / 0 / 0
Регистрация: 03.09.2015
Сообщений: 29
11.09.2015, 02:01
Цитата Сообщение от _pv
следующим щагом будет выкидывание внешнего АЦП, и использование внутреннего (заодно и с таймером, который шим будет выдавать на делитель, синхронизироваться проще), он побыстрее немного, до 20-30кГц работать пожалуй будет, а недостаток разрядности небольшим оверсэмплингом компенсировать, требуемый 1% получить думаю вполне удастся.
Надо подумать, хотя у меня есть относительно быстрый внешний ADS1015. Тут ещё вопрос - как шум снизить. Сейчас на стенде все это безобразие от USB питается, а там видимо грязи много идёт по питанию. После фильтрации должно быть лучше. По идее, неточность линейных стабилизаторов не должна давать проблем для измерения, так как оно дифференциальное. Лишь бы в процессе напряжение не дрожало. Но это частично решается ведром конденсаторов.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.09.2015, 02:01
Помогаю со студенческими работами здесь

Поставить краевую задачу для определения скорости частиц жидкости и давления жидкости в трубе
Задача Жуковского о гидравлическом ударе. Входное сечение прямей цилиндрической трубки длиной l соединено с резервуаром неограниченной...

Как найти объём жидкости в усеченной четырехугольной пирамиде при уровне жидкости 3 метра
Как найти обьём жидкости при в усенной пирамиде при уровне жидкости 3 метра ,если Sверха=128*53=6784,Sниза=96*33=3168, h=5м...

Зависимость силы давления жидкости на конус от жидкости
Здравствуйте, господа. Столкнулся с такой задачей. Дан конус, высота которого H, радиус основания R. Он плотно прилегает своим основанием...

Вывести зависимость КПД источника питания от внутреннего сопротивления и сопротивления нагрузки
Реализовать программу, которая выводит на дисплей таблицу зависимости КПД источника питания от внутреннего сопротивления r и сопротивления...

Смоделировать бросок камня под углом к горизонту без учета сопротивления, и с учетом сопротивления воздуха
Задание: Смоделировать бросок камня под углом к горизонту без учета сопротивления, и с учетом сопротивления воздуха. Условия прописал,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
48
Ответ Создать тему
Новые блоги и статьи
std::mutex в C++: Советы и примеры использования
bytestream 03.04.2025
std::mutex - это механизм взаимного исключения, который гарантирует, что критический участок кода выполняется только одним потоком в каждый момент времени. Это простое, но могущественное средство. . .
Не удержался от оценки концепции двигателя Стирлинга.
Hrethgir 03.04.2025
Сколько не пытался - она выдавала правильные схемы, причём случайно рисовала горячие области в середине, холодные по краям, трубки с краёв в низ и магнит в соединяющей, но при этой выдавала описание. . .
Метод с двумя буферами (или double buffering) или ping-pong buffering
Hrethgir 02.04.2025
Из ответов LM модели. Метод, который предполагает использование двух массивов для хранения промежуточных результатов сложения векторов, обычно применяется в сценариях, где необходимо минимизировать. . .
На любовном киберфронте
Alexander-7 01.04.2025
Недавно на одном малоизвестном сайте знакомств мною заинтересовалась девушка: «Текст немного странный. Но, судя по адресу почты, иностранка», – подумал я. Поколебавшись пару суток, я ответил ей:. . .
Как работает Node.js изнутри
run.dev 29.03.2025
Node. js изменил подход к разработке веб-приложений, позволив использовать JavaScript не только на стороне клиента, но и на сервере. Созданный в 2009 году Райаном Далем, этот открытый,. . .
Моки в Python: Mock Object Library
py-thonny 29.03.2025
Тестирование кода требует особого подхода, когда речь идёт о компонентах, взаимодействующих с внешним миром. Мы часто сталкиваемся с непредсказуемостью HTTP-запросов, чтением данных из базы или. . .
JavaScript: Управление памятью и улучшение производительности
run.dev 29.03.2025
В отличие от низкоуровневых языков программирования, JavaScript не требует ручного выделения и освобождения памяти. Здесь работает автоматический сборщик мусора, который определяет, какие объекты. . .
Мультитенантная архитектура со SpringBoot и PostgreSQL
ArchitectMsa 29.03.2025
SaaS-приложения редко обслуживают одного клиента и обычно они должны поддерживать множество организаций, каждая из которых работает в своём изолированном пространстве. Мультитенантная архитектура. . .
std::span в C++: Производительность и лучшие практики
NullReferenced 28.03.2025
std::span — одно из самых недооценённых нововведений стандарта C++20, которое радикально меняет подход к работе с непрерывными последовательностями данных. По сути, это невладеющее представление. . .
Многопоточность в C#: Threadpool
UnmanagedCoder 28.03.2025
Пул потоков в C# — это коллекция заранее созданных и готовых к использованию потоков, которые находятся в распоряжении приложения. Вместо того чтобы создавать и уничтожать потоки для каждой небольшой. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
Выделить код Копировать код Сохранить код Нормальный размер Увеличенный размер