Тема: Детектор утечки газа на Arduino
Выполнила: Хайбулина Дильназ
Группа: ВТ(ПИ)-20-3
Электронный адрес: d.khaibulina@aues.kz
Содержание - Введение
- Схема в TinkerCad
- Список компонентов
- Скетч
- Результат работы
- Заключение
- Список литературы
Введение Сжиженный нефтяной газ (LPG – liquified petroleum gas) используется сейчас в большинстве домохозяйств, однако его утечка может привести к тяжелым последствиям. Для предотвращения и обнаружения утечек этого газа разработано достаточно большое число разнообразных устройств. В данной работе мы разработаем детектор обнаружения утечки данного газа на основе платы Arduino. При обнаружении утечки газа детектор будет выдавать сигнал тревоги в виде звукового сигнала. Схема в TinkerCad
Рисунок 1 – Схема в TinkerCad
Список компонентов
Имя
|
Количество
|
Компонент
|
GAS1
|
1
|
Датчик газа
|
U1
|
1
|
Arduino Uno R3
|
R1 R3 R4
|
3
|
1 kΩ Резистор
|
R2
|
1
|
4.7 kΩ Резистор
|
D1
|
1
|
Красный Светодиод
|
D2
|
1
|
Зеленый Светодиод
|
U3
|
1
|
На базе PCF8574, 39 ЖК-экран 16 x 2 (I2C)
|
PIEZO1
|
1
|
Пьезоэлемент
| Скетч
#include //Подключение библиотеки
LiquidCrystal_I2C lcd(0x27,16,2);//Указываем I2C адрес,
//а также параметры экрана (в случае LCD 1602 - 2 строки по 16 символов в каждой)
int redled = 2;//пин подключения красного светодиода 2
int greenled = 3;//пин подключения зеленого светодиода 3
int buzzer = 4;//пин подключения пьезоэлемента 4
int sensor = A0;//пин подключения датчика газа А0
int high_gas_concentration = 400;//переменная для хранения порогового значения
//высокой концентрации горючего газа
void setup()
{
pinMode(redled, OUTPUT);//конфигурация вывода 2 на выход
pinMode(greenled,OUTPUT);//конфигурация вывода 3 на выход
pinMode(buzzer,OUTPUT);//конфигурация вывода 4 на выход
pinMode(sensor,INPUT);//конфигурация вывода А0 на вход
Serial.begin(9600);//Установка скорости обмена данными
lcd.init();//Инициализация дисплея
lcd.backlight();//Включение подсветки дисплея
lcd.setCursor(0,0);//1 столбец, 1 строка
lcd.print("LPG Gas Detector");//вывод "LPG Gas Detector" в первую строку
delay(2000);//задержка 2 секунды
}
Скетч
void loop(){
int analogValue = analogRead(sensor);//чтение аналогового входа А0
Serial.println(analogValue);//вывод аналогового представления концентрации горючего газа
//в воздухе на монитор последовательного порта
if(analogValue>high_gas_concentration){//Если значение датчика превысит 400
digitalWrite(redled,HIGH);//включение красного светодиода
digitalWrite(greenled,LOW);//выключение зеленого светодиода
tone(buzzer,1000,10000);//запуск звукового оповещения в 1000 Гц на 4 пине на 10 секунд
lcd.clear();//очистка дисплея
lcd.setCursor(0,0);//1 столбец, 1 строка
lcd.print("ALERT");//вывод "ALERT" в первую строку
delay(1000);//задержка 1 секунда
lcd.clear();//очистка дисплея
lcd.setCursor(0,1);//1 столбец, 2 строка
lcd.print("EVACUATE");//вывод "EVACUATE" во вторую строку
delay(1000);//задержка 1 секунда
}
else {//иначе
digitalWrite(greenled,HIGH);//включение зеленого светодиода
digitalWrite(redled,LOW);//выключение красного светодиода
noTone(buzzer);//отключение звука
lcd.clear();//очистка дисплея
lcd.setCursor(0,0);//1 столбец, 1 строка
lcd.print("SAFE");//вывод "SAFE" в первую строку
lcd.setCursor(0,1);//1 столбец, 2 строка
lcd.print("ALL CLEAR");//вывод "ALL CLEAR" во вторую строку
delay(1500);//задержка 1,5 секунды
}
}
Достарыңызбен бөлісу: |