- Шаг 7. что дальше?
- Что такое датчик газа mq-2?
- Tinkercad урок №7 — подключение датчика газа #tinkercad
- Внутренняя структура датчика газа mq-2
- Как подключить датчик mq2 к ардуино
- Как подключить датчик газа к arduino в tinkercad
- Как работает датчик газа?
- Калибровка модуля датчика газа mq-2
- Код arduino
- Обзор аппаратного обеспечения – модуль датчика газа mq-2
- Подключение датчика газа mq2 ардуино
- Подключение модуля датчика газа mq-2 к arduino uno
- Пояснения к коду:
- Принцип работы
- Распиновка модуля датчика газа mq-2
- Урок по созданию детектора газа на ардуино
- Характеристики
- Шаг 1. комплектующие и инструменты
- Шаг 1. создаем светодиодную цепь
- Шаг 2. делаем корпус
- Шаг 2. добавляем датчик температуры
- Шаг 3. монтаж деталей детектора газа
- Шаг 3. наблюдение за аналоговым входом
- Шаг 4. подключение
- Шаг 4. блоки кода
- Шаг 5. загрузка кода
- Шаг 5. объяснение кода arduino
- Шаг 6. используем проект
- Шаг 6. тестирование
Шаг 7. что дальше?
Вы использовали analogRead() и последовательный монитор для отслеживания изменений внутри вашего Arduino и создания простого дисплея температуры со светодиодами.
Вы сможете использовать эту технику с другими типами датчиков в будущих проектах! Один из способов расширить этот проект – создать способ для двух человек сравнить температуру пальцев, но в таком случае вам нужны будут два датчика.
Что такое датчик газа mq-2?
MQ-2 является одним из наиболее часто используемых датчиков газа из серии датчиков MQ. Это датчик газа типа металл-оксид-полупроводник (МОП, MOS), также известный как химрезистор (химический резистор), поскольку обнаружение основано на изменении сопротивления чувствительного материала, когда газ вступает в контакт с этим материалом. Используя простую цепь делителя напряжения, можно измерить концентрацию газа.

Датчик газа MQ-2 работает при постоянном напряжении 5 В и потребляет около 800 мВт. Он может обнаруживать концентрации LPG (сжиженного нефтяного газа), дыма, алкоголя, пропана, водорода, метана и угарного газа от 200 до 10000 ppm (миллионных долей).
Чему равен 1 ppm?
При измерении газов, таких как углекислый газ, кислород или метан, термин концентрация используется для описания количества газа по объему в воздухе. Двумя наиболее распространенными единицами измерения являются миллионная доля (ppm) и процентная концентрация.
Миллионная доля (сокращенно ppm) – это соотношение одного газа к другому. Например, 1000 ppm CO означает, что если бы вы могли сосчитать миллион молекул газа, 1000 из них были бы моноокисью углерода, а 999 000 молекул – какими-то другими газами.
Вот полный список технических характеристик:
| Рабочее напряжение | 5 В |
| Сопротивление нагрузки | 20 кОм |
| Сопротивление нагревателя | 33 Ом ± 5% |
| Потребляемая мощность | <800 мВт |
| Сопротивление чувствительности | 10 кОм – 60 кОм |
| Измерение концентрации | 200 – 10000 ppm |
| Время разогрева | более 24 часов |
Для более подробной информации, пожалуйста, обратитесь техническому описанию.
Совет
Датчик чувствителен к нескольким газам – но не может сказать, какой из них он обнаружил! Это нормально; большинство датчиков газа такие. Таким образом, он лучше всего подходит для измерения изменений концентрации известного газа, а не для определения концентрация какого газа изменилась.
Tinkercad урок №7 — подключение датчика газа #tinkercad
Симулятор светофора в Tinkercad Circuits ArduinoПодробнее
Tinkercad Урок №22 — Работа с платой Micro:bit в Tinkercad #TinkercadПодробнее
Tinkercad Урок №21 — Подключение датчика усилия к Arduino UNO #TinkercadПодробнее
Tinkercad Урок №20 — Подключение датчика изгиба к Arduino UNO #TinkercadПодробнее
Tinkercad Урок №19 — Подключение фотодиода к Arduino UNO #TinkercadПодробнее
Уроки по 3D-моделированию. Лампочка в TinkerCADПодробнее
Tinkercad, arduino, ультразвуковой датчик, 8 урокПодробнее
Tinkercad Урок №17 — Создание вольтамперметра в Tinkercad #TinkercadПодробнее
Tinkercad Урок №16 — Подключение датчика наклона SW 200D к Arduino UNO #TinkercadПодробнее
Как новичку работать с Arduino через Tinkercad? Уроки программирования Ардуино.Подробнее
Tinkercad Урок №15 — Подключение H-мост к Arduino UNO #TinkercadПодробнее
Tinkercad Урок №14 — Подключение пироэлектрического датчика к Arduino UNO #TinkercadПодробнее
Tinkercad Урок №13 — Подключение семисегментного индикатора к Arduino UNO #TinkercadПодробнее
Tinkercad Урок №12 — Подключение Buzzer к Arduino UNO #TinkercadПодробнее
Tinkercad Урок №11 — Создание калькулятора при помощи Tinkercad на платформе Arduino #TinkercadПодробнее
Tinkercad Урок №10 — Создание игры при помощи Tinkercad на платформе Arduino #TinkercadПодробнее
Tinkercad Урок №9 — Управление включения светодиодов при помощи ИК-пульта #TinkercadПодробнее
Tinkercad Урок №8 — Подключение экрана 1602 к Arduino Uno #TinkercadПодробнее
Источник
Внутренняя структура датчика газа mq-2
Датчик фактически заключен в два слоя тонкой сетки из нержавеющей стали, которая называется «антивзрывной сеткой» (anti-explosion network). Она гарантирует, что нагревательный элемент внутри датчика не вызовет взрыва, когда мы ищем легковоспламеняющиеся газы.

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

