Подключение датчика температуры ваз к ардуино

Опубликовано: 16.05.2024

Сенсор температуры от ваз-2110 и Ардуино

Решил сделать в своём джипе измерение температуры и давления масла.
Было приобретено вот это:


Проставка под масляный фильтр, в которую вкручиваются сенсоры и сами сенсоры.
Температурный я решил разобрать и посмотреть как устроен)))), в итоге из него выскочили детальки и потерялись))))).
Думаю вставить в него DS18B20 , но это потом!

Купил в магазе два сенсора: один от ваз-2110 цена 285р. (на фото, разобраный и целый), другой от ваз-2109 цена 145р (на фото нету).


По резьбе (М12 шаг 1,5) и разьёму они друг от друга ничем не отличаются, а поже выяснилось, что они идентичны по своим показаниям. Так что владельцы "десяток" могут сэкономить 140 рублей!!))))

Вобщем у сенсора при нагреве сопротивление уменьшается, но не линейно!
Подключил его и ds18b20 к ардуине, опустил их в чайник с водой и нагрел. Записал показания при разных температурах и вот что получилось!

int val = analogRead(0);

else if (val >= 260 && val <= 550)
<
senstvaz = map(val, 250, 550, 20, 50);
>

else if (val >= 551 && val <= 790)
<
senstvaz = map(val, 551, 790, 51, 80);
>

else if (val >= 791 && val <= 855)
<
senstvaz = map(val, 791, 855, 81, 95);
>

else if (val >= 856 && val <= 960)
<
senstvaz = map(val, 852, 970, 93, 150);
>

При температуре +22 сопротивление 3 кОм, при +100 где-то 0,2 кОм.
Резистор я поставил 10 кОм, правда не знаю правильно ли это? Может другой номинал нужен, подскажите как его подбирать?
А вот с сенсором давления я не знаю как его проверить, при отсутствии давления сопротивление на нём 0, а вот что он будет показывать под давлением неизвестно, что делать?

Датчики температуры и влажности DHT11 и DHT22/AM2302 от AOSONG довольно просты в использовании, недорогие и отлично подходят для любителей! Эти датчики предварительно откалиброваны и не требуют дополнительных компонентов, поэтому вы можете сразу начать измерение температуры и относительной влажности.

Как работают датчики температуры и влажности DHT11 и DHT22, и их взаимодействие с Arduino
Рисунок 1 – Как работают датчики температуры и влажности DHT11 и DHT22, и их взаимодействие с Arduino

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

DHT11 против DHT22/AM2302

У нас есть две версии серии датчиков DHTxx. Они выглядят немного похоже и имеют одинаковую распиновку, но имеют разные характеристики. Вот подробности.

DHT22 является более дорогой версией, которая, очевидно, имеет лучшие характеристики. Диапазон измерения температуры составляет от -40°C до +80°C с точностью ±0,5 градуса, а диапазон температур DHT11 составляет от 0°C до 50°C с точностью ±2 градуса. Также датчик DHT22 имеет более широкий диапазон измерения влажности, от 0 до 100% с точностью 2-5%, в то время как диапазон измерения влажности DHT11 составляет от 20 до 80% с точностью 5%.

Сравнение спецификаций DHT11 и DHT22/AM2302
DHT11
DHT11DHT22
Рабочее напряжениеот 3 до 5 Вот 3 до 5 В
Максимальный рабочий ток2,5 мА макс2,5 мА макс
Диапазон измерения влажности20-80% / 5%0-100% / 2-5%
Диапазон измерения температуры0-50°C / ± 2°Cот -40 до 80°C / ± 0,5°C
Частота выборки1 Гц (чтение каждую секунду)0,5 Гц (чтение каждые 2 секунды)
Размер корпуса15,5 мм х 12 мм х 5,5 мм15,1 мм х 25 мм х 7,7 мм
ПреимуществоУльтра низкая стоимостьБолее точный

Хотя DHT22/AM2302 более точен и работает в большем диапазоне температур и влажности; есть три вещи, в которых DHT11 сильно превосходит DHT22. Он более дешевый, меньше по размеру и имеет более высокую частоту выборки. Частота выборки DHT11 составляет 1 Гц, то есть одно чтение каждую секунду, в то время как частота выборки DHT22 составляет 0,5 Гц, то есть одно чтение каждые две секунды.

