Подключение лямбда зонда к ардуино

Обновлено: 07.07.2024

Его комментарии к переработке:

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

4.добавлена функция восстановления связи в случае разрыва соединения (параметром потери связи служит отсутствие оборотов двигателя).

5.для работы требуется библиотека OBD.h вложенная в архив с проектом, этот экземпляр имеет несколько изменений от оригинала который можно скачать из интернета, и без неё скорее всего проект не будет работать или будет нестабилен.
папку нужно скопировать в папку " \Documents\Arduino\libraries"

Android приложение со всеми нюансами в Google Play: OliviaDrive

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

image

image

image

image

image

image

image

image

Список требуемых деталей для сборки БК

1) Arduino Uno R3 — 1 шт. ~ 7 долларов:

image

2) LCD2004 жк-модуль ~ 6 долларов:

image

3) Модуль Bluetooth HC-05 ~ 4 доллара:


4) OBD ELM327 Bluetooth сканер ~ 4 доллара:


5) Резистор 10 кОм подстроечный, бипер для звука, 2 кнопки для смены экранов, провода для соединений, корпус ~ 3 доллара.

Настройка блютуз модуля HC-05 для работы

Подпаиваем провода к пинам блютуза: (картинку с выходами смотреть в описании требуемых деталей)

  • 1 — это TX
  • 2 — это RX
  • 12 — это 3.3V
  • 13 — это GND
  • 34 — на этот вход тоже кидаем 3,3 V (нужен для перевода модуля в режим настройки с помощью AT команд).


  • 1 — TX модуля в 6 пин ардуины. (внимание будет TX в TX это не ошибка!)
  • 2 — RX модуля в 7 пин ардуины. (аналогично не ошибка!)
  • 12 — и 34 пин к 3,3V ардуины.
  • 13 — GND ардуины.

void loop()
if (BTSerial.available())
Serial.write(BTSerial.read());
if (Serial.available())
BTSerial.write(Serial.read());
>

После успешной загрузки скетча открываем: Сервис->Монитор порта. Далее снизу ставим скорость 9600 бод и NL+CR вместе.

Далее вводим команды по одной и нажимаем [Послать]. После каждого ввода должен быть ответ ok.

AT // (возможно 1 раз вылетит Error, не пугайтесь… это нормально, повторите опять)
AT+NAME=Car //Присваиваем имя модулю Car
AT+ROLE=1 // Переводим модуль в режим Мастер
AT+PSWD=1234 // Ставим пароль 1234 как на OBD ELM327
AT+BIND=AABB,CC,112233 //Прописываем Mac адрес OBD ELM327.
AT+CMODE=1 // Подключение модуля с фиксированным адресом
AT+UART=9600,0,0 // Скорость работы по UART

Всё, настройка модуля Bluetooth закончена.

Теперь нужно собрать схему Arduino + блютуз + LCD-экран


Схема:

  • 1 — TX модуля засовываем в 7 Pin (Rx) арудины (именно TX в RX, не так как ранее);
  • 2 — RX модуля засовываем в 8 Pin (Tx) арудины;
  • 12 — Pin (3,3V) модуля в Pin 3,3V ардуины;
  • 13 — Pin (Gnd) в Gnd арудуины;
  • 34 — Pin мы никуда не подключаем (заизолируйте или отпаяйте).
  • VSS экрана к GND ардуины;
  • VDD экрана к 5V ардуины;
  • V0 экрана к центральному выходу резистора;
  • RS экрана к 12 пину ардуины;
  • RW экрана к GND ардуины;
  • E экрана к 11 пину ардуины;
  • DB4 экрана к 5 пину ардуины;
  • DB5 экрана к 4 пину ардуины;
  • DB6 экрана к 3 пину ардуины;
  • DB7 экрана к 2 пину ардуины;
  • A — к 5V ардуины;
  • K — GND ардуины.

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

3. Подключаем дополнительную кнопку для переключения экранов с данными.

[1 кнопка]: один конец от нормально-открытой кнопки подключаем в GND ардуино, а второй конец в пин 10.
[2 кнопка]: GND + пин 9.

