Как работает датчик алкоголя MQ3? Подключение к Arduino

Как работает датчик алкоголя MQ3? Подключение к Arduino

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

Датчик алкоголя MQ3

MQ3 — один из наиболее широко используемых датчиков серии MQ. Это датчик типа MOS (Metal Oxide Semiconductor — полупроводник на основе оксида металла). Датчики на основе оксидов металлов также известны как хеморезисторы, поскольку их принцип работы основан на изменении сопротивления чувствительного материала при воздействии алкоголя.

How MQ3 Alcohol Sensor Works? & Interface it with Arduino

Датчик алкоголя MQ3 работает от 5V постоянного тока и потребляет примерно 800 мВт. Он может обнаруживать концентрации алкоголя в диапазоне от 25 до 500 ppm.

Что означает концентрация 1 ppm?

Parts-per-million, или ppm — наиболее распространённая единица измерения концентрации газа. ppm — это просто соотношение одного газа к другому. Например, 500 ppm алкоголя означает, что если бы вы могли подсчитать миллион молекул газа, 500 из них были бы алкоголем, а остальные 999 500 — другими газами.

Внутреннее устройство датчика алкоголя MQ3

MQ3 — это датчик с нагревательным элементом. Поэтому он покрыт двумя слоями тонкой сетки из нержавеющей стали, известной как «взрывозащитная сетка». Она обеспечивает, что нагревательный элемент внутри датчика не вызовет взрыва, поскольку мы измеряем горючий газ (алкоголь).

How MQ3 Alcohol Sensor Works? & Interface it with Arduino

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

How MQ3 Alcohol Sensor Works? & Interface it with Arduino

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

Остальные четыре ножки (A и B), передающие сигналы, соединены платиновыми проводами. Эти провода подключены к корпусу чувствительного элемента и передают незначительные изменения тока, протекающего через чувствительный элемент.

How MQ3 Alcohol Sensor Works? & Interface it with Arduino

Трубчатый чувствительный элемент изготовлен из керамики на основе оксида алюминия (Al2O3) с покрытием из диоксида олова (SnO2). Диоксид олова — наиболее важный материал, поскольку он чувствителен к алкоголю. Керамическая подложка, со своей стороны, повышает эффективность нагрева и обеспечивает непрерывный нагрев чувствительной области до рабочей температуры.

How MQ3 Alcohol Sensor Works? & Interface it with Arduino

Подведём итог: система нагрева состоит из никель-хромовой катушки и керамики на основе оксида алюминия, а система измерения — из платиновых проводов и покрытия из диоксида олова.

Как работает датчик алкоголя MQ3?

Когда полупроводниковый слой из SnO2 нагревается до высокой температуры, кислород адсорбируется на поверхности. Когда воздух чист, электроны из зоны проводимости диоксида олова притягиваются к молекулам кислорода. Это создаёт область обеднения электронов непосредственно под поверхностью частиц SnO2, формируя потенциальный барьер. В результате плёнка SnO2 становится высокорезистивной и препятствует протеканию электрического тока.

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

How MQ3 Alcohol Sensor Works? & Interface it with Arduino

Обзор оборудования модуля датчика алкоголя MQ3

Датчик алкоголя MQ3 прост в использовании и имеет два различных выхода. Он не только обеспечивает бинарную индикацию наличия алкоголя, но и аналоговое представление его концентрации в воздухе.

How MQ3 Alcohol Sensor Works? & Interface it with Arduino

Аналоговое выходное напряжение датчика (на выводе A0) изменяется пропорционально концентрации алкоголя. Чем выше концентрация алкоголя в воздухе, тем выше выходное напряжение; чем ниже концентрация, тем ниже напряжение. Анимация ниже показывает зависимость между концентрацией алкоголя и выходным напряжением.

How MQ3 Alcohol Sensor Works? & Interface it with Arduino

Этот аналоговый сигнал оцифровывается высокоточным компаратором LM393 и выдаётся на цифровом выходе (вывод D0).

How MQ3 Alcohol Sensor Works? & Interface it with Arduino

Модуль включает потенциометр для регулировки чувствительности цифрового выхода (D0). С его помощью можно установить порог: когда концентрация алкоголя превышает пороговое значение, модуль выдаёт LOW, в противном случае — HIGH.

Поворот ручки по часовой стрелке увеличивает чувствительность, против часовой — уменьшает.

How MQ3 Alcohol Sensor Works? & Interface it with Arduino

Кроме того, на модуле есть два светодиода. Светодиод питания загорается при включении модуля, а светодиод состояния — когда концентрация алкоголя превышает пороговое значение.

Технические характеристики

Вот технические характеристики:

Рабочее напряжение

5V

Сопротивление нагрузки

200 KΩ

Сопротивление нагревателя

33Ω ± 5%

Потребление нагревателя

<800mw

Сопротивление чувствительного элемента

1 MΩ – 8 MΩ

Диапазон концентраций

25 – 500 ppm

Время прогрева

Более 24 часов

Распиновка модуля датчика алкоголя MQ3

Давайте рассмотрим распиновку.

How MQ3 Alcohol Sensor Works? & Interface it with Arduino

VCC обеспечивает питание модуля. Подключите его к выходу 5V Arduino.