Рабочее напряжение обоих датчиков составляет от 3 до 5 вольт, в то время как максимальный ток, используемый во время преобразования (при запросе данных), составляет 2,5 мА. И самое приятное, что датчики DHT11 и DHT22/AM2302 являются «взаимозаменяемыми», то есть, если вы создаете свой проект с одним датчиком, вы можете просто отключить его и использовать другой датчик. Ваш код, возможно, придется немного изменить, но, по крайней мере, схема не изменится!

Для получения более подробной информации обратитесь к техническим описаниям датчиков DHT11 и DHT22/AM2302.

Обзор аппаратного обеспечения

Теперь давайте перейдем к более интересным вещам. Давайте разберем оба датчика DHT11 и DHT22/AM2302 и посмотрим, что внутри.

Корпус состоит из двух частей, поэтому для его вскрытия достаточно просто достать острый нож и разделить корпус на части. Внутри корпуса на стороне датчиков находятся датчик влажности и датчик температуры NTC (термистор).

Рисунок 2 Внутренности датчиков температуры и влажности DHT11 DHT22/AM2302
Рисунок 2 – Внутренности датчиков температуры и влажности DHT11 DHT22/AM2302

Чувствительный к влажности компонент, который используется, разумеется, для измерения влажности, имеет два электрода с влагоудерживающей подложкой (обычно соль или проводящий пластиковый полимер), зажатой между ними. По мере поглощения водяного пара подложка высвобождает ионы, что, в свою очередь, увеличивает проводимость между электродами. Изменение сопротивления между двумя электродами пропорционально относительной влажности. Более высокая относительная влажность уменьшает сопротивление между электродами, в то время как более низкая относительная влажность увеличивает это сопротивление.

Рисунок 3 Внутренняя структура датчика влажности в DHT11 и DHT22
Рисунок 3 – Внутренняя структура датчика влажности в DHT11 и DHT22

Кроме того, в этих датчиках для измерения температуры имеется датчик температуры NTC (термистор). Термистор – это терморезистор – резистор, который меняет свое сопротивление в зависимости от температуры. Технически все резисторы являются термисторами – их сопротивление слегка изменяется в зависимости от температуры, но обычно это изменение очень мало и его трудно измерить.

Термисторы сделаны так, чтобы их сопротивление резко изменялось при изменении температуры, и изменение на один градус может составлять 100 Ом или более! Термин «NTC» означает «Negative Temperature Coefficient» (отрицательный температурный коэффициент), что означает, что с ростом температуры сопротивление уменьшается.

Рисунок 4 График зависимости сопротивления NTC термистора от температуры
Рисунок 4 – График зависимости сопротивления NTC термистора от температуры

С другой стороны имеется небольшая печатная плата с 8-разрядной микросхемой в корпусе SOIC-14. Эта микросхема измеряет и обрабатывает аналоговый сигнал с сохраненными калибровочными коэффициентами, выполняет аналого-цифровое преобразование и выдает цифровой сигнал с данными о температуре и влажности.

Распиновка DHT11 и DHT22/AM2302

Датчики DHT11 и DHT22/AM2302 довольно легко подключаются. У них есть четыре вывода:

  • Вывод VCC обеспечивает питание датчика. Хотя допускается напряжение питания в диапазоне от 3,3 до 5,5 В, рекомендуется питание 5 В. В случае источника питания 5 В, вы можете держать датчик на расстоянии до 20 метров от источника питания. Однако при напряжении питания 3,3 В длина кабеля не должна превышать 1 метра. В противном случае падение напряжения в линии приведет к ошибкам измерения.
  • Вывод Data используется для связи между датчиком и микроконтроллером.
  • NC не подключен
  • GND должен быть подключен к земле Arduino.

Подключение DHT11 и DHT22/AM2302 к Arduino UNO

Теперь, когда у нас есть полное понимание того, как работает датчик DHT, мы можем начать подключать его к нашей плате Arduino!

К счастью, подключение датчиков DHT11, DHT22/AM2302 к Arduino довольно тривиально. У них довольно длинные выводы с шагом 0,1 дюйма (2,54 м), поэтому вы можете легко вставить их в любую макетную плату. Подайте на датчик питание 5 В и подключите землю. Наконец, подключите вывод данных к цифровому выводу 2 на Arduino.

Помните, как обсуждалось ранее, между VCC и линией данных нам нужно установить подтягивающий резистор 10 кОм, чтобы поддерживать высокий логический уровень на линии данных для правильной связи между датчиком и микроконтроллером. Если у вас есть готовый модуль датчика, вам не нужно добавлять какие-либо внешние подтягивающие резисторы. Модуль поставляется со встроенным подтягивающим резистором.