Так выглядит датчик при удалении внешней сетки. Звездообразная структура образована из чувствительного элемента и шести соединительных ножек, которые выходят за пределы бакелитового основания. Из шести два вывода (H) отвечают за нагрев чувствительного элемента и соединены через катушку из никель-хромовой проволоки, хорошо известного проводящего сплава.
Остальные четыре вывода (A и B), отвечающие за выходные сигналы, подключены с использованием платиновых проводов. Эти провода соединены с корпусом чувствительного элемента и передают небольшие изменения тока, который проходит через чувствительный элемент.

Трубчатый чувствительный элемент изготовлен из керамики на основе оксида алюминия (Al2O3) и покрыт диоксидом олова (SnO2). Диоксид олова здесь является наиболее важным материалом, будучи чувствительным к горючим газам.

Итак, никель-хромовая катушка и керамика на основе оксида алюминия образуют систему подогрева; в то время как платиновые проволоки и покрытие из диоксида олова образуют сенсорную систему.
Как подключить датчик mq2 к ардуино
Для этого занятия нам потребуется:
- плата Arduino Uno / Arduino Nano / Arduino Mega;
- датчик газа MQ2;
- макетная плата;
- светодиод;
- резистор 220 Ом;
- провода «папа-папа», «папа-мама».
Схема подключения датчика MQ2 к Ардуино Уно
| MQ2 | Arduino Uno | Arduino Nano | Arduino Mega |
| GND | GND | GND | GND |
| VCC | 5V | 5V | 5V |
| OUT | A1 | A1 | A1 |
Как подключить датчик газа к arduino в tinkercad
Tinkercad Урок №21 — Подключение датчика усилия к Arduino UNO #TinkercadПодробнее
Tinkercad Урок №20 — Подключение датчика изгиба к Arduino UNO #TinkercadПодробнее
Tinkercad Урок №19 — Подключение фотодиода к Arduino UNO #TinkercadПодробнее
Датчик температури TMP36. Arduino. Tinkercad.Подробнее
Tinkercad, arduino, ультразвуковой датчик, 8 урокПодробнее
Tinkercad Урок №16 — Подключение датчика наклона SW 200D к Arduino UNO #TinkercadПодробнее
Tinkercad Урок №15 — Подключение H-мост к Arduino UNO #TinkercadПодробнее
Tinkercad Урок №14 — Подключение пироэлектрического датчика к Arduino UNO #TinkercadПодробнее
Tinkercad Урок №13 — Подключение семисегментного индикатора к Arduino UNO #TinkercadПодробнее
Tinkercad Урок №11 — Создание калькулятора при помощи Tinkercad на платформе Arduino #TinkercadПодробнее
Tinkercad Урок №8 — Подключение экрана 1602 к Arduino Uno #TinkercadПодробнее
Tinkercad Урок №7 — Подключение датчика газа #TinkercadПодробнее
Tinkercad Урок №6 — Подключение реле #TinkercadПодробнее
Tinkercad Урок №4 — Подключение Arduino Uno к ультразвуковому датчику #TinkercadПодробнее
Как работает датчик газа?
Когда диоксид олова (частицы полупроводника) нагревается на воздухе до высокой температуры, на его поверхности адсорбируется кислород. В чистом воздухе донорные электроны диоксида олова притягиваются к кислороду, который адсорбируется на поверхности чувствительного материала. Это предотвращает протекание электрического тока.
В присутствии восстановительных газов поверхностная плотность адсорбированного кислорода уменьшается, так как он реагирует с восстановительными газами. Из-за чего электроны высвобождаются в диоксид олова, что позволяет току свободно течь через датчик.
Калибровка модуля датчика газа mq-2
Чтобы откалибровать датчик газа, вы можете держать датчик газа рядом с дымом/газом, который вы хотите обнаруживать, и поворачивать потенциометр, пока на модуле не начнет светиться красный светодиод. Поворачивайте потенциометр по часовой стрелке, чтобы увеличить чувствительность, или против часовой стрелки, чтобы уменьшить чувствительность.

