Реклама ⓘ
Главная » Микроконтроллеры
Призовой фонд
на апрель 2024 г.
1. 100 руб.
От пользователей

Реклама ⓘ

Тестер концентрации алкогольных паров на AVR

Многие знают, что сотрудники автоинспекции в случаях подозрения алкогольного применения используют некий агрегат, про который говорят "дунуть в трубочку". Сегодня попробуем сделать аналог такого устройства на основе датчика MQ-3, только вот не стоит именно в такой ситуации использовать его как эталонный, так как в область его чувствительности находятся не только пары алкоголя, но и пары бензина, метана и гексана, но к этим газам у него чувствительность меньше, максимальный отклик только к алкоголю. Помимо этого есть еще одни грабли - показания датчика также зависимы от внешних факторов, таких как температура, влажность. В случае серьезного подхода в применении алкогольного тестера стоит осуществить компенсацию этих факторов. Вообще же область применения контролем степени алкогольного опьянения не ограничивается, не знаю для чего вообще был разработан этот датчик MQ-3, но их можно применять в местах, где необходим контроль концентрации подобного газа в воздухе, например при перевозке алкогольной продукции такой датчик даст сигнал и повреждении партии продукции (если бутылка разобьется, то алкоголь начнет испаряться и заполнять парами пространство, как только предел будет достигнут - датчик сработает и даст сигнал тревоги водителю или еще кому-то), либо при производстве, требующем расхода спирта, при превышении расхода концентрация в воздухе возрастет и датчик сработает, дав сигнал и снижении расхода и так далее, так алкоголь необходим при производстве парфюмерии. Как обычно применение ограничивается лишь фантазией инженера.

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

Датчик имеет 6 выводов: выводы H - это нить накала (изготовленная из Ni-Cr), пары A и B - это выход сигнала датчика.

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

Параметры датчика MQ-3:

  • напряжение питания нагревающей катушки - 5 вольт
  • напряжение питания датчика - 5 вольт
  • мощность нагревающей катушки - до 750 мВт
  • сопротивление нагревающей катушки 33 Ом +-5%
  • область обнаружения паров датчиком - 0,05 мг/л - 10 мг/л
  • потребление тока - примерно 150 мА

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

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

Датчик MQ-3 можно купить как отдельно только один датчик, так и в виде модуля оснащенного компаратором. Стоимость подобной вещи может варьироваться от 3 долларов и выше в зависимости от настроения продавца. Датчики можно найти на торговых интернет площадках aliexpress и ebay.

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

Перед началом рассмотрения схемы определителя концентрации необходимо отметить тот факт, что перед использованием показания датчика необходимо обязательно калибровать. Почему? При подключении к питанию датчик в зависимости от содержания алкоголя в воздухе будет давать на выходе пропорциональный уровень сигнала. Так вот чтобы определить как сбалансирована эта пропорция (сколько вольт приходится на концентрацию, скажем в 1 мг/л) необходимо дать датчику именно такую концентрацию (или другую) и определить соотношение. Далее использовать этот коэффициент для преобразования показаний датчика в цифры. Без калибровки точные данные получить можно только наугад или снимать показания характера есть пары алкоголя, их нет, их много, их мало, то есть "на глазок" определить.

Итак, приступим к схеме тестера паров алкоголя:

Схема построена на микроконтроллере Atmega8. Данный микроконтроллер можно использовать как в корпусе DIP-28, так и в SMD исполнении в корпусе TQFP-32. Резистор R4 необходим для предотвращения самопроизвольного перезапускания микроконтроллера в случае появления случайных помех на выводе PC6. Резистор R4 подтягивает плюс питания к этому выводу, надежно создавая потенциал на нем. Для индикации используется жидко кристаллический (ЖК или LCD) дисплей. Мною применен большой дисплей 2004 (4 строки по 20 символов), однако вся информация поместится на дисплее 1602 (2 строки по 16 символов), с этим расчетом была написана прошивка. Переменный резистор R2 необходим для регулировки контраста символов на дисплее. Вращением движка этого резистора добиваемся наиболее четких для нас показаний на экране. Подсветка ЖК дисплея организована через вывод "А" и "К" на плате дисплея. Подсветка включается через резистор, ограничивающий ток - R1. Чем больше номинал, тем более тускло будет подсвечиваться дисплей. Однако пренебрегать этим резистором не стоит во избежание порчи подсветки. Работа схемы предусматривает работу модуля АЦП микроконтроллера, поэтому для его питания необходим дроссель L1 и конденсатор C4 для обеспечения стабильной работы модуля - фильтрации помех по питанию. Резистор R6 необходим для ограничения тока, проходящего через светодиод. К слову, светодиод можно заменить на другой прибор или электрическую цепь срабатывающий при превышении предела концентрации паров алкоголя, установленного посредством кнопок S3 и S5. Интервал регулировки этого параметра составляет плюс или минус 0,05 мг/л за одно нажатие кнопки. Резистор R8 также ограничивает ток, проходящий через нагревательную катушку датчика MQ-3. Это немного снижает максимальный ток через эту катушку и повышает надежность схемы. Сигнал от датчика алкоголя поступает на вход АЦП микроконтроллера, который непрерывно отслеживает потенциал на этом выводе. Далее в микроконтроллере значение АЦП переводится в напряжение и в концентрацию алкоголя с учетом калибровочных коэффициентов (их можно задать кнопками S2 и S4).