Рисунок 6 Подключение DHT11 к Arduino UNO
Рисунок 6 – Подключение DHT11 к Arduino UNO Рисунок 7 Подключение DHT22/AM2302 к Arduino UNO
Рисунок 7 – Подключение DHT22/AM2302 к Arduino UNO

Теперь вы готовы загрузить в Arduino код и заставить ее работать.

Код Arduino. Вывод значений на монитор последовательного порта

Как обсуждалось ранее, датчики DHT11 и DHT22/AM2302 имеют собственный однопроводный протокол, используемый для передачи данных. Этот протокол требует точной синхронизации. К счастью, нам не нужно беспокоиться об этом, потому что мы собираемся использовать библиотеку DHT, которая позаботится почти обо всем.

Сначала скачайте библиотеку, посетив репозиторий на GitHub, или просто нажмите эту кнопку, чтобы скачать архив:

Чтобы установить библиотеку, откройте Arduino IDE, перейдите в «Скетч» → «Подключить библиотеку» → «Добавить .ZIP библиотеку» и выберите только что загруженный zip-архив DHTlib.

После установки библиотеки вы можете скопировать следующий скетч в IDE Arduino. Данный скетч выводит значения температуры и относительной влажности в монитор последовательного порта. Попробуйте скетч в работе; а затем мы рассмотрим его подробнее.

Скетч начинается с включения библиотеки DHT. Затем нам нужно определить номер вывода Arduino, к которому подключен вывод данных нашего датчика, и создать объект DHT . Так мы сможем получить доступ к специальным функциям, связанным с библиотекой.

В функции setup() нам нужно инициировать интерфейс последовательной связи, так как для вывода результатов мы будем использовать монитор последовательного порта.

В функции loop() мы будем использовать функцию read22() , которая считывает данные с DHT22/AM2302. В качестве параметра она принимает номер вывода данных датчика. Если вы работаете с DHT11, вам нужно использовать функцию read11() . Вы можете сделать это, раскомментировав вторую строку.

После расчета значений влажности и температуры мы можем получить к ним доступ:

Объект DHT возвращает значение температуры в градусах Цельсия (°C). Его можно преобразовать в градусы Фаренгейта (°F) по простой формуле:

В конце мы выводим значения температуры и влажности в монитор последовательного порта.

Рисунок 8 Вывод в мониторе последовательного порта показаний датчика DHT11 или DHT22/AM2302
Рисунок 8 – Вывод в мониторе последовательного порта показаний датчика DHT11 или DHT22/AM2302

Код Arduino. Использование DHT11 и DHT22/AM2302 с LCD дисплеем

Иногда может возникнуть идея, контролировать температуру и влажность в инкубаторе. Тогда для отображения условий в инкубаторе вам, вероятно, понадобится символьный LCD дисплей 16×2 вместо монитора последовательного порта. Итак, в этом примере вместе с датчиком DHT11 или DHT22/AM2302 мы подключим к Arduino LCD дисплей.

Если вы не знакомы с LCD дисплеями на 16×2 символов, взгляните на статью «Взаимодействие Arduino с символьным LCD дисплеем».

Далее нам нужно подключиться к LCD дисплею, как показано ниже.

Рисунок 9 Подключение к Arduino символьного LCD дисплея 16x2 и DHT11
Рисунок 9 – Подключение к Arduino символьного LCD дисплея 16x2 и DHT11 Рисунок 10 Подключение к Arduino символьного LCD дисплея 16x2 и DHT22
Рисунок 10 – Подключение к Arduino символьного LCD дисплея 16x2 и DHT22

Следующий скетч будет выводить значения температуры и относительной влажности на символьном LCD дисплее 16x2. Он использует тот же код, за исключением того, что мы печатаем значения на LCD дисплее.

Рисунок 11 Показания температуры и влажности на LCD дисплее
Рисунок 11 – Показания температуры и влажности на LCD дисплее

В ардуино я новичок, потихоньку осваиваю азы. Сейчас возник вопрос, как подключить аналоговый датчик от автомобиля к ардуино . Прочитал много способов подключения различного типа термисторов, но не нашел нужного мне.

Имеется датчик кат. номер 23.3828

Рабочее напряжение - в 3,4±0,03

И тарировки к нему:

температура °C - сопротивление Ом

