Full-Chip.net

Все об электронике, секреты ремонта
сборки компьютеров и периферии !!!

» » Arduino урок 3 подключение сенсора газа MQ-6, и иных с серии MQ, сигнализация при утечке газа
Статистика
7095 (+1)
Всего пользователей
1
Сейчас на сайте
83 (+0)
Всего статей
983 (+2)
Всего комментариев
Реклама


Arduino урок 3 подключение сенсора газа MQ-6, и иных с серии MQ, сигнализация при утечке газа

В данном 3 уроке по ардуино, мы будем учиться работать с аналоговым датчиком газа типа MQ-6, и сделаем сигнализацию которая будет иметь световую и звуковую сигнализацию при утечке газа, датчик MQ-6 чувствителен к газу ПРОПАНУ тоесть к сжиженному газу, который используется в баллонах под давлением 16 атмосфер, им заправляют зажигалки, а также его используют как топливо в автомобилях.
Arduino урок 3 подключение сенсора газа MQ-6, и иных с серии MQ, сигнализация при утечке газа

Есть готовые шилды под ардуино уже с установленным датчиком и резистором, у меня его нет есть просто датчик купленный в магазине радиодеталей.
Arduino урок 3 подключение сенсора газа MQ-6, и иных с серии MQ, сигнализация при утечке газа

Для подключения датчика к ардуино нужно припаять к его выводам несколько проводов согласно схемы.
Arduino урок 3 подключение сенсора газа MQ-6, и иных с серии MQ, сигнализация при утечке газа

Резистор я использовал на 10 Ком.
И так с датчика у нас будет выходить 3 провода, контакт VCC мы подключим к контакту +5V ардуино, контакт GND к контакту GND, а контакт OUT к аналоговому входу 0 на плате.
Также нам потребуется 3 светодиода, красный зеленый и жёлтый, и 3 резистора по 680 Ом каждый и небольшой динамик.
Подключаем их к плате следующим образом.
Arduino урок 3 подключение сенсора газа MQ-6, и иных с серии MQ, сигнализация при утечке газа

Теперь напишем небольшую программу для работы нашего сигнализатора. Работать будет она так, при включении несколько раз будут поочередно загораться зеленый желтый и красный светодиоды, так будет длиться 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 секунды
}

А вот и видео работы сенсора газа



Скачать скетч для ардуино sketch_nov01b.rar [1,27 Kb] (cкачиваний: 168)
K:0
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Добавление комментария

Имя:*
E-Mail:
  • bowtiesmilelaughingblushsmileyrelaxedsmirk
    heart_eyeskissing_heartkissing_closed_eyesflushedrelievedsatisfiedgrin
    winkstuck_out_tongue_winking_eyestuck_out_tongue_closed_eyesgrinningkissingstuck_out_tonguesleeping
    worriedfrowninganguishedopen_mouthgrimacingconfusedhushed
    expressionlessunamusedsweat_smilesweatdisappointed_relievedwearypensive
    disappointedconfoundedfearfulcold_sweatperseverecrysob
    joyastonishedscreamtired_faceangryragetriumph
    sleepyyummasksunglassesdizzy_faceimpsmiling_imp
    neutral_faceno_mouthinnocent
Вопрос:
Сколько голов у двух голового мутанта? (ответ запишите числом)
Ответ:*
Введите код: *
Кликните на изображение чтобы обновить код, если он неразборчив