Компаратор на модуле постоянно проверяет, достиг ли аналоговый выходной сигнал (A0) порогового значения, установленного потенциометром. Когда он пересекает пороговое значение, цифровой выход (D0) выдаст высокий логический уровень, и загорится светодиодный индикатор.
Эта настройка очень полезна, когда вам нужно при достижении определенного порога запустить какое-то действие. Например, когда концентрация дыма пересекает пороговое значение, вы можете включить или выключить реле или дать команду включить вентиляцию или спринклерную систему пожаротушения.
Код arduino
Код очень прост, и, в основном, он просто читает аналоговое напряжение на выводе A0. При обнаружении дыма он выводит сообщение на мониторе последовательного порта. Посмотрите скетч, прежде чем мы начнем его подробный разбор.
#define MQ2pin (0)
float sensorValue; // переменная для хранения значения датчика
void setup()
{ Serial.begin(9600); // настроить последовательный порт на скорость 9600 Serial.println("Gas sensor warming up!"); delay(20000); // дать MQ-2 время для прогрева
}
void loop()
{ sensorValue = analogRead(MQ2pin); // прочитать аналоговый вход 0 Serial.print("Sensor Value: "); Serial.print(sensorValue); if(sensorValue > 300) { Serial.print(" | Smoke detected!"); } Serial.println(""); delay(2000); // подождать 2 сек до следующего чтения
}Скетч начинается с определения вывода Arduino, к которому подключен аналоговый вывод датчика газа MQ-2. Переменная под названием sensorValue определена для хранения значения датчика.
#define MQ2pin (0)
float sensorValue; // переменная для хранения значения датчикаВ функции setup() мы инициализируем последовательную связь с ПК и ждем 20 секунд, чтобы дать датчику прогреться.
Serial.begin(9600); // настроить последовательный порт на скорость 9600
Serial.println("Gas sensor warming up!");
delay(20000); // дать MQ-6 время для прогреваВ функции loop() значение датчика считывается функцией analogRead() и отображается в мониторе последовательного порта.
sensorValue = analogRead(MQ2pin); // прочитать аналоговый вход 0
Serial.print("Sensor Value: ");
Serial.print(sensorValue);Когда концентрация газа достаточно высока, датчик обычно выдает значение, превышающее 300. Мы можем отслеживать это значение с помощью оператора if. И когда значение датчика превысит 300, мы отобразим сообщение «Smoke detected!» (Обнаружен дым!).
if(sensorValue > 300)
{ Serial.print(" | Smoke detected!");
}Вывод в мониторе последовательного порта выглядит так:

Обзор аппаратного обеспечения – модуль датчика газа mq-2
Поскольку сам датчик газа MQ-2 не совместим с макетными платами, мы рекомендуем для тестов использовать этот удобный небольшой модуль. Он очень прост в использовании и имеет два разных выхода. Он не только выдает двоичное представление о наличии горючих газов, но также выдает аналоговое представление об их концентрации в воздухе.

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