Вопрос в том, как правильно подключить данный (двухконтактный) датчик к ардуино нано и какой скетч нужен для него?

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

ua6em аватар

табличку привели бы в нормальный вид

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Спасибо, не знал как это сделать.

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Спасибо, почитаю.
По сути, мне нужно построить подобный график, но только так, что бы его поняла ардуино.


  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

ua6em аватар

не, не поможет, во первых стабилизатор напряжения надо делать, второе число градаций АЦП маловато, а формула получается такая:

y = 0,154x6 - 6,796x5 + 117,5x4 - 991,3x3 + 4169,x2 - 7768,x + 4869


  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

интерполяцию можно сплайнами сделать по опорным точкам.

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

в поиске какого только бреда нет.

Советую ТС прочитать эти ветки до конца, прежде чем пользоваться кодом yul-i-an

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Спасибо, почитаю.
По сути, мне нужно построить подобный график, но только так, что бы его поняла ардуино.


автор, никакие библиотеки для этого не нужны. И сложные формулы тоже. Берете и забиваете в память табличку - да хоть на каждую единицу разрешения АЦП. И потом интерполяцией между соседними точками - это, как я помню, изучают в школе тольи в 6, толи в 8 классе

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Я лично пользуюсь полиномами. Для подобной задачи - третей степени хватает сполна (имеется ввиду точность/быстродействие).

По быстродействию пробовал счить полином 5 степени на Megе - 450-1000 мкс, что весьма не плохо, учитывая, что все переменные и константы типа float.

Полиномы подбираю в Matlab.

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Более красивые графики тут:

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

ua6em аватар

Спасибо, почитаю.
По сути, мне нужно построить подобный график, но только так, что бы его поняла ардуино.

автор, никакие библиотеки для этого не нужны. И сложные формулы тоже. Берете и забиваете в память табличку - да хоть на каждую единицу разрешения АЦП. И потом интерполяцией между соседними точками - это, как я помню, изучают в школе тольи в 6, толи в 8 классе

в школе изучают методы повышения точности измерений, это наврядли, в советское время точно не изучали
В исходной задаче аналоговый вход измеряет напряжение от 0 до 5 вольт в разрешении 1023 единиц, напряжение на датчике 3,4 вольта, то-есть имеем 696 единиц разрешения на всю шкалу. По вышеприведённой схеме, если токограничительный резистор равен 100 омам, то еще меньше, то-есть 257 единиц разрешения. далее понятно что точность измерения 20% -то-есть никакая, получим даже не показометр ))) Задача не имеет решения предполагаемыми средствами, нужно вводить сторонний ацп, эталонный резистор мотать константаном ну и т.д. ))) я кузнец, думаю метрологи сейчас меня поправят как надо сделать правильно )))

AM2320

Есть такой хороший датчик температуры и влажности, как AM2320. По характеристикам он почти идентичен с более известными датчиками серии DHT, но в то же время имеет возможность работы по I 2 C.

Сравнение аналогов

Если сравнивать датчики серии DHT и AM2320, получаем следующую картину:

Характеристика Датчик
DHT11 DHT22 AM2320
Диапазон температур 0 … +50°C -40 … +80°C -40 … +80°C
Шаг измерения температуры 1°C 0,1°C 0,1°C
Погрешность температуры ±2°C ±0,5°C ±0,5°C
Диапазон влажности 20 … 90% 0 … 100% 0 … 99,9%
Шаг измерения влажности 1% 0,1% 0,1%
Погрешность влажности ±5% ±5% ±3%
Цена 70 руб. 260 руб. 190 руб.

Цены для сравнения взяты из одного и того же магазина (какого – рекламы делать не буду). Так что выбор в пользу AM2320 был очевиден.

Достаточно непонятный момент – зачем делать такой шаг измерения, если погрешность превышает его в десятки раз? Но это вопрос скорее риторический.

Особенности работы

Важное преимущество этого датчика перед DHT – умение работать по шине I 2 C, но это же является причиной одного из главных недостатков. Дело в том, что работа по I2 C предполагает обмен данными по запросу, при этом передаётся адрес устройства (от 0 до 127). И проблема в том, что датчики имеют один и тот же адрес, соответственно, подключить на эту шину более одного датчика будет очень сложно. Тем не менее, мне встречались упоминания о возможности.

Если у вас несколько таких датчиков, работать с ними следует как с DHT – по одному проводу. Для этого достаточно заземлить четвёртый вывод, который в режиме I 2 C используется для синхронизации AM2320.

