Уроки

Урок по созданию детектора газа на Ардуино

Нет комментариев

Урок по созданию на Ардуино детектора газа с индикатором, который питается от USB и отображает количество обнаруженного газа на дисплее.

Шаг 1. Комплектующие и инструменты

В целом стоимость проекта будет варьироваться в зависимости от качества деталей, которые вы хотите использовать. Но, к счастью, большинство комплектующих могут быть легко использованы для других проектов.

Первое, что вам нужно сделать, это собрать необходимые детали для нашего детектора газа Ардуино. Обычно, первым делом мы подбираем нужную электронику.

Инструменты:

  1. пистолет для горячего клея
  2. острый нож
  3. металлическая линейка
  4. некоторые инструменты рисования (в зависимости от ваших личных предпочтений)

Комплектующие:

  1. Arduino Nano
  2. USB-кабель
  3. Датчик газа MQ-4
  4. Дисплей (семисегментный индикатор)
  5. Картон или другой материал для корпуса (вы можете использовать прилагаемый чертеж и распечатать его на толстой бумаге) или заказать трехмерный

Шаг 2. Делаем корпус

Самый простой вариант сделать корпус - использовать картон. Можно воспользоваться рисунком ниже для создания корпуса.

Шаг 3. Монтаж деталей детектора газа

На этом шаге добавляем детали в корпус детектора газа. На рисунках показано, как монтировать детали с помощью пистолета для горячего клея.

Как можно заметить были использованы небольшие кусочки картона, склеенные для прокладок и монтажных опор. Это особенно важно, если вы хотите, чтобы кнопка сброса на ардуине работала правильно. Обязательно надежно закрепляйте детали на месте, но все равно держите электронные контакты и кнопки чистыми.

Шаг 4. Подключение

Как только у вас появятся все детали, вы можете их подключить. Подключите ардуино к датчику и дисплею в соответствии с приведенными ниже фото.

Подключение датчика (сенсора)

Подключение дисплея

Подключение делаем следующим образом:

7-сегментный дисплей Ардуино цифр. выходы
a 2
b 3
c 4
d 6
e 7
f 9
g 8
DP 5

Шаг 5. Загрузка кода

Ардуино детектор газа нужно запрограммировать, это очень легко сделать. Мы используем программное обеспечение, представленное на официальном сайте Ардуино - www.arduino.cc.

Возьмите код или файл ниже и загрузите его в arduino.

int sensorValue;
int num;


      void setup()
      {
          pinMode(2, OUTPUT);
          pinMode(3, OUTPUT);
          pinMode(4, OUTPUT);
          pinMode(5, OUTPUT);
          pinMode(6, OUTPUT);
          pinMode(7, OUTPUT);
          pinMode(8, OUTPUT);
          pinMode(9, OUTPUT);
          Serial.begin(9600);      // sets the serial port to 9600
       }


      void loop()
      {
        sensorValue = analogRead(0);       // read analog input pin 0
        
              if (sensorValue < 400)      // if there is little or no gas detected display blinking lights
              {
                
                  digitalWrite(2, LOW);
                  digitalWrite(3, LOW);
                  digitalWrite(4, LOW);
                  digitalWrite(6, LOW);
                  digitalWrite(7, LOW);
                  digitalWrite(8, LOW);
                  digitalWrite(9, LOW);
                
              digitalWrite(3, LOW);
              digitalWrite(8, HIGH);
              delay(500);
              digitalWrite(8, LOW);
              digitalWrite(6, HIGH);
              delay(500);
              digitalWrite(6, LOW);
              digitalWrite(3, HIGH);
              delay(500);
              }
              else
              {
                  if (sensorValue >= 900)               // the value of the gas measurement between 400 and 900 is displayed (this part refers to the cases below) 
                  {num = 9;}
                  else if (sensorValue >= 800)
                  {num = 8;}
                  else if (sensorValue >= 700)
                  {num = 7;}
                  else if (sensorValue >= 600)
                  {num = 6;}
                  else if (sensorValue >= 500)
                  {num = 5;}
                  else if (sensorValue >= 400)
                  {num = 4;} 
              }
              
              if (sensorValue > 700)                // if there is a lot of gas detected, the dot on the led display will blink
              {
              digitalWrite(5, HIGH);
              delay(100);
              digitalWrite(5, LOW);
              delay(100);
              }  
        
        
                  switch (num)
                  {
                  case 9:
                  digitalWrite(2, LOW);
                  digitalWrite(3, HIGH);
                  digitalWrite(4, HIGH);
                  digitalWrite(6, HIGH);
                  digitalWrite(7, HIGH);
                  digitalWrite(8, HIGH);
                  digitalWrite(9, HIGH);
                  break;
                  case 8:
                  digitalWrite(2, HIGH);
                  digitalWrite(3, HIGH);
                  digitalWrite(4, HIGH);
                  digitalWrite(6, HIGH);
                  digitalWrite(7, HIGH);
                  digitalWrite(8, HIGH);
                  digitalWrite(9, HIGH);
                  break;
                  case 7:
                  digitalWrite(2, LOW);
                  digitalWrite(3, LOW);
                  digitalWrite(4, HIGH);
                  digitalWrite(6, LOW);
                  digitalWrite(7, HIGH);
                  digitalWrite(8, HIGH);
                  digitalWrite(9, HIGH);
                  break;
                  case 6:
                  digitalWrite(2, HIGH);
                  digitalWrite(3, HIGH);
                  digitalWrite(4, HIGH);
                  digitalWrite(6, HIGH);
                  digitalWrite(7, HIGH);
                  digitalWrite(8, HIGH);
                  digitalWrite(9, LOW);
                  break;
                  case 5:
                  digitalWrite(2, LOW);
                  digitalWrite(3, HIGH);
                  digitalWrite(4, HIGH);
                  digitalWrite(6, HIGH);
                  digitalWrite(7, HIGH);
                  digitalWrite(8, HIGH);
                  digitalWrite(9, LOW);
                  break;
                  case 4:
                  digitalWrite(2, LOW);
                  digitalWrite(3, LOW);
                  digitalWrite(4, HIGH);
                  digitalWrite(6, HIGH);
                  digitalWrite(7, HIGH);
                  digitalWrite(8, LOW);
                  digitalWrite(9, HIGH);
                  break;
                  }
        
        
      }

Шаг 6. Тестирование

Теперь вы можете проверить свой детектор газа! Финальный вариант работы нашего детектора газа Ардуино можно увидеть на видео ниже:

Измените пороговые значения в коде, если вы не удовлетворены реакцией датчика.

Поделиться
6 июня 2018 в 13:56
Обновлено 16 марта 2020 в 21:03 (редакция)
Опубликовано:
Уроки,

Добавить комментарий

Ваш E-mail не будет никому виден. Обязательные поля отмечены *