Аналоговый сигнал от датчика газа MQ-2 поступает на высокоточный компаратор LM393 (впаян в нижней стороне модуля) для оцифровки. Рядом с компаратором имеется небольшой потенциометр, который можно покрутить, чтобы отрегулировать чувствительность датчика. Вы можете использовать его для регулировки концентрации газа, при которой датчик его обнаруживает.
Подключение датчика газа mq2 ардуино
Датчик MQ-2 Ардуино позволяет выявлять в воздухе минимальную концентрацию водорода и углеводородных газов (пропан, метан, бутан). Применяют сенсоры MQ-2 в проектах умного дома для своевременного обнаружения газа или дыма. Сенсор относится к семейству датчиков MQ, которые отличаются низкой стоимостью, простотой использования и легкостью подключения к микроконтроллеру Ардуино.
Подключение модуля датчика газа mq-2 к arduino uno
Теперь, когда у нас есть полное представление о том, как работает датчик газа MQ-2, мы можем подключить его к нашей плате Arduino!
Подключить модуль датчика газа MQ-2 к Arduino довольно просто. Начните с установки датчика на макетную плату. Подключите вывод VCC к выводу 5V на Arduino, а вывод GND – к выводу Ground на Arduino.
Подключите выходной вывод D0 на модуле к цифровому выводу 8 на Arduino, а выходной вывод A0 на модуле – к аналоговому выводу 0 на Arduino.
Когда вы закончите, у вас должно получиться что-то похожее на рисунок ниже.

Итак, теперь, когда мы подключили наш датчик газа, пришло время написать код и проверить его.
Пояснения к коду:
- в этом примере необходимо будет откалибровать датчик, т.е. настроить включение светодиода при заданном пороге концентрации газа. При этом датчик не распознает газы, поэтому лучше использовать библиотеки для MQ2.
Датчик широкого спектра газов MQ-2 и Ардуино
Для следующего примера следует переключить пин A1 на логический порт сенсора газа (цифровой сигнал). Если вы используете датчик широкого спектра газов MQ-2 от компании Амперка, то подключите его к микроконтроллеру, согласно схеме. При этом у сенсора должен быть включен нагрев (замкнута перемычка на плате датчика). После подключения датчика к Arduino, загрузите следующую программу в плату.
Принцип работы
Принцип работы датчика основан на чувствительном детекторе из смеси оксидов алюминия и олова, в котором за счет нагревания происходит химическая реакция. Именно поэтому в процессе работы газоанализатор существенно нагревается, так что не стоит пугаться.
Концентрация газа измеряется в ppm. Она расшифровывается, как parts per million (частей на миллион). Таким образом 1ppm соответствует концентрации в 0,0001%. Что бы получить точное значение измеренной концентрации газа ppm, необходимо выполнить сложное нелинейное преобразование напряжения на аналоговом выходе датчика по таблицам преобразования из документации на датчик, с учетом температуры окружающего воздуха.
С помощью потенциометра можно изменять порог чувствительности цифрового выхода датчика. Имейте ввиду что для разных газов порог чувствительности будет не один и тот же.
Индикаторы, расположенные на датчике, уведомляют нас подключенном питании и превышении порога чувствительности цифрового выхода.
Распиновка модуля датчика газа mq-2
Теперь давайте посмотрим на распиновку.

- VCC обеспечивает питание для модуля. Вы можете подключить его к выходу 5 В вашей платы Arduino.
- GND – вывод земли, должен быть подключен к выводу GND на Arduino.
- D0 обеспечивает цифровое представление о наличии горючих газов.
- A0 обеспечивает аналоговое выходное напряжение, пропорциональное концентрации дыма/газа.
Урок по созданию детектора газа на ардуино
Урок по созданию на Ардуино детектора газа с индикатором, который питается от USB и отображает количество обнаруженного газа на дисплее.
Характеристики
- Напряжение питания: 5В;
- Потребляемый ток (ток нагревателя): 180мА;
- Диапазон чувствительности 300-10000 ppm;
- Газ, для которого нормируется датчик: изобутан, 1000ppm;
- Время отклика: менее 10 с;
- Рабочая температура: от -10 до 50 °C;
- Рабочая влажность воздуха: не более 95% RH;
- Интерфейс: аналоговый и цифровой;
Шаг 1. комплектующие и инструменты
В целом стоимость проекта будет варьироваться в зависимости от качества деталей, которые вы хотите использовать. Но, к счастью, большинство комплектующих могут быть легко использованы для других проектов.
Первое, что вам нужно сделать, это собрать необходимые детали для нашего детектора газа Ардуино. Обычно, первым делом мы подбираем нужную электронику.
Инструменты:
- пистолет для горячего клея
- острый нож
- металлическая линейка
- некоторые инструменты рисования (в зависимости от ваших личных предпочтений)
Комплектующие:
- Arduino Nano
- USB-кабель
- Датчик газа MQ-4

