Навигация
Рекомендуемые статьи
Статистика
94617 (+1)
Всего пользователей
Всего пользователей
1
Сейчас на сайте
Сейчас на сайте
85 (+0)
Всего статей
Всего статей
1632 (+0)
Всего комментариев
Всего комментариев
Реклама
В данном 3 уроке по ардуино, мы будем учиться работать с аналоговым датчиком газа типа MQ-6, и сделаем сигнализацию которая будет иметь световую и звуковую сигнализацию при утечке газа, датчик MQ-6 чувствителен к газу ПРОПАНУ тоесть к сжиженному газу, который используется в баллонах под давлением 16 атмосфер, им заправляют зажигалки, а также его используют как топливо в автомобилях.
Есть готовые шилды под ардуино уже с установленным датчиком и резистором, у меня его нет есть просто датчик купленный в магазине радиодеталей.
Для подключения датчика к ардуино нужно припаять к его выводам несколько проводов согласно схемы.
И так с датчика у нас будет выходить 3 провода, контакт VCC мы подключим к контакту +5V ардуино, контакт GND к контакту GND, а контакт OUT к аналоговому входу 0 на плате.
Также нам потребуется 3 светодиода, красный зеленый и жёлтый, и 3 резистора по 680 Ом каждый и небольшой динамик.
Подключаем их к плате следующим образом.
Теперь напишем небольшую программу для работы нашего сигнализатора. Работать будет она так, при включении несколько раз будут поочередно загораться зеленый желтый и красный светодиоды, так будет длиться 20 секунд, это необходимо для прогрева датчика. Потом загорится зеленый светодиод, означающий что уровень газа в воздухе в норме, как только уровень газа в воздухе будет повышаться загорится желтый светодиод и прозвучит звуковой сигнал, если уровень газа поднимется еще выше то загорится красный светодиод и звуковой сигнал изменит тональность.
Пример кода с комментариями
/*
Скетч для работы с сенсором газа
*/
int sensorPin = 0; // Пин, на котором у нас висит сенсор газа аналоговый вход 0
int redled = 2; // Пин с красным светодиодом цифровой выход 2
int yelowled = 3; // Пин с желтым светодиодом цифровой выход 3
int greenled = 4; // Пин с зеленым светодиодом цифровой выход 4
int gas = 0; // Переменная для хранения значения газового сенсора
void setup() {
pinMode(greenled, OUTPUT); // Объявляем 2,3 и 4 пины, как выходы для свтодиодов
pinMode(yelowled, OUTPUT);
pinMode(redled, OUTPUT);
Serial.begin(9600); // Инициализируем серийный порт будем слать в него данные измерения
/*
При включении мигаем зеленым, желтым, красным светодиодом
с задержкой в 1 секунду для прогрева датчика, чтоб получить
стабильные показания вся процедура занимает 20 секунд.
Не самое оптимальное решение можно написать по проще зато так понятнее
*/
digitalWrite(greenled, HIGH);
delay(1000);
digitalWrite(greenled, LOW);
delay(1000);
digitalWrite(yelowled, HIGH);
delay(1000);
digitalWrite(yelowled, LOW);
delay(1000);
digitalWrite(redled, HIGH);
delay(1000);
digitalWrite(redled, LOW);
delay(1000);
digitalWrite(greenled, HIGH);
delay(1000);
digitalWrite(greenled, LOW);
delay(1000);
digitalWrite(yelowled, HIGH);
delay(1000);
digitalWrite(yelowled, LOW);
delay(1000);
digitalWrite(redled, HIGH);
delay(1000);
digitalWrite(redled, LOW);
delay(1000);
digitalWrite(greenled, HIGH);
delay(1000);
digitalWrite(greenled, LOW);
delay(1000);
digitalWrite(yelowled, HIGH);
delay(1000);
digitalWrite(yelowled, LOW);
delay(1000);
digitalWrite(redled, HIGH);
delay(1000);
digitalWrite(redled, LOW);
delay(1000);
digitalWrite(greenled, HIGH);
delay(1000);
digitalWrite(greenled, LOW);
delay(1000);
}
void loop() {
gas = analogRead(sensorPin); // Получаем значения от датчика газа
/*
Далее работаем с данными из переменной gas, если ее значение более или равно 530,
то включаем зеленый светодиод, жолтый и красный светодиоды гасим
*/
if (gas <= 530)
{
digitalWrite(greenled, HIGH);
digitalWrite(yelowled, LOW);
digitalWrite(redled, LOW);
}
/*
Если значение переменной gas больше 600 но меньше или равно 650, то включаем желтый светодиод и
проигрываем сигнал на 10 пине, зеленый и красный при етом гасим.
*/
else if (gas > 600, gas <= 650)
{
tone(10, 900, 200);
digitalWrite(greenled, LOW);
digitalWrite(yelowled, HIGH);
digitalWrite(redled, LOW);
}
/*
Если значение переменной gas больше или равняеться 650, проигрываем тоновый сигнал на 10 пине,
гасим зеленый и желтый светодиод, зажигаем красный.
*/
else if (gas >= 650)
{
tone(10, 740, 200);
digitalWrite(greenled, LOW);
digitalWrite(yelowled, LOW);
digitalWrite(redled, HIGH);
}
Serial.println(gas); // Пишем в серийный порт
delay(400); // Повторяем void loop процедуру каждые 0,4 секунды
}
А вот и видео работы сенсора газа
Скачать скетч для ардуино
Купить набор сенсоров газа 9 штук на все случаи жизни в Китае Набор сенсоров газа 9 шт.
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.