GND — это вывод заземления.

D0 указывает на наличие алкоголя. D0 переходит в LOW, когда концентрация алкоголя превышает пороговое значение (установленное потенциометром), и в HIGH — в противном случае.

A0 выдаёт аналоговое выходное напряжение, пропорциональное концентрации алкоголя: более высокая концентрация — более высокое напряжение, более низкая концентрация — более низкое напряжение.

Калибровка датчика алкоголя MQ3

Поскольку MQ3 — датчик с нагревательным элементом, его калибровка может сместиться при длительном хранении.

При первом использовании после длительного хранения (месяц или более) датчик необходимо полностью прогреть в течение 24–48 часов для обеспечения максимальной точности.

Если датчик использовался недавно, полный прогрев займёт всего 5–10 минут. В период прогрева датчик обычно показывает завышенные значения, которые постепенно снижаются до стабилизации.

Эксперимент 1 — Измерение концентрации алкоголя через аналоговый выход (A0)

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

Схема подключения

Давайте подключим датчик алкоголя MQ3 к Arduino.

Начните с подключения вывода VCC к выводу 5V Arduino и вывода GND к выводу Ground Arduino. Наконец, подключите выходной вывод A0 модуля к аналоговому выводу #0 Arduino.

Схема подключения показана на изображении ниже.

How MQ3 Alcohol Sensor Works? & Interface it with Arduino

Определение пороговых значений

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

Просто запустите скетч ниже и снимите показания.

Примечание:

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

#define MQ3pin 0

float sensorValue;  //variable to store sensor value

void setup() {
     Serial.begin(9600); // sets the serial port to 9600
     Serial.println("MQ3 warming up!");
     delay(20000); // allow the MQ3 to warm up
}

void loop() {
     sensorValue = analogRead(MQ3pin); // read analog input pin 0

     Serial.print("Sensor Value: ");
     Serial.println(sensorValue);

     delay(2000); // wait 2s for next reading
}

При запуске скетча вы должны увидеть показания, похожие на эти:

  • При отсутствии алкоголя (около 120)

  • При наличии алкоголя (около 500)

How MQ3 Alcohol Sensor Works? & Interface it with Arduino

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

Код Arduino

Скетч ниже оценивает уровень алкогольного опьянения, используя следующие пороговые значения:

  • < 120 — трезвый

  • 120–400 — выпивший, но в пределах допустимой нормы

  • > 400 — пьяный

/* Replace these values with your own readings */
#define Sober 120   // Define max value that we consider sober
#define Drunk 400   // Define min value that we consider drunk

#define MQ3pin 0

float sensorValue;  //variable to store sensor value

void setup() {
     Serial.begin(9600); // sets the serial port to 9600
     Serial.println("MQ3 warming up!");
     delay(20000); // allow the MQ3 to warm up
}

void loop() {
     sensorValue = analogRead(MQ3pin); // read analog input pin 0

     Serial.print("Sensor Value: ");
     Serial.print(sensorValue);

     // Determine the status
     if (sensorValue < Sober) {
             Serial.println("  |  Status: Stone Cold Sober");
     } else if (sensorValue >= Sober && sensorValue < Drunk) {
             Serial.println("  |  Status: Drinking but within legal limits");
     } else {
             Serial.println("  |  Status: DRUNK");
     }

     delay(2000); // wait 2s for next reading
}

Если всё в порядке, вы должны увидеть нечто подобное в мониторе последовательного порта.

How MQ3 Alcohol Sensor Works? & Interface it with Arduino

Эксперимент 2 — Обнаружение алкоголя через цифровой выход (D0)

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

Схема подключения

Мы используем схему из предыдущего эксперимента. Просто отключите соединение с выводом АЦП и подключите вывод D0 модуля к цифровому выводу #8 Arduino.

Схема подключения показана на изображении ниже.

How MQ3 Alcohol Sensor Works? & Interface it with Arduino

Установка порога

На модуле есть встроенный потенциометр для установки порога концентрации алкоголя, при превышении которого модуль выдаёт LOW, а светодиод состояния загорается.

How MQ3 Alcohol Sensor Works? & Interface it with Arduino

Для установки порога дайте парам алкоголя попасть на датчик и поворачивайте потенциометр по часовой стрелке, пока не загорится светодиод состояния. Затем поверните обратно против часовой стрелки, пока светодиод не погаснет.

Вот и всё — ваш модуль готов к использованию.

Код Arduino

Теперь загрузите скетч ниже на Arduino.

#define MQ3pin 8

int sensorValue;  //variable to store sensor value

void setup() {
     Serial.begin(9600); // sets the serial port to 9600
     Serial.println("MQ3 warming up!");
     delay(20000); // allow the MQ3 to warm up
}

void loop() {
     sensorValue = digitalRead(MQ3pin); // read digital output pin
     Serial.print("Digital Output: ");
     Serial.print(sensorValue);

     // Determine the status
     if (sensorValue) {
             Serial.println("  |  Alcohol: -");
     } else {
             Serial.println("  |  Alcohol: Detected!");
     }

     delay(2000); // wait 2s for next reading
}

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

How MQ3 Alcohol Sensor Works? & Interface it with Arduino