Датчик угарного газа: различия между версиями

Материал из MIK32 микроконтроллер
Нет описания правки
Нет описания правки
Строка 23: Строка 23:


Сокращение ppm расшифровывается как parts per million или в вольном переводе "частей на миллион". От процента показатель не отличается, отличается только размерность (1 ppm = 0,0001%). По гигиеническим нормам ppm приблизительно 0,0017% – 170 ppm, выхлопе бензинового двигателя СО может быть до 3% – соответственно 3% = 30.000 ppm.
Сокращение ppm расшифровывается как parts per million или в вольном переводе "частей на миллион". От процента показатель не отличается, отличается только размерность (1 ppm = 0,0001%). По гигиеническим нормам ppm приблизительно 0,0017% – 170 ppm, выхлопе бензинового двигателя СО может быть до 3% – соответственно 3% = 30.000 ppm.
[[Файл:Обратная сторона датчика.png|слева|мини|Обратная сторона датчика]]
[[Файл:Обратная сторона датчика.png|слева|мини|Обратная сторона датчика|320x320пкс]]
'''Подключение датчика'''
'''Подключение датчика'''


Строка 36: Строка 36:


[[Файл:Схема с датчиком MQ7.png|мини|Схема с датчиком MQ7]]
[[Файл:Схема с датчиком MQ7.png|мини|Схема с датчиком MQ7]]
'''Использование датчика'''
'''Использование датчика'''


Строка 48: Строка 50:


'''Пример кода'''
'''Пример кода'''
 
int analogMQ7 = A0;
{
  Serial.begin(9600); // Инициализация серийного порта
<code>// контакт подключения светодиода
  sensors.begin(); // Инициализация шины
}
int ledPin = 8;
// значение выше 1000 ppm
int highLevel = 150;
// переменная для хранения значения датчика
int val = 0;
void setup() {
Serial.begin(9600);
pinMode(ledPin, OUTPUT);
// время прогрева
Serial.println("warming-up");
delay(60000);
Serial.println("measurement");
}
void loop() {
val = analogRead(analogMQ7);
if (val >= highLevel) // превышение уровня
digitalWrite(ledPin, HIGH); // зажечь светодиод превышения
else
digitalWrite(ledPin, LOW); // потушить светодиод превышения
// вывести значение в последовательный порт
Serial.print("value = " );
Serial.println(val);
// пауза перед следующим измерением
delay(5000);
}</code>

Версия от 20:13, 31 мая 2021

Датчик MQ7

Датчик MQ7  — это датчик угарного газа CO. Основным источником выделения СО является сгорание углеродного топлива при недостаточном количестве кислорода. Углерод "не догорает" и вместо углекислого газа CO2, в атмосферу выбрасывается угарный газ CO.  Он чрезвычайно ядовит, но при этом не обладает ни цветом, ни запахом. Попав в помещение с угарным газом, вы только по косвенным симптомам поймете, что подвергаетесь воздействию яда. Пользу этого датчика переоценить трудно и он широко применяется в схемах автоматизации.

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


Характеристики датчика

  • Напряжение питания: 5 В;
  • Потребляемый ток: 160 мА;
  • Диапазон чувствительности: 10 – 10000 ppm;
  • Напряжение нагревателя: 1,5 – 5В;
  • Время накала нагревателя: 60 – 90 сек;
  • Сопротивление нагревателя: 31 Ом;
  • Мощность нагревателя: 350 мВт;
  • Сопротивление датчика: 2 – 20 кОм;
  • Стандартные рабочие условия:
  • температура: -10 ~ +50°C;
  • влажность: ≤95\%RH;
  • концентрация кислорода: 21\% (стандартные условия);
  • Габариты модуля: 22 х 22 х 17 мм;
  • Вес модуля: 5 г.

Сокращение ppm расшифровывается как parts per million или в вольном переводе "частей на миллион". От процента показатель не отличается, отличается только размерность (1 ppm = 0,0001%). По гигиеническим нормам ppm приблизительно 0,0017% – 170 ppm, выхлопе бензинового двигателя СО может быть до 3% – соответственно 3% = 30.000 ppm.

Обратная сторона датчика

Подключение датчика

Датчик имеет 4 вывода стандарта 2,54 мм:

  • VCC — питание 5 В;
  • GND — земля;
  • D0 — цифровой вывод;
  • A0— аналоговый вывод.

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

Схема с датчиком MQ7


Использование датчика

Рассмотрим подключение датчика MQ7 к Arduino c отображением на отдельном светодиоде превышения порога. Для проекта нам понадобятся следующие детали:

  • плата Arduino
  • плата прототипирования
  • датчик MQ7
  • светодиод
  • резистор 220 Ом
  • соединительные провода

Пример кода

int analogMQ7 = A0;

// контакт подключения светодиода

int ledPin = 8;

// значение выше 1000 ppm

int highLevel = 150;

// переменная для хранения значения датчика

int val = 0;
void setup() {

Serial.begin(9600);

pinMode(ledPin, OUTPUT);

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

Serial.println("warming-up");

delay(60000);

Serial.println("measurement");

}
void loop() {

val = analogRead(analogMQ7);

if (val >= highLevel) // превышение уровня

digitalWrite(ledPin, HIGH); // зажечь светодиод превышения

else
digitalWrite(ledPin, LOW); // потушить светодиод превышения

// вывести значение в последовательный порт

Serial.print("value = " );

Serial.println(val);

// пауза перед следующим измерением

delay(5000);
}