Бипер для звуковых предупреждений подключить по следующей схеме "+" к пину 13, а минус к GND ардуино.

Заливаем скетч в Arduino с помощью Aduino IDE 1.0.6 (использовал эту версию).

Нужно будет обязательно учесть три переменных:

1) ED=1.998 Например объем двигателя в литрах 1.398;
2) VE_correct=1.0; Корректировка объёмного КПД ДВС по таблице: (если расход реально меньше — то уменьшаем значение в процентном соотношении). Если не хотите калибровать добейтесь чтобы при прогретом двигателе мгновенный расход в л/час был в районе половины обьема двигателя;
5)speed_korrect_val=1; Корректировка скорости машины, смотреть по GPS/

Управление

[Кнопка 1] + [кнопка 2]: 4 секунды — Сброс журнала общего пробега и потраченного бензина на втором экране, также это сброс ошибок на экране информации об ошибках.

Скетч:

Все, идем в машину, вставляем ELM327 в порт, ардуину в зарядку для авто и проверяем.

В связи с текущей пандемией коронавируса Covid-19 резко возрос спрос на такие электронные устройства как бесконтактные термометры и пульсоксиметры (Pulse-Oximeters). В настоящее время существует достаточно много различающихся по принципу действия пульсоксиметров и на нашем сайте мы уже рассматривали измеритель пульса на Ардуино, но в этой статье мы рассмотрим создание на основе платы Arduino и датчике MAX30100 пульсоксиметра, который по принципу действия и отображения получаемых результатов будет максимально приближен к пульсоксиметрам промышленного изготовления, которые продаются в магазинах. Для этого мы и применили в данном проекте датчик MAX30100 и OLED дисплей. Также мы постарались сделать наш пульсоксиметр максимально компактным, в связи с чем мы спроектировали его на основе платы Arduino Nano.

Внешний вид пульсоксиметра на основе платы Arduino и датчике MAX30100

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

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

Датчик MAX30100

Датчик MAX30100 позволяет производить измерение уровня насыщения крови кислородом (сатурация кислорода в крови, SpO2) и пульса (сердечного ритма) и передавать эту информацию микроконтроллеру по интерфейсу I2C. Таким образом, датчик содержит две интегрированные в него функции – мониторинг пульса и измерение уровня насыщения кислородом крови в неинвазивной форме.

Датчик содержит фотодетекторы и оптические элементы, в которых производится модуляция излучения красного или зеленого светодиодов импульсами. Ток светодиодов можно настроить в диапазоне от 0 до 50mA. На следующем рисунке представлен внешний вид датчика MAX30100.

Внешний вид датчика MAX30100

Датчик работает с напряжениями в диапазоне от 1.8V до 5.5V. Подтягивающие резисторы для контактов интерфейса I2C включены в состав датчика.

OLED дисплей

OLED дисплеи с каждым годом находят все больше применения в современной электронике. В нашем проекте пульсоксиметра мы также решили использовать OLED дисплей поскольку все пульсоксиметры промышленного изготовления в качестве устройства отображения информации используют OLED дисплей. Мы использовали OLED дисплей с диагональю 1.3 дюйма, работающий по интерфейсу I2C. Дисплей поддерживает разрешение 128x32 пикселов и содержит управляющий чип (драйвер) SSD1306. Внешний вид такого дисплея показан на следующем рисунке.

Внешний вид OLED дисплея

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

Технические характеристики OLED дисплея SSD1306:

  • драйвер микросхемы OLED: SSD1306;
  • разрешение: 128 x 64;
  • угол зрения: >160°;
  • входное напряжение: 3.3V ~ 6V;
  • цвет пикселов: синий;
  • диапазон рабочих температур: -30°C ~ 70°C.

Необходимые компоненты

  1. Плата Arduino Nano (купить на AliExpress).
  2. Два подтягивающих резистора для интерфейса I2C сопротивлением 4,7 кОм (купить на AliExpress).
  3. Датчик MAX30100 (купить на AliExpress).
  4. OLED дисплей SSD1306 с разрешением 128x32 (128x64) (купить на AliExpress).
  5. Источник питания с напряжением 5V, обеспечивающим ток не менее 300mA.

Схема проекта