Чтение данных с датчика

Мы в примере будем использовать работу по I 2 C. Для работы с датчиком скачаем соответствующую библиотеку, а также для поддержки I 2 C подключим библиотеку Wire. Поскольку нашей целью является работы с датчиком, а не с дисплеем, вместо отображения будем отправлять данные в последовательный порт, а смотреть их при помощи монитора порта в среде разработки.

Выводы датчика подключаем следующим образом:

  • 1 – к выводу +5В.
  • 2 – к выводу SDA (A4 для Arudino Uno);
  • 3 – к выводу 0В.
  • 4 – к выводу SCL (A5 для Arudino Uno).

И получаем следующую конструкцию:

Arudino UNO + AM2320

Arudino UNO + AM2320

Стоит отметить, что функция чтения информации с датчика передаёт код завершения операции, по которому можно судить об отсутствии ошибок. Скетч для работы с датчиком будет достаточно простой, поэтому весь код будет приведён здесь, а файла для скачивания не будет.

После запуска приложения открываем монитор порта и наблюдаем передачу данных с датчика.

Arudino UNO + AM2320 - результаты измерения

Arudino UNO + AM2320 - результаты измерения

После длительного перерыва решил поделится еще одним нестандартным (и возможно не нужным) решением, но в этот раз у нас машинки будут не игрушечные, а вполне себе настоящие.



Вдумчивое молчание обычно посещает матерых автомехаников когда им объясняют что это. И да, это СИНЯЯ изолента!

В силу сложившихся обстоятельств (необходимости пересекать линию разграничения) мне однажды стало необходимо перемещать в пространстве именно на автомобиле. Делать это удобнее всего именно таким способом по тем же причинам.


Из кладовки (гаража брата) был извлечен автомобиль марки Mercedes E200 1986 года выпуска.


Тут стоит отметить что ни я ни брат не обладаем великими автомобильными знаниями (а скорее даже наоборот) и возможно «изобретаем велосипед» или наоборот решения будут не сильно адекватные в этой области, но есть задача и мы ее решали как могли.

Постановка задачи.

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

В двигатель должен поступать воздух определенной температуры (около 20 градусов), по ходу работы происходит смешивание холодного воздуха за бортом с воздухом разогретым выпускной системой (над выпускными патрубками установлен кожух который собирает горячий воздух). Смешивая в разных пропорциях можно регулировать температуру воздуха на входе в двигатель. Эти занимается простая заслонка, типа такой.


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

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

Факт второй — мы знаем что с повышением температуры плотность воздуха и не только падает, поскольку температура в моторном отсеке немногим ниже температуры прогретого двигателя (около 90 градусов) то сделав впуск просто из моторного отсека мы получаем неслабую разницу с забортной температурой воздуха что ведет к уменьшению количества воздуха в смеси. И он довольно горячий. В карбюраторном двигателе это важно потому что карбюратор не умеет нивелировать этот эффект, то есть он не понимает сколько кислорода в воздухе и не корректирует это объемом воздуха на туже порцию топлива.

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

Если загуглить также про холодный впуск то увидите обширные поля сражений в эпичном холливаре.
Мне кажется лучше всего и проще это показано тут:

Это что касается вопроса только плотности. Есть еще вопрос касающийся влияния на процесс горения температуры смеси в момент поджига. Если коротко то оно тоже влияет на мощность, но это совсем уже дебри. Кому интересно просим на канал Евгения Травникова этот человечище откроет вам глаза на многие моменты о которых вы и не подозревали.

Итог простой — нужно «махать» заслонкой чтобы добиться приемлемой температуры воздуха.

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


В нашем случае эта деталь давно была «отремонтирована» до полной негодности нашими смекалистыми аборигенами гаражных кооперативов. Вскрытие показало что вместо полированного штока туда кто-то инсталлировал похожий гвоздь, вбив его до упора (шоб не болталось).

Прикинув стоимость и реальность достать эту деталь в наших краях, я предпринял попытку найти аналог от классики (ВАЗ). Однако как оказалось крайне сложно объяснить что за деталь тебе нужна поскольку в классике чаще всего эту заслонку удаляют как не нужную и посему запасные такие покупают редко, соответственно и спроса нет.

Потратив на поиски около недели я понял что весь функционал этой детали можно организовать за несколько дней с копеечными затратами и дополнительными функциями на базе Arduino. Кроме того, бонусом мы получаем возможность подключение чего угодно, измерение и мониторинг температур там куда засунем датчик, измерение любых напряжений под капотом, UART интерфейс и конечно же бесценный опыт!

