Датчик угарного газа: различия между версиями
Нет описания правки |
Нет описания правки |
||
Строка 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; | |||
{ | |||
<code>// контакт подключения светодиода | |||
} | 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 — это датчик угарного газа 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 к 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);
}