Производитель обещает более менее линейную характеристику показаний датчика MQ-3. Это упрощает калибровку, необходимо ввести всего два коэффициента, корректирующих показания. Для этого мы будем использовать простую школьную формулу y=k*x+b, где y - концентрация алкоголя, x - напряжение от датчика, b - смещение рабочего диапазона (при нулевой концентрации напряжение всегда будет больше 0), k - коэффициент перевода напряжения в концентрацию. С коэффициентом k самая большая проблема, потому что его можно задать или придумав из головы, или по сигналу датчика от эталонного источника концентрации. Оба коэффициента можно задать кнопками устройства. Калибровка по b должна происходить при концентрации полностью ноль в состоянии покоя, при нажатии коэффициент b будет сохранен и отниматься от текущего значения, таким образом при нулевой концентрации на экране получится значение ноль, а не какое-либо малое значение (или не очень малое). Коэффициент k задает отношение напряжения к концентрации алкоголя, то есть на сколько вольт придется концентрация в 1 мг/л. Именно при этом значении стоит калибровать устройство (естественно можно и при другой концентрации калибровать, но тогда это нужно предусмотреть в прошивке микроконтроллера).

  1. текущее значение АЦП микроконтроллера
  2. напряжение посчитанное с учетом коэффициента b (изначально при включении b=0, необходимо калибровать перед каждым использованием)
  3. значение предела концентрации, устанавливаемой кнопками устройства
  4. значение концентрации алкоголя в мг/л пересчитанной через напряжение с учетом коэффициента k

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

Все резисторы в схеме можно применять мощность 0,25 Вт или типоразмера 1206 в СМД исполнении.

Схема была собрана на макетной плате для микроконтроллера Atmega8:

На макете датчик MQ-3 подключен к отдельному источнику питания 5 вольт от другого порта USB компьютера.

Хотя модуль датчика паров алкоголя используется в виде модуля, но используется только вывод, соединенный напрямую с самим датчиком MQ-3. Ничего, кроме него, в модуля больше не используется.

Для программирования микроконтроллера необходимо знать конфигурацию фьюз битов:

К статье прилагается прошивка для микроконтроллера, документация на датчик MQ-3, проект протеус (версия 8) (датчик заменен потенциометром для изменения показаний и их отслеживания), а также небольшое видео, демонстрирующее работу устройства (при поднесении бутылки со спиртом к датчику показания начинают изменяться и при достижении предела загорается светодиод, далее бутылка убирается и показания начинают уменьшаться, однако из-за инерционности датчика показания уменьшаются достаточно медленно, особенно приближаясь к нулю).

Список радиоэлементов