- Дисплей (семисегментный индикатор)

- Картон или другой материал для корпуса (вы можете использовать прилагаемый чертеж и распечатать его на толстой бумаге) или заказать трехмерный
Шаг 1. создаем светодиодную цепь
Как вы могли узнать из уроков для начинающих, лучше всего начать с подключения вашего Arduino и макета к питанию и заземлению соответственно схеме в примере. Затем добавьте три красных светодиода к макету, как показано на рисунке. Это будет индикатор или индикаторная «гистограмма» проекта.
Перетащите Arduino Uno и макетную плату с панели компонентов на рабочую область рядом с существующей схемой.
Подключите проводами 5-вольтовые и заземляющие штыри Arduino к ( ) и (-) рельсам на макете. Вы можете изменить цвет проводов, если хотите. Также вы можете использовать раскрывающийся список, либо цифровые клавиши на клавиатуре.
Перетащите три светодиода на макет в строку E, отделив каждый двумя гнездами макета. Вы можете изменить цвет светодиода с помощью помощника, который появляется, когда вы нажимаете на каждый из них.
Используйте резистор 220 Ом для подключения катода каждого светодиода (левая нога) к рельсу заземления (черный) макета. В Tinkercad Circutis вы можете изменить значение резистора, выделив его и используя раскрывающееся меню в помощнике.
Подключите светодиодные аноды (правые, более длинные ножки) к цифровым контактам 4, 3 и 2 на Arduino. Светодиодный анод ( ) – это терминал, в который втекает ток.
Катод (-) является терминалом, из которого вытекает ток. Он соединяется с рельсом заземления.
Шаг 2. делаем корпус
Самый простой вариант сделать корпус — использовать картон. Можно воспользоваться рисунком ниже для создания корпуса.
Шаг 2. добавляем датчик температуры
Датчик температуры создает изменяющийся сигнал напряжения в зависимости от температуры, которую он определяет. Он имеет три контакта: один, который соединяется с землей, другой, который подключается к 5 вольтам, и третий, который выдает переменное напряжение на ваш Arduino, аналогичный аналоговому сигналу от потенциометра.
Существует несколько различных моделей датчиков температуры. Эта модель, TMP36, удобна, потому что ее выходное напряжение прямо пропорционально температуре в градусах Цельсия.
В редакторе схем найдите датчик температуры в компонентах.
Поместите датчик температуры (TMP36) на макет с закругленной частью, обращенной в сторону от Arduino, как показано на рисунке (это ориентация по умолчанию).
Поместите датчик температуры на макет в строку Е, как показано на рисунке.
Подключите датчик температуры так, чтобы левый контакт подключался к шине напряжения 5 В, центральный контакт соединяется с A0 на Arduino, а правый штырь соединяется с шиной GND.
Шаг 3. монтаж деталей детектора газа
На этом шаге добавляем детали в корпус детектора газа. На рисунках показано, как монтировать детали с помощью пистолета для горячего клея.
Как можно заметить были использованы небольшие кусочки картона, склеенные для прокладок и монтажных опор. Это особенно важно, если вы хотите, чтобы кнопка сброса на ардуине работала правильно. Обязательно надежно закрепляйте детали на месте, но все равно держите электронные контакты и кнопки чистыми.
Шаг 3. наблюдение за аналоговым входом
В схеме вы можете увидеть, что температурный датчик подключен к источнику питания (5 вольт) и заземлению (0 В) и аналоговому выходу A0. По мере повышения температуры выход, подключенный к A0, увеличивает свое напряжение. Вы также можете видеть, что три светодиода подключены к их собственным цифровым выводам.
Несмотря на то, что Arduino – это цифровой инструмент, он может получать информацию от аналоговых датчиков для измерения таких параметров, как температура или свет. Для этого вы воспользуетесь встроенным аналого-цифровым преобразователем Arduino (ADC).
Аналоговые контакты от A0 до A5 могут интерпретировать напряжения от 0 до 5 В и переводить это напряжение в значения от 0 до 1023 для использования в скетче Arduino. Аналоговые контакты в основном используются для считывания информации с датчиков (они также могут быть использованы как цифровые выходы 14-19, несвязанные).
Шаг 4. подключение
Как только у вас появятся все детали, вы можете их подключить. Подключите ардуино к датчику и дисплею в соответствии с приведенными ниже фото.
Подключение датчика (сенсора)
Подключение дисплея
Подключение делаем следующим образом:
| 7-сегментный дисплей | Ардуино цифр. выходы |
|---|---|
| a | 2 |
| b | 3 |
| c | 4 |
| d | 6 |
| e | 7 |
| f | 9 |
| g | 8 |
| DP | 5 |
Шаг 4. блоки кода
Давайте используем редактор блоков кода для считывания состояния датчика, а затем примем решение о том, какие светодиоды загораются на основе значения датчика.
Шаг 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; } }Шаг 5. объяснение кода arduino
Когда редактор кода открыт, вы можете щелкнуть выпадающее меню слева и выбрать «Блоки Текст», чтобы открыть код Arduino, сгенерированный блоками кода. Следуйте дальше, изучая код более подробно.
int baselineTemp = 0; int celsius = 0; int fahrenheit = 0;
Перед setup() мы создаем переменные для хранения целевой базовой температуры, а также значения датчика. Они называются int, потому что они являются целыми числами или целым числом.
void setup()
{ pinMode(A0, INPUT); Serial.begin(9600); pinMode(2, OUTPUT); pinMode(3, OUTPUT); pinMode(4, OUTPUT);
}Внутри setup контакты сконфигурированы с помощью функции pinMode(). Pin A0 сконфигурирован как вход, поэтому мы можем «слушать» электрическое состояние датчика температуры. Штыри 2, 3 и 4 сконфигурированы как выходы для управления светодиодами.
void loop()
{ // set threshold temperature to activate LEDs baselineTemp = 40; // measure temperature in Celsius celsius = map(((analogRead(A0) - 20) * 3.04), 0, 1023, -40, 125);Все, что после набора косых черт // является комментарием, просто для нас, людей, читающих и не используется программой, когда Arduino запускает ее. В основном цикле baselineTemp устанавливается на целевую температуру в 40 градусов C°.
// convert to Fahrenheit fahrenheit = ((celsius * 9) / 5 32); Serial.print(celsius); Serial.print(" C, "); Serial.print(fahrenheit); Serial.println(" F");Формула для преобразования между градусами Цельсия и Фаренгейта такая:
F = (C * 9) / 5 32
Вывод на последовательный монитор помогает наблюдать за изменением температуры более подробно, чем состояния светодиодов.
if (celsius < baselineTemp) { digitalWrite(2, LOW); digitalWrite(3, LOW); digitalWrite(4, LOW); } if (celsius >= baselineTemp && celsius < baselineTemp 10) { digitalWrite(2, HIGH); digitalWrite(3, LOW); digitalWrite(4, LOW); } if (celsius >= baselineTemp 10 && celsius < baselineTemp 20) { digitalWrite(2, HIGH); digitalWrite(3, HIGH); digitalWrite(4, LOW); } if (celsius >= baselineTemp 20 && celsius < baselineTemp 30) { digitalWrite(2, HIGH); digitalWrite(3, HIGH); digitalWrite(4, HIGH); } if (celsius >= baselineTemp 30) { digitalWrite(2, HIGH); digitalWrite(3, HIGH); digitalWrite(4, HIGH); } delay(1000); // Wait for 1000 millisecond(s)
}Шесть операторов if для разных сегментов определенного диапазона температур между 40 и 46 градусами Цельсия, включают больше светодиодов когда теплее температура.
Если вы хотите увидеть более очевидное изменение яркости гистограммы, вы можете изменить базовую температурную переменную и / или диапазон, изменив аргументы в операторах if(). Это называется калибровкой.
Шаг 6. используем проект
Если вы создали физическую версию этой схемы, вы можете протестировать ее с помощью последовательного монитора программного обеспечения Arduino IDE (кнопка увеличительного стекла в правом верхнем углу окна эскиза), активируя датчик пальцами.
Если вы используете физическую плату, оцените температуру в помещении с помощью последовательного монитора и установите для нее значение baselineTemp.
Отрегулируйте разницу температурных порогов на меньший диапазон (2, 4, 6, вместо 10, 20, 30).
Загрузите свой код еще раз и попробуйте подержать сенсор пальцами. По мере повышения температуры вы должны видеть, что светодиоды включаются один за другим.
Шаг 6. тестирование
Теперь вы можете проверить свой детектор газа! Финальный вариант работы нашего детектора газа Ардуино можно увидеть на видео ниже:
Измените пороговые значения в коде, если вы не удовлетворены реакцией датчика.