Схема пульсоксиметра на основе платы Arduino и датчике MAX30100 представлена на следующем рисунке.

Схема пульсоксиметра на основе платы Arduino и датчике MAX30100

Как видите, схема очень проста – контакты A5 и A4 платы Arduino Nano соединены с контактами интерфейса I2C (SDA и SCL) датчика MAX30100 и OLED дисплея с использованием двух подтягивающих резисторов.

Объяснение программы для Arduino

Полный код программы приведен в конце статьи, здесь же мы кратко рассмотрим его основные фрагменты.

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

Последние посетители 0 пользователей онлайн

и я об этом, бла, бла, бла. Есть проект и соответствие его выполнения, кто КСки закрывал, вводил в эксплуатацию. На хер мне шпутинг с навальнятами, у себя порядок навести не кому. Фильм Дурак Ю. Быкова, но не все же по нему живут и Щуки по жирнее есть.

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

Tymbler

@Praktic, а если в качестве выключателя используется выход блока управления на штатное реле бензонасоса? 100 Ом я выбрал, если честно, исходя из тока потребления обычного реле, да бы исключить вылет ошибки ЭБУ по неисправности реле топливного насоса. В теоретической части я крайне не силен( Попробовал в мультисиме, в таком варианте получается падение на транзисторе порядка 0,6 вольта

Praktic

Я бы поставил резистор Ом на 30-60 последовательно с выключателем, а верхний увеличил до 300-600 Ом. Вот и всё. Можно насос зашунтировать диодом, но он излишен. От всплесков противоэдс будет спасать имеющийся диод мосфета.

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

Датчик углекислого газа MQ-135:

Влияние содержания СО2 на человека

С повышением уровня углекислого газа в помещении люди начинают ощущать духоту, учащается сердцебиение, появляется утомляемость. Дальнейшее ухудшение качества воздуха может и вовсе привести к трагическим последствиям. Концентрацию газа в атмосфере ограниченного объёма измеряют в ppm. 1 единица ppm соответствует 1 см3 в 1 м3 воздуха. В результате исследований и наблюдений были определены 3 критических порога самочувствия людей при определенном содержании СО2:

Содержание СО2, ppm Симптомы
1 400–800 Отличное самочувствие
2 800–1200 Сонливость, утомляемость, падает внимание
3 1200 и более Потеря трудоспособности, угроза здоровью

Влияние СО2 на человека:

Влияние СО2 на человека

Что такое Ардуино

Такое название носит аппаратно-программное устройство. Плата небольших размеров с процессором обладает собственной памятью. На ней расположено довольно много клеммных-контактов, к которым можно подсоединять различные устройства: контроллеры, световые приборы, электродвигатели и многое другое. Универсальность электронной платформы заключается в том, что её можно загружать разными программами, с помощью которых можно управлять самыми разнообразными гаджетами. Ардуино — это своеобразная конструкторская база, с помощью которой можно создавать уникальные управляющие системы любого назначения, в том числе измеритель уровня загазованности окружающего пространства CO2.

История создания Arduino

Автором универсального прибора считается житель итальянского городка Ивреа в провинции Пьемонт. Молодой преподаватель местного университета Массимо Банци с коллегами в 2005 году, пытаясь создать универсальную платформу для обучения студентов программированию, оснастил микроконтроллер ATMEGA дополнительной обвязкой. В результате Банци получил продукт, крайне востребованный на рынке электроники.

Интересен сам факт названия электронной платформы. Группа университетских программистов частенько засиживалась в местном баре под названием Arduino. Так в давние времена звали местного правителя. Вот авторы изобретения и решили так назвать своё детище.

Версии аппаратной части платформы Ардуино

На сегодняшний день существует несколько видов плат Arduino. Последняя разработка Leonardo использует микроконтроллер AT mega 32u4, а Duemilanove построена на Atmel At mega 328. Для сборки детектора углекислого газа применяют чаще всего более дешёвую модель — Arduino Uno, основанную на том же микроконтроллере, что и предыдущая версия платформы.

Платформа Ардуино Уно:

Платформа Ардуино Уно

Устройство и принцип работы датчика углекислого газа для Ардуино

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

Модель MQ-135 — электрохимический прибор. Он построен на принципе изменения сопротивления чувствительного химического элемента устройства при соприкосновении с углекислым газом. Элемент представляет собой керамическую трубку, на покрытие которой из оксида алюминия (Al2O3) нанесена тонкая плёнка диоксида олова (SnO2).

Модуль датчика газа:

Модуль датчика газа

Для нормального функционирования датчик должен находиться постоянно в нагретом состоянии. Нагреватель внутри трубки доводит её поверхность до нужного уровня температуры, при которой чувствительный слой при соприкосновении с молекулами углекислого газа меняет своё сопротивление. Элемент закрыт металлической сеткой. Она предохраняет нагреватель от контакта с другими взрывоопасными газами, которые могут попасть в помещение совместно с СО2. Такой принцип защиты используется в горном деле.

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

Что находится под защитной сеткой MQ-135:

Что находится под защитной сеткой MQ-135

Изменение характеристик тока, протекающего через устройство, фиксируются платой Ардуино. Процессор, обрабатывая информацию о превышении безопасного уровня СО2, отдаёт команды на включение звуковой сигнализации (зуммера), и на реле включения вытяжной вентиляции. Таким образом датчик выполняет функцию контроля за безопасным уровнем загазованности углекислым газом помещения.

Следует учитывать то, что датчик рассчитан на эксплуатацию при влажности 65% и температуре окружающего воздуха 20 °С. При влажности 95% прибор перестаёт адекватно реагировать на изменение содержания СО2. Кроме этого большую роль играет срок службы детектора. Со временем чувствительный слой трубки из SnO2 засоряется продуктами обгорания углекислого газа. В результате датчик теряет точность измерений. Производители приборов рекомендуют время от времени проводить перекалибровку датчика.

Как сделать датчик газа на Ардуино своими руками

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

Существует несколько проектов сборки детектора углекислого газа на Ардуино. Стоит рассмотреть два наиболее популярных из них. В принципе оба отличаются тем, что в первом случае используется датчик углекислого газа MQ-135, а в другом варианте применяется китайский инфракрасный прибор MH-Z19B.

Проект сборки детектора углекислого газа с датчиком MQ-135 на платформе Ардуино

Перед сборкой следует подготовить следующее:

  • платформа Ардуино Уно;
  • датчик MQ-135;
  • зуммер (любое звуковое сигнальное устройство);
  • LCD дисплей 16×2;
  • батарейка 9 вольт;
  • два трёхжильных шлейфа;
  • два резистора 1 кОм;
  • плата расширения Troyka Shield.

Плата Тройка Шилд:

Плата Тройка Шилд

  • S — аналоговый или цифровой сигнал;
  • V — питание с рабочим напряжением;
  • G — масса (земля).

Плата Тройка Шилд и датчик с обозначением контактов:

Плата Тройка Шилд и датчик с обозначением контактов

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

Схема подсоединения MQ-135 к панели Troyka Shield:

Теперь нужно воспользоваться компьютером, скачать из сети и установить в Serial port Arduino Uno библиотеку TroykaMQ, и текущее значение углекислого газа. Так как нагреватель нужно держать всё время во включённом состоянии, то можно подключить датчик только одним шлейфом.

Подключение MQ-135 одним шлейфом:

Подключение MQ-135 одним шлейфом

Проект сборки детектора углекислого газа с инфракрасным датчиком MH-Z19

Прибором MQ-135 может стать датчик MH-Z19. Модуль оснащён двумя выходами, совместимыми с 5-вольтовой логикой. Измеритель может работать в одном из диапазонов газовой насыщенности СО2 от 0 до 2000 ppm и от 0 до 5000 ppm.

Датчик MH-Z19

Датчик соединяется через панель Troyka Shield c любой платформой Ардуино. В отличие от MQ-135, китайский инфракрасный детектор страдает некоторой инерционностью показаний данных. При изменении уровня содержания в атмосфере углекислого газа, прибору требуется около минуты для коррекции показаний. Положительным является то, что срок службы MH-Z19 намного больше вышеуказанного аналога, но и стоит он дороже.

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

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