Обозначение Тип Номинал Количество ПримечаниеМагазинМой блокнот
IC1 МК AVR 8-бит
ATmega8
1 Поиск в магазине ОтронВ блокнот
IC2 DC/DC импульсный конвертер
MC34063A
1 Поиск в магазине ОтронВ блокнот
VD1 Диод Шоттки
1N5819
1 Поиск в магазине ОтронВ блокнот
U1 Датчик газаMQ-31 Поиск в магазине ОтронВ блокнот
C1, C4, C5 Конденсатор0.1 мкФ3 Поиск в магазине ОтронВ блокнот
C2 Электролитический конденсатор100 мкФ1 Поиск в магазине ОтронВ блокнот
C3 Конденсатор220 пФ1 Поиск в магазине ОтронВ блокнот
C6 Электролитический конденсатор1000 мкФ1 Поиск в магазине ОтронВ блокнот
R1 Резистор
22 Ом
1 Поиск в магазине ОтронВ блокнот
R2 Подстроечный резистор10 кОм1 Поиск в магазине ОтронВ блокнот
R3 Резистор
0.3 Ом
1 Или несколько в параллельПоиск в магазине ОтронВ блокнот
R4 Резистор
10 кОм
1 Поиск в магазине ОтронВ блокнот
R5 Резистор
1 кОм
1 Поиск в магазине ОтронВ блокнот
R6 Резистор
390 Ом
1 Поиск в магазине ОтронВ блокнот
R7 Резистор
3 кОм
1 Поиск в магазине ОтронВ блокнот
R8 Резистор
5.1 Ом
1 Поиск в магазине ОтронВ блокнот
L1 Катушка индуктивности100 мкГн1 Поиск в магазине ОтронВ блокнот
L2 Катушка индуктивности150 мкГн1 Поиск в магазине ОтронВ блокнот
HG1 LCD-дисплей2004a1 Или 1602Поиск в магазине ОтронВ блокнот
LED1 Светодиод1 Поиск в магазине ОтронВ блокнот
S1-S5 Тактовая кнопкаTC-A1095 Поиск в магазине ОтронВ блокнот
Добавить все

Скачать список элементов (PDF)

Прикрепленные файлы:

Теги:

Опубликована: 0 0
Я собрал 0 2
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 4.4 Проголосовало: 2 чел.

Комментарии (29) | Я собрал (0) | Подписаться

0
Zlodey #
Дисплей слишком быстро обновляется, вместо цифр получается каша
Ответить
0

[Автор]
Gauss #
Не подумал об этом, вообще это просто пример использования датчика, всегда можно поправить
Ответить
0
Сергей #
Исправлено-ли быстрое обновление дисплея? Можно использовать дисплей 1602 или таки 2004а?
Ответить
0

[Автор]
Gauss #
В исправления не влазил, а дисплей можно и тот, и тот (hd44780)
Ответить
0
sergej tolkach #
Спасибо за ответ. Насчет дисплея я разобрался. А реально код исправить? Специально заказывал детали для этого проекта. Уж больно штука интересная.Попадалась схема на светодиодах но это не то, Ваша нравится.
Ответить
0

[Автор]
Gauss #
Реально, как будет минутка, то подкручу
Ответить
0

[Автор]
Gauss #
Вот, в 5 раз медленнее
Прикрепленный файл: 47.hex
Ответить
0
sergej tolkach #
Спасибо, будем начинать сборку.
Ответить
0
sergej tolkach #
И снова здравствуйте. Пацан сказал,пацан сделал. Как и обещал собрал тестер. Никаких подводных камней не было. Все завелось с первого включения, понадобилось лишь подстроить контрастность. Прошивка 47.hex. Под рукой нет проверочного материала, негде взять ночью, проверю позже. буду делать корпус. Автору спасибо за работу.
Прикрепленный файл: IMG_20170302_015653.jpg
Ответить
0
sergej tolkach #
Фото вставил.Еще одно фото.Постараюсь показать как все выглядит в корпусе.
Прикрепленный файл: IMG_20170302_015715.jpg
Ответить
0

[Автор]
Gauss #
Фотки можно в "я собрал" закидывать еще
Рад, что вам понравилось
Ответить
0
sergej tolkach #
И снова здравствуйте. Перед тем как делать корпус решил подробнее протестировать девайс. Результат-прогрел девайс,делаю калибровку b все уходит в 0,делаю калибровку k- показание alk=У3.5 mgm, устройство уходит в нирвану, показания напряжения меняются при дыхании на датчик. Вывести из этого состояние можно через резет или дать понюхать пива либо через время можно через калибровку b. Если нажать k опять уходит в нирвану. Кнопками установки Р параметры b и k не устанавливаются. Я в печальке - где засада?
Ответить
0

