Система обнаружения газа с Arduino и ЖК-дисплеем 16×2 (обучение работе с Proteus)
В этой статье рассматривается проект на Arduino для обнаружения утечки газа с использованием MQ-2, LCD-дисплея 16×2 и светодиодов.
Пример создан специально для обучения работе с симулятором Proteus и демонстрирует практический способ контроля уровня газа с визуальной сигнализацией.
Проект использует готовый скетч, который контролирует датчик газа MQ-2, управляет светодиодами и выводит сообщение на ЖК-дисплей. Система полностью совместима с Proteus и не требует подключения реального оборудования.
Назначение проекта
Цель проекта — показать, как Arduino может использоваться для мониторинга безопасности помещения и отображения состояния газового сенсора на ЖК-дисплее и светодиодах. Основные функции включают:
- чтение данных с газового сенсора;
- отображение состояния на ЖК-дисплее 16×2;
- управление индикаторами состояния — красный и зелёный светодиоды;
- вывод сообщений в монитор порта Serial для отладки.
Такой подход применяется в системах безопасности, умных домах и промышленных объектах, где требуется своевременное информирование о потенциальной опасности.
Используемые компоненты
- Arduino UNO;
- ЖК-дисплей 16×2;
- Газовый датчик (модуль MQ-2, MQ-5 или аналогичный);
- Светодиоды: красный и зелёный;
- Proteus 8 или 9 с поддержкой Arduino.
Принцип работы системы
Проект контролирует газовый датчик MQ-2, подключённый к Arduino через цифровой вход. Когда уровень газа превышает допустимый порог, Arduino включает красный светодиод и выводит на дисплей сообщение тревоги. Если уровень газа в норме, включается зелёный светодиод, а на дисплее отображается сообщение о безопасном состоянии.
Система работает циклически с интервалом в одну секунду, обеспечивая непрерывный мониторинг помещения. Использование ЖК-дисплея позволяет отображать текстовые сообщения и мгновенно информировать пользователя о состоянии.
Особенности кода Arduino
Скетч использует библиотеку LiquidCrystal для работы с ЖК-дисплеем. Основные функции кода:
- lcd.setCursor() — установка позиции курсора на дисплее;
- lcd.print() — вывод текста на экран;
- digitalWrite() — управление светодиодами;
- Serial.println() — вывод сообщений в Serial Monitor;
- lcd.clear() — очистка дисплея перед новым обновлением текста.
Такой подход позволяет гибко адаптировать проект под разные сценарии мониторинга и типы датчиков.
Arduino-скетч
#include <LiquidCrystal.h>
// LCD pins declarations
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
// Pins in use
int Gas = 9;
int redLed = 7; // присутствие газа
int greenLed = 6; // нормальный режим, газа нет
int alarm = 8; // сигнализация при газе
void setup() {
Serial.begin(9600);
// Настройка пинов
pinMode(Gas, INPUT);
pinMode(redLed, OUTPUT);
pinMode(greenLed, OUTPUT);
pinMode(alarm, OUTPUT);
// Инициализация LCD
lcd.begin(16, 2);
lcd.setCursor(0, 0);
lcd.print("Gas Sensor Ready");
delay(1500);
lcd.clear();
}
void loop() {
bool gasDetected = digitalRead(Gas) == HIGH;
if (gasDetected) {
lcd.setCursor(0, 0);
lcd.print("ALERT: Gas!");
lcd.setCursor(0, 1);
lcd.print("Evacuate Area!");
Serial.println("ALERT: Gas detected! Take precautions!");
digitalWrite(redLed, HIGH);
digitalWrite(greenLed, LOW);
digitalWrite(alarm, HIGH);
} else {
lcd.setCursor(0, 0);
lcd.print("Gas level normal");
lcd.setCursor(0, 1);
lcd.print("Safe to breathe");
Serial.println("Gas level normal. Environment safe.");
digitalWrite(redLed, LOW);
digitalWrite(greenLed, HIGH);
digitalWrite(alarm, LOW);
}
delay(1000); // обновляем раз в секунду
lcd.clear();
}
Работа проекта в Proteus
В симуляции Proteus газовый датчик и светодиоды отображают текущее состояние системы. Сообщения на ЖК-дисплее меняются в зависимости от показаний датчика.
Arduino к компьютеру подключать не требуется — вся работа выполняется внутри симулятора.
Запуск проекта в Proteus
- распакуйте архив с проектом, в котором есть две папки:
- Gas Sensor Library for Proteus — содержит необходимые библиотеки;
- GAS-Sensor-MQ-2 — содержит рабочий файл проекта.
- Откройте запускающий файл Gas-Sensor MQ-2.pdsprj, который находится в папке GAS-Sensor-MQ-2;
- Проверьте путь к файлу .hex в свойствах Arduino;
- Нажмите Run Simulation;
- Наблюдайте за показаниями датчика, светодиодами и сообщениями на ЖК-дисплее.
Если что-то не работает
Если возникают проблемы с запуском проекта или непонятен принцип работы, рекомендуется пройти базовый урок по Proteus.
Подробно разобран первый проект в Proteus:
Первый проект в Proteus — мигание светодиода