Теперь, когда у нас есть полное представление о том, как работает датчик газа MQ-2, мы можем подключить его к нашей плате Arduino!
Подключить модуль датчика газа MQ-2 к Arduino довольно просто. Начните с установки датчика на макетную плату. Подключите вывод VCC к выводу 5V на Arduino, а вывод GND – к выводу Ground на Arduino.
Подключите выходной вывод D0 на модуле к цифровому выводу 8 на Arduino, а выходной вывод A0 на модуле – к аналоговому выводу 0 на Arduino.
Когда вы закончите, у вас должно получиться что-то похожее на рисунок ниже.
Рисунок 12 – Подключение модуля датчика газа MQ-2 к Arduino
Итак, теперь, когда мы подключили наш датчик газа, пришло время написать код и проверить его.
Код Arduino
Код очень прост, и, в основном, он просто читает аналоговое напряжение на выводе A0. При обнаружении дыма он выводит сообщение на мониторе последовательного порта. Посмотрите скетч, прежде чем мы начнем его подробный разбор.
#define MQ2pin (0)
float sensorValue; // переменная для хранения значения датчика
|
|
void setup()
{
Serial.begin(9600); // настроить последовательный порт на скорость 9600
Serial.println("Gas sensor warming up!");
delay(20000); // дать MQ-2 время для прогрева
}
void loop()
{
sensorValue = analogRead(MQ2pin); // прочитать аналоговый вход 0
Serial.print("Sensor Value: ");
Serial.print(sensorValue);
if(sensorValue > 300)
{
Serial.print(" | Smoke detected!");
}
Serial.println("");
delay(2000); // подождать 2 сек до следующего чтения
}
Скетч начинается с определения вывода Arduino, к которому подключен аналоговый вывод датчика газа MQ-2. Переменная под названием sensorValue определена для хранения значения датчика.
#define MQ2pin (0)
float sensorValue; // переменная для хранения значения датчика
В функции setup() мы инициализируем последовательную связь с ПК и ждем 20 секунд, чтобы дать датчику прогреться.
Serial.begin(9600); // настроить последовательный порт на скорость 9600
Serial.println("Gas sensor warming up!");
delay(20000); // дать MQ-6 время для прогрева
В функции loop() значение датчика считывается функцией analogRead() и отображается в мониторе последовательного порта.
sensorValue = analogRead(MQ2pin); // прочитать аналоговый вход 0
Serial.print("Sensor Value: ");
Serial.print(sensorValue);
Когда концентрация газа достаточно высока, датчик обычно выдает значение, превышающее 300. Мы можем отслеживать это значение с помощью оператора if. И когда значение датчика превысит 300, мы отобразим сообщение «Smoke detected!» (Обнаружен дым!).
if(sensorValue > 300)
{
Serial.print(" | Smoke detected!");
}
Вывод в мониторе последовательного порта выглядит так:
Рисунок 13 – Вывод в мониторе последовательного порта скетча для работы с модулем датчика газа MQ-2