[Автор]
Gauss #
Для этого мы будем использовать простую школьную формулу y=k*x+b, где y - концентрация алкоголя, x - напряжение от датчика, b - смещение рабочего диапазона (при нулевой концентрации напряжение всегда будет больше 0), k - коэффициент перевода напряжения в концентрацию. С коэффициентом k самая большая проблема, потому что его можно задать или придумав из головы, или по сигналу датчика от эталонного источника концентрации. Оба коэффициента можно задать кнопками устройства. Калибровка по b должна происходить при концентрации полностью ноль в состоянии покоя, при нажатии коэффициент b будет сохранен и отниматься от текущего значения, таким образом при нулевой концентрации на экране получится значение ноль, а не какое-либо малое значение (или не очень малое). Коэффициент k задает отношение напряжения к концентрации алкоголя, то есть на сколько вольт придется концентрация в 1 мг/л.
Потому что k задавать нужно при "нюхании" концентрации 1 мг/л
Ответить
0
sergej tolkach #
Коэффициент k задает отношение напряжения к концентрации алкоголя, то есть на сколько вольт придется концентрация в 1 мг/л. Вот здесь непонятка и кроется. Т.е. после прогрева делаем калибровку b, затем даем понюхать так чтобы девайс показал концентрацию 1 и делаем калибровку k. Это сохраняется в памяти и при работе учитывается. Сейчас буду проверять.
Ответить
0
sergej tolkach #
Протестировал как писал выше. Все работает с использованием алкоголя, даже цифры совпадают с цифрами на снимках в статье. Но почему при дыхании на датчик показывает 0.5мг/л? Я совершенно не употреблял. Или датчик реагирует на выдыхаемый углекислый газ? Непонятно. Смотрел таблицу перевода мл. в промилле, данные тестера совпадают с таблицей. Но почему 0.5мг.?
Ответить
0

[Автор]
Gauss #
В даташите указано на какие газы он еще реагирует в большей или меньшей степени. Т.к. я совершенно не пьющий, то этот вопрос я закрыть не могу экспериментально. Этой схемой тестировал алкоголи в таре.
Ответить
0
sergej tolkach #
Принято. Начинаю делать корпус.
Ответить
0
sergej tolkach #
И снова здравствуйте.Как и обещал выкладываю фото девайса в корпусе.Не знаю где находится функция "Я сделал" поэтому выкладываю как могу.
Прикрепленный файл: Изображение 001.jpg
Ответить
0
sergej tolkach #
Фото тестера в работе.
Прикрепленный файл: Изображение 002.jpg
Ответить
0
sergej tolkach #
А вот здесь непонятка в работе тестера.Видно что отсутствуют нули в показаниях при этом загорается светодиод.Ситуация возникает после нулевых показаниях тестера.Замена прошивок не помогает.Где засада?
Прикрепленный файл: Изображение 005.jpg
Ответить
0

[Автор]
Gauss #
Потому что калибровка b была сделана не при реальных нулевых значениях, а при некотором наличии алкоголя, а когда она реально нулю стала равно, значения пошли в минус, а минус здесь не предусмотрен
Ответить
0
sergej tolkach #
Скорее всего да, неверная калибровrа b. Мучают смутные сомнения-корпус из пластмассы и склеен дихлорэтаном, возможно что датчик этот дихлорэтан и нюхает. Извините за настойчивость, Вы не пропадайте, хочется довести проект до конца ведь уже все в корпусе. Читал Ваши статьи, мне понравились, очень все грамотно написано.
Ответить
0
Azaza #
Подскажите пожалуйста, а как вычисляете значение концентрации алкоголя в мг/л зная напряжение с учетом коэффициента k?
Ответить
0
Azaza #
Точнее по какой формуле?
Ответить
0

[Автор]
Gauss #
Словами это нужно знать концентрация приходится на единицу выходного напряжения датчика - то есть сколько мг/л на 1 вольт
Ответить
0
Artem #
Можете скинуть сам код программы, а не hex файл?
Ответить
0
Stas #
Собираю похожую приблуду, только малость мудрёнее (с adc и звуковой картой). Правда и не на альтеге, а на 8051 (не спрашивай почему, так надо)
Вопрос: как ты выставлял демонстрацию дробных чисел?
P.S. Пишу на си.... (тоже, "так надо"....)
Ответить
0
Alex #
Здравствуйте, а есть сам код программы? Можно его будет скинуть?
Ответить
0
Klara #
Можете пожалуйста скинуть код программы?
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется электрическая мощность?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

Программатор Pickit3
Программатор Pickit3
AVR-программатор USB ASP ELM327 OBD II — адаптер с поддержкой CAN
вверх