Автоматизация измерения давления, датчик (сравнение, ардуинство)
Данная штука измеряет давление и отдает его в виде напряжения. Мы уже смотрели стрелочный прибор, сейчас будет более продвинутая версия. Кому интересны электронные штуки прошу под кат. Будет немного математики, анализ прибора, ардуинство и прототип готового устройства.Совсем недавно я делал обзор стрелочного прибора для измерения давления (манометра — как многие заметили в комментариях). Как ни странно, наибольший интерес там вызвал гель для придания герметичности резьбовым соединениям, кого это интересует можете почитать там ). Стрелочный прибор конечно хорошо, он показывает броски давления, легко глазом воспринимаются значения, к тому же, у прибора из прошлого обзора имеется крупный циферблат, но… лет 20 назад мы бы наверно на этом и остановились… а сейчас многие стараются автоматизировать рутинные процессы и доступность электроники всячески этому способствует. Поэтому предметом обзора стало устройство преобразующее давление в напряжение, которое легко подается оцифровке и последующему анализу, многие процессы нуждаются в таких действиях, поэтому, думаю тема интересная.
Размеры:
Как видно на фото, прибор имеет гнездо куда подключен разъем с проводком, разъем герметичен благодаря прокладке. Продавец клянется что прибор подходит как для воды так и для газа.
Первым делом обжимаем кончики проводков, обжимкой из этого моего обзора. Так будет проще с ним работать на этапе тестов.
Особых примечательностей снаружи нет, соответственно переходим к электрическим измерениям. Кабель от прибора содержит 3 проводка: красный (питание +5 В), черный (земля) и желтый — собственно сигнал в виде напряжения.
Для дальнейших измерений потребукется источник давления, с возможностью регулировки. На эту роль любезно согласилась компрессорная станция:
Я уже писал, что один выход станции имеет редуктор с манометром, позволяющий менять выходное давление от 0 до 8 атмосфер — вот он нам и нужен. Собираем нехитрый стенд из предмета обзора, макетной платы с источником питания, вольтметром и проводками.
Без давления на выходе прибора 0.5 В.
Попробовал дунуть в него 🙂 вольтметр показал слабые возможности моего дыхательного аппарата — 0,67 В, но главное прибор реагирует.
Включаем компрессор и пару минут наслаждаемся неслабым звуком его двигателя.
Далее собственно измерения, тут лучше показать чем говорить:
При чуть больше чем 5 атмосфер, показывает 5,05 В и выше показания не меняются, 8 атмосфер выдержал спокойно. Видим что продавец слегка слукавил — у него на странице немного другие значения, в частности верхнее он обещает 4.5 а по факту 5.05. Но ничего, мы выведем это дело на чистую воду. В целом ясно что прибор работает…
На этом можно заканчивать обзор, но… так ведь скучно, правда? Не всем понятно, как это использовать, к тому же, многие муськовчане ждут своих халявных ардуин по распродаже… В общем, соберем макет реального прибора.
Исходные данные: 0 атмосфер — 0.5 В, 5 атмосфер — 5 вольт. А теперь нужно получить функцию зависимости атмосфер от вольт. Все помнят школьный курс геометрии? Как построить прямую по двум точкам? Оставлю этот вопрос для проработки читателям, в комментах проставим оценки :). Итоговое уравнение:
-4.5x + 5y — 2.5 = 0
x = 1.111 y — 0.555
где — x — давление, у — напряжение на выходе прибора
Возьмем Arduino Nano, покомпактней (чтоб таскать в сарай на свидание к компрессору 🙂 ). Еще нам нужен показометр, чтоб все визуально оценить! (конечно, на самом деле, мне не хотелось тащить ноутбук в сарай), показометр нам вполне подойдет из обзора про температуру в бане (естественно, я не вынимал тот из стены, я заказал их 4 или 5 уже не помню… штука нужная). Подключаем индикатор на 3,4,5 пины Nano, а наш заветный прибор на аналоговый вход a1. Кстати, китаец там что-то писал про цифровое измерение, меня это немного напрягло до получения прибора, так как боялся получить кирпич с непонятным протоколом, но оказалось все проще. Эх… у Nano только один выход 5В придется прибегнуть к помощи макетной платы, ну и ладно. Результат в виде макета:
Вроде все хорошо, но наше решение программное, соответственно нужен скетч, конечно я долго и тщательно его писал и отлаживал, аж целых 10 минут. Поэтому давление на космических объектах данным программным обеспечением измеряйте с осторожностью.
Вот код (кота в этот раз не будет 🙂 ). Там есть еще один нюанс — аналоговый вход дает значение от 0 до 1024, соответственно нам нужно помножить результат на 5 и поделить на 1024, что и проделано в скетче.
Прибор работает в режиме покоя показывая то 0.00, то 0.0.1, то -0.00 — нас все эти результаты устраивают… Дунем в него — 0.21 атмосферы… ну и ладно главное, что реагирует. Топаем со всем этим хозяйством в сарай.
Вот тут картинки интереснее чем при прошлых измерениях (местами почему-то шкала манометра засветилась, но фоток с ним достаточно и, думаю, всем все будет понятно):
В целом прибор годный, измерения проводит, результаты очень близки к показаниям манометра. Конечно, имея значения в ардуино — легко их передать по сети или обработать, даже в моих обзорах такое не раз проделывалось. Я планирую интегрировать его в водопроводную систему для мониторинга, настройки реле и давлений гидроаккумуляторов (ну может еще чего 🙂 ).
Всем спасибо, надеюсь кому-то поможет сделать свою жизнь более комфортной, ну или хотя бы немного повеселило в процессе чтения.
Все покупалось на свои деньги, для конкретных целей.
Пес мой обиделся за картинку в прошлом обзоре, поэтому теперь так 🙂
mysku.ru
Датчик давления топлива на Arduino — бортжурнал Mitsubishi Legnum VR-4 Swap Time 1997 года на DRIVE2
Давно ничего не писал. Всё потому, что за зиму не происходило ничего значительного. Легнум исправно бегает, гараж пустует, на покатушки ни разу не выбрался. За отсутствием каких-либо серьёзных доработок решил заняться «тюнингом» в несколько новом направлении. Традиционно турботачки украшают грядками будильников, что мне не совсем нравится, потому что нагромождение лишних предметов возле лобовухи только мешает обзору. А вот иметь информацию о состоянии двигателя, которую нельзя считать с его мозга, а тем более логировать её было бы крайне полезно. Для полноты картины нужны: давление топлива, давление и температура масла, A/FR, буст, EGT. Буст у меня показывает турботаймер, решил начать с самого простого — давления топлива. В качестве датчика давления берём датчик давления масла от ВАЗ-2106, его маркировка ММ393А. Да, это не самый точный и надёжный прибор, но точность в данном случае не так критична, а при его копеечной цене и простоте замены вопрос надёжности вообще не стоит. Датчик устанавливается в разрез топливного шланга на входе в рейку с помощью тройника, переходного штуцера на шланг и муфты.
Полный размер
Я никому не советую резать шланг, лучше рассмотреть вариант с изготовлением штуцера, прикручивающегося к рейке, или вварить его в неё. Просто в связи со свапом у меня шланг был уже порезан и соединён трубкой на силовых хомутах.
Полный размер
Полный размер
Роль «юнита» для датчика будет выполнять Arduino UNO R3. Впоследствии, когда количество датчиков будет увеличиваться, Уно придётся заменить на что-то посерьёзнее вроде Меги, так как тут всего 6 аналоговых входов, два из которых заняты жк-экраном LCD2004, подключённым через I2C адаптер.
Теперь задача состоит в том, чтобы подать на один из входов сигнал с датчика, но там допустимо напряжение до 5В. Можно было бы обойтись простым делителем, но, так как напряжение бортсети плавает, показания бы тоже плавали. Поэтому используем следующую схему на операционном усилителе.
Дальше всё просто, в скетче нужно преобразовать аналоговый сигнал в значение сопротивления датчика, а потом в давление в соответствии с характеристикой.
Для простоты берём её как две линейные функции. Калибруем прибор с помощью подстроечного резистора. Выводим всё на экран.
Полный размер
На этом этапе речь об установке в машину не идёт, всё собрано на бредборде. У девайса есть модуль часов, он может передавать измерения по bluetooth, писать лог на micro sd флешку. С увеличением количества данных экран будет заменён на какой-нибудь компактный TFT.
Что касается результатов измерений, то нахожусь в некоем замешательстве. Вроде как давление топлива должно быть равно 3 бара+относительное давление в коллекторе. На бусте прибор показывает всё как и надо, но на холостых у меня всегда 3 бара, вместо положенных 2,3. С разрежением всё в порядке, резистор и реле бензонасоса исправны, на насос приходит порядка 9 вольт. Возможно, я чего-то недопонимаю? Какой алгоритм работы у топливного соленоида?
www.drive2.ru
Сообщества › Arduino для автомобиля › Блог › Показометр на Arduino (температура, давление)
Захотел мониторить параметры двигателя, авось поможет избежать крупных поломок, тем более он уже не молод. Но лепить пачку датчиков на торпедо не мое. Пока не узнал про ардуино — своеобразный конструктор, лепи что хочешь на свой вкус.
Итак начнем, будет мало букв, много фото.
Немного поразмыслив над концепцией устройства выделил важные для себя пункты:
1. без вмешательства в штатную проводку автомобиля
2. быстросьем контроллера
3. все показания выводятся на экран одновременно
4. функция варнинга
5. использование oled дисплея
6. минимализм, все должно быть компактное
Работа варнинга простая — при срабатывании начинает мигать светодиод для привлечения внимания, на экране подсвечивается один или несколько параметров его вызвавшие. На практике это хорошо себя показало, бросил взгляд — ничего не мигает, едешь себе дальше не отвлекаясь, и не вдумываясь в цифры. Была мысль добавить звуковой зуммер, но отказался от нее.
OLED дисплей выбрал за лучшую контрастность и хорошие углы обзора, при температурах ниже нуля не картинка не «течет».
Теперь надо определиться какие данные нужно мониторить. Для себя выделил:
1. ЕГТ
2. Давление масла
3. Давление топлива
4. Температура жидкости АКП
5. Температура масла
6. Темпуратура ОЖ
Компоненты
Малые размеры — наш критерий, потому выбираем микроконтроллер nano
arduino nano
Для температуры жидкости АКП/масла/ОЖ подойдут термисторы. Диапазон измерений -45с +250с
ntc mf-58
Измерять давление будем трехпроводными пятивольтовыми датчиками. Диапазон измерений 0-12бар
Под егт пойдет термопара k-типа, диапазон 0-1350с
Далее для точности измерений термопарой потребуется MAX6675
max6675
Теперь подумаем над питанием, стабилизатор напряжения для ардуино
Ну и самое главное — экран. Выбрал 1.3″ SPI, т.к. он отлично подойдет в корпус от датчика 52мм. Протокол SPI обеспечивает наилучшее быстродействие экрана. Преимущества SPI
oled 1.3 spi
Сборка
Спустя пару вечеров черновой вариант готов, все подключено и работает. Использовал библиотеку u8g2, т.к. выбор шрифтов к ней просто огромный, подобрал на свой вкус
Полный размер
Еще через пару дней сделал корпус
Полный размер
Полный размер
Готовая проводка
Полный размер
В ходе испытаний на автомобиле с контроллером ардуино что-то произошло, и обновить прошивку я уже не мог, хотя работала исправно. Пришлось снимать все, и переделывать под uno которая была под рукой
Полный размер
Полный размер
Результат
Все собрано и работает исправно 🙂
Полный размер
Полный размер
Полный размер
Видео
код
www.drive2.ru