Итак что нужно:

— Контроль температуры в корпусе воздушного фильтра.
— Управление заслонкой для регулирования этой температуры.

Что получили:

— Контроль температуры в корпусе воздушного фильтра.
— Управление заслонкой для регулирования этой температуры.
— Контроль температуры где угодно с помощью дополнительных датчиков, я установил еще одни.
— Контроль напряжения бортовой сети.
— Возможность расширить функционал изменением прошивки и добавлением датчиков и исполнительных механизмов.
— UART интерфейс, туда я на время устанавливал адаптер BluetothToUART и мониторил на смартфоне.

1. Неудачная попытка использовать шаговый двигатель от FDD.

Очень мне понравилась идея установить шаговый двигатель от FDD на штатное место термосилового элемента. И оно туда даже встало и даже тягало заслонку. Управлял им с помощью микросхему l293.




Однако в итоге мне сильно не понравилось усилие развиваемое этим двигателем, в условиях подкапотного пространства и тряски этого явно не достаточно, я мог без особого усилия двигать заслонку пальцем. Fail!

2. Использование сервопривода.

Далее было решено переделать все под сервопривод. В случае с последним мы получаем точное позиционирование заслонки, легкость поиска и замены в случае необходимости. Сервопривод был установлен с холодной стороны от заслонки, что бы не грелся от горячего потока воздуха и соединен тягой из скрепки с самой заслонкой. На удивление сделать все это вышло быстрее и в разы удобнее чем с шаговиком, там это было вообще штучное изделие.


Была у меня в наличии Arduino Mini Pro, добавил туда еще корпус от ноутбучного БП, пару цифровых датчиков 18b20, самый простой сервопривод, плату DC-DC ШИМ преобразователя KIS-3R33S для того чтобы из бортовых 12В получить привычные 5В, несколько конденсаторов для сглаживания пульсаций, немного проволоки из витой пары. Получилось довольно компактно.



Попробую набросать схему, не думаю что она кому-то нужна но так нагляднее. Особой сложностью она не отличается.



Из схемы видно что осталось уйма свободных входов что можно будет применить в дальнейшем.

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

Питание на весь блок управления подается от бортовой цепи «15» (это так обзывается в некоторых автомобилях цепь которая включается когда водитель поворачивает ключ и включает зажигание) далее напряжение понижается до 5В от который все и запитано.

Один датчик установлен примерно в месте где стоял старый термосиловой элемент. Второй просто болтается около коробки БУ, (типа меряет температуру подкапотного пространства). На один аналоговый вход ардуины подается бортовое напряжение через делитель, а на второй любое другое, тоже через делитель. У нас были проблемы с клапанами печки поэтому мы мониторили и их работу за одно. Напряжения просто измеряются и ни на что не влияют, это просто для мониторинга.

В целом алгоритм работы сводится к измерению температуры и в соответствии с этим двигать заслонку, передавать данные в UART. Детали можете посмотреть в самом скетче.

Android тут собственно и не причем, просто в качестве дебюта в программировании под него было написано простенькое приложение для отображения данных с блока управления заслонкой. Поскольку приложение простое возможно оно будет полезно тем кто хочет начать программировать блютуз стек под Android.



DIYCarTune

Приложение будет выводить любые данные которые вы отошлете с Arduino, ее можно применить и не по назначению.

5. Установка и испытания

Весь блок был прикреплен на корпусе заслонки сверху, думаю там будет достаточно тепло и комфортно.


Некоторое время «помониторив» работу я решил что «оно работает». Никаких изменений пока не вносил. Единственный баг это когда при остановке автомобиля набегающий поток резко исчезает, а корректировка идет достаточно медленно так как сам датчик имеет тепловую инерцию нагрева своего корпуса. При необходимости можно повысить частоту коррекции положения заслонки.

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

Показан момент когда машина стоит, заслонка закрыта, идет холодный поток (позиция сервы 170, первый параметр), второй параметр это усредненная температура, третий температура в корпусе воздушного фильтра, четвертый это датчик температуры который весит снаружи блока управления (фактически это температура подкапотного пространства), пятый это напряжение бортовой сети, шестой это напряжение на клапанах печки и последний это время прошедшее с последней корректировки положения заслонки (в скетче выставлено время частоты корректировки положения раз в 60 сек.)

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

Читайте также: