Датчик газа MQ9 и вывод результата с помощью индикатора TM1637 на arduino

Датчик газа MQ9

Наткнулся на интересный датчик MQ9, с его помощью можно определять в воздухе уровень угарного или углеводородных (пропан, метан, этилен и тд) газов. Использовать его можно в качестве сигнализации при утечках газа. Работать с датчиком очень просто, поэтому я добавил в статью еще и описание 7-сегментного 4-разрядного индикатора TM1637. Индикатор уже имеет микросхему управления, поэтому использовать его тоже очень просто – будем выводить на нем уровень газа в помещении.

Как работает датчик газа MQ9

Датчик MQ9 использует свойство диоксида олова(SnO2), в зависимости от загазованности помещения меняется электропроводимость. Таким образом, используя это свойство можно подавать напряжение на датчик, а потом считывать его. Чем больше напряжение на выходе, тем выше уровень газа в воздухе.
MQ9 имеет 4 ноги, две из которых — это питание (GND и VCC), и две – выходы (цифровой и аналоговый). AO – аналоговый выход, с помощью аналогового пина arduino можно получить значение от 0 до 1024, где 1024 будет максимальный уровень загазованности помещения. DO – это цифровой выход, на который передаются логические 0 или 1, в зависимости от уровня газа. Критический уровень можно регулировать с помощью подстрочного резистора на датчике.
Ниже приведено фото датчика с подписанными ножками.

Датчик газа MQ9

7-сегментный 4-рязрядный индикатор TM1637

Индикатор TM1637 очень прост в использовании, поскольку уже имеет «на борту» микросхему управления. Поэтому для управления достаточно всего два цифровых пина и питания 5 вольт. Чтобы выводить данные на дисплей индикатора удобно использовать готовую библиотеку, скачать ее можно тут: библиотека для TM1637.
Ниже приведено фото TM1637 с подписанными ножками.

Индикатор TM1637

Что использовалось в проекте:

Скетч индикатора газа на arduino с помощью MQ9 и TM1637

Ниже приведен скетч с подробными комментариями, а также его можно скачать себе на компьютер: скачать.

// подключение библиотеки для работы с дисплеем
#include "TM1637.h"

// пины дисплея
#define CLK 3
#define DIO 2
// создание объекта для работы с дисплеем
TM1637 tm1637(CLK,DIO);

// пин для получения аналогового значения с датчика MQ9
#define MQ_PIN A0
// переменная для хранения значения, полученного с датчика MQ9
float mqValue;
// переменная для хранения уровня газа в процентах
float mqPercents; 

  
void setup() 
{
  // инициализация дисплея
  tm1637.init();
  tm1637.set(BRIGHT_TYPICAL);
  
  Serial.begin(9600);
}
 
void loop() 
{
  // получаем значение от датчика MQ9
  mqValue = analogRead(MQ_PIN);
  // переводим значение в проценты
  mqPercents = mqValue/1024 * 100;

  // вывод процентов на дисплей
  tm1637.display(mqPercents / 1000);

  // вывод данных в консоль
  Serial.print("GAS: ");
  Serial.print(mqPercents);
  Serial.println("%");

  // ждем секунду
  delay(1000);
}
 

Послесловие

Видео работающего прототипа можно посмотреть на видео:

Рассказать друзьям:


Оценить:
(1 оценок, среднее: 5,00 из 5)

Датчик газа MQ9 и вывод результата с помощью индикатора TM1637 на arduino: 7 комментариев

  1. А можно полученные проценты сохранить в exel? Чтобы фиксировать показания в зависимости от времени

    1. Нет, библиотеки не нужны, значение можно получать с аналогового выхода с помощью функции analogRead

  2. Добрый день, не подскажете как дополнить код добавив в схему пищалку(зуммер) с срабатыванием по пороговому значению.

    1. Добрый день! Пищалку можно включать всего с одного аналогового пина. В коде сделать проверку по критическому уровню и в этот момент пищать

  3. Спасибо! Можно ли узнать из показаний угарный или углеводородный газ?

Добавить комментарий для admin Отменить ответ

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*

code