Как подключить ультразвуковой дальномер hc-sr04 к arduino

Содержание:

Как работает на самом деле ультразвуковой датчик HC-SR04

Временные диаграммы работы датчика представлены на следующем рисунке.

Датчик имеет контакты Trigger и Echo, которые используются для измерения расстояния как показано на представленных диаграммах. Сначала мы должны подать запускающий в работу датчик импульс длительностью 10 мкс на контакт Trigger, после этого датчик излучает в пространство серию из 8 ультразвуковых импульсов. Эти импульсы отражаются от препятствия и возвращаются обратно к датчику.

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

Но мы более детально исследовали работу этого датчика и установили, что датчик не ждет возвращения ультразвуковой волны назад. Он устанавливает напряжение высокого уровня на контакте Echo сразу после излучения серии импульсов и снимает это напряжение (то есть возвращает состояние контакта в 0) после того как ультразвуковая волна вернется назад. Поэтому правильные временные диаграммы работы этого датчика должны быть такими, какими они показаны на следующем рисунке.

Как сделать так чтобы датчик HC-SR04 работал только как передатчик

Как следует из представленных временных диаграмм для этого нужно объявить контакт Trigger выходным контактом и подать на него напряжение высокого уровня в течение 10 микросекунд. Это приведет к тому что датчик начнет излучать серию ультразвуковых импульсов. То есть всегда, когда нам нужно задействовать датчик HC-SR04 только в качестве передатчика, нам нужно просто подать импульс высокого уровня длительностью 10 мкс на его контакт Trigger.

Как сделать так чтобы датчик HC-SR04 работал только как приемник

Как следует из временных диаграмм прямым способом мы это сделать не можем поскольку мы не можем непосредственно управлять появлением сигнала на контакте Echo. Но мы можем использовать следующий «лайфхак». Мы можем просто заклеить передающую часть датчика непрозрачной лентой как показано на рисунке ниже, что приведет к тому что ультразвуковая волна не будет излучаться и, следовательно, не будет влиять на состояние контакта Echo.

Теперь чтобы подать на контакт echo напряжение высокого уровня нам теперь просто нужно подать импульс длительностью 10 мкс на контакт-«пустышку» trigger. Теперь напряжение низкого уровня появится на контакте echo только тогда, когда наш приемный датчик примет ультразвуковую волну от нашего передающего датчика.

1Описание и принцип действия ИК датчика препятствий

Инфракрасное (ИК) или infrared (IR) излучение – это невидимое человеческим глазом электромагнитное излучение в диапазоне длин волн от 0,7 до 2000 мкм. Вокруг нас существуют огромное количество объектов, которые излучают в данном диапазоне. Его иногда называют «тепловое излучение», т.к. все тёплые предметы генерируют ИК излучение.

Длины волн разных типов электромагнитного излучения

Модули на основе ИК излучения используются, в основном, как детекторы препятствий для различного рода электронных устройств, начиная от роботов и заканчивая «умным домом». Они позволяют обнаруживать препятствия на расстоянии от нескольких сантиметров до десятков сантиметров. Расстояние до препятствия при этом определить с помощью ИК-сенсора невозможно.

Если оснастить, для примера, своего робота несколькими такими ИК модулями, можно определять направление приближения препятствия и менять траекторию движения робота в нужном направлении.

Модуль сенсора обычно имеет излучатель (светодиод) и детектор (фотодиод) в инфракрасном диапазоне. Инфракрасный светодиод излучает в пространство ИК излучение. Приёмник улавливает отражённое от препятствий излучение и при определённой интенсивности отражённого излучения происходит срабатывание. Чтобы защититься от видимого излучения, фотодиод имеет светофильтр (он выглядит почти чёрным), который пропускает только волны в инфракрасном диапазоне. Разные поверхности по-разному отражают ИК излучение, из-за чего дистанция срабатывания для разных препятствий будет отличаться. Выглядеть ИК модуль может, например, вот так:

Модуль с ИК излучателем и ИК приёмником

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

Помимо инфракрасного свето- и фотодиода важная часть модуля – это компаратор LM393 (скачать техническое описание на LM393 можно в конце статьи). С помощью компаратора сенсор сравнивает интенсивность отражённого излучения с некоторым заданным порогом и устанавливает «1» или «0» на выходе. Потенциометр позволяет задать порог срабатывания ИК датчика (и, соответственно, дистанцию до препятствия).

Общие сведения

Ультразвуковой датчик HC-SR04 использует точно такую же технологию, что и летучие мыши (ультразвук). Если не вдаваться в подробности, то описать принцип работы можно, датчик посылает звуковые импульсы частотой 40 кГц и прослушивает эхо. В отличии от других датчиков, HC-SR04 не реагирует на солнечный свет или черные предметы, но может давать ложные показания от ткани или тонких предметов.
На передней части HC-SR04 расположено два ультрозвуковых датчика, первый с надписью T (Transmiter) — это передатчик ультрозвуковых волн (TCT40-16T), а второй с надписью R (Receive) — это приемник отраженных ультрозвуковых волн (TCT40-16R), по центру расположен выводной кварцевый генератор на 27 МГц.

С другой стороны датчика HC-SR04, расположена электрическая обвязка, в которой выделяется три основных микросхема и электрическая обвязка. Для взаимодействия с контроллером Arduino установлен четырех выводной разъем, назначение контактов можно посмотреть ниже.

Назначение контактов:
► VCC: «+» питание модуля
► Trig : вход триггера
► Echo: выход, эхо.
► GND: «-» питание модуля

Шаг 3. Программируем Arduino для обработки информации, полученной с акселерометра

Алгоритм написания программы в последовательности:

// Подключаем необходимые для работы библиотек
#include "MPU6050.h";
#include "I2Cdev.h";
#include "Wire.h";

// Создаем объект, символизирующий модуль датчика
MPU6050 axeler;

// Создаем объект библиотеки Wire
Wire b;

// Создаем объект, который символизирует контакт I2C
I2Cdev h;

// Вводим цифровые данные, отвечающие за точки в 3-х осях
int16_t axx, axy, axz;
int16_t gix, giy, giz;

// Объявляем метод, который будет запускать программу
void setup()

{
// Начинаем работу
Wire.begin();
h.begin(38400);

// Производим инициализацию, отчет выводится после компиляции
h.println("Initializing I2C devices...");
axeler.initialize();
delay(100);
}

// Считываем значения гироскопа и акселерометра с помощью адресов, которые принадлежат описанным выше переменным
void loop()
{
axeler.getMotion6(&axx, &axy, &axz, &gix, &giy, &giz);

// Выводим получившиеся значения на экран
h.print("a/g:\t");
h.print(axx); 
h.print("\t");
h.print(axy);
hl.print("\t");
hl.print(axz); 
h.print("\t");
h.print(gix); 
h.print("\t");
h.print(giy); 
h.print("\t");
h.println(giz);
}

Вуаля! Акселерометр Аrduino запрограммирован.

В принципе, для разнообразия можно написать еще один скетч (ниже), но тогда нам нужна будет еще одна библиотека — Kalman (Gy-521, mpu6050), которая преобразует показания координат X и Y.

#include <Wire.h>
#include "Kalman.h"
Kalman kalmanX;
Kalman kalmanY;
uint8_t IMUAddress = 0x68;
/* IMU Data */
int16_t accX;
int16_t accY;
int16_t accZ;
int16_t tempRaw;
int16_t gyroX;
int16_t gyroY;
int16_t gyroZ;
double accXangle; // Angle calculate using the accelerometer
double accYangle;
double temp;
double gyroXangle = 180; // Angle calculate using the gyro
double gyroYangle = 180;
double compAngleX = 180; // Calculate the angle using a Kalman filter
double compAngleY = 180;
double kalAngleX; // Calculate the angle using a Kalman filter
double kalAngleY;
uint32_t timer;
void setup() {
  Wire.begin();
  Serial.begin(9600);
  i2cWrite(0x6B,0x00); // Disable sleep mode      
  kalmanX.setAngle(180); // Set starting angle
  kalmanY.setAngle(180);
  timer = micros();
}
void loop() {
  /* Update all the values */
  uint8_t* data = i2cRead(0x3B,14);
  accX = ((data << 8) | data);
  accY = ((data << 8) | data);
  accZ = ((data << 8) | data);
  tempRaw = ((data << 8) | data);
  gyroX = ((data << 8) | data);
  gyroY = ((data << 8) | data);
  gyroZ = ((data << 8) | data);
  /* Calculate the angls based on the different sensors and algorithm */
  accYangle = (atan2(accX,accZ)+PI)*RAD_TO_DEG;
  accXangle = (atan2(accY,accZ)+PI)*RAD_TO_DEG;  
  double gyroXrate = (double)gyroX/131.0;
  double gyroYrate = -((double)gyroY/131.0);
  gyroXangle += kalmanX.getRate()*((double)(micros()-timer)/1000000); // Calculate gyro angle using the unbiased rate
  gyroYangle += kalmanY.getRate()*((double)(micros()-timer)/1000000);
  kalAngleX = kalmanX.getAngle(accXangle, gyroXrate, (double)(micros()-timer)/1000000); // Calculate the angle using a Kalman filter
  kalAngleY = kalmanY.getAngle(accYangle, gyroYrate, (double)(micros()-timer)/1000000);
  timer = micros();
Serial.println();
    Serial.print("X:");
    Serial.print(kalAngleX,0);
    Serial.print(" ");
    Serial.print("Y:");
    Serial.print(kalAngleY,0);
    Serial.println(" ");
  // The accelerometer's maximum samples rate is 1kHz
}
void i2cWrite(uint8_t registerAddress, uint8_t data){
  Wire.beginTransmission(IMUAddress);
  Wire.write(registerAddress);
  Wire.write(data);
  Wire.endTransmission(); // Send stop
}
uint8_t* i2cRead(uint8_t registerAddress, uint8_t nbytes) {
  uint8_t data;
  Wire.beginTransmission(IMUAddress);
  Wire.write(registerAddress);
  Wire.endTransmission(false); // Don't release the bus
  Wire.requestFrom(IMUAddress, nbytes); // Send a repeated start and then release the bus after reading
  for(uint8_t i = 0; i < nbytes; i++)
    data = Wire.read();
  return data;
}

После второго скетча вы на экране сможете увидеть подобные цифры:

Как подключить датчик MQ2 к Ардуино

Для этого занятия нам потребуется:

  • плата Arduino Uno / Arduino Nano / Arduino Mega;
  • датчик газа MQ2;
  • макетная плата;
  • светодиод;
  • резистор 220 Ом;
  • провода «папа-папа», «папа-мама».

Схема подключения датчика MQ2 к Ардуино Уно

Рассмотрим несколько вариантов кода для сенсора. Первый вариант — без библиотеки и еще два примера с библиотеками MQ2.h и TroykaMQ.h от Амперки. Обе библиотеки можно скачать на нашем сайте здесь

Обратите внимание, что при установке сразу двух библиотек будет происходить конфликт и Arduino IDE выдаст ошибку при компиляции. Загрузите первый пример, после сборки схемы, представленной на картинке выше

Скетч. Применяем датчик MQ2 без библиотеки

#define PIN_MQ2  A1    // имя пина для подключения MQ2
#define LED       13   // имя пина для подключения светодиода

int value;

void setup() {
  Serial.begin(9600);
  pinMode(LED, OUTPUT);
  pinMode(PIN_MQ2, INPUT);
}

void loop() {
   // записываем полученные данные с датчика
   value = analogRead(PIN_MQ2);

   // выводим информацию на монитор порта
   Serial.println("VALUE - " + String(value));
   Serial.println(" ");

   // включаем светодиод при превышении определенного значения
   if (value > 200) { digitalWrite(LED, HIGH); }
   else { digitalWrite(LED, LOW); }

   delay(200);
}

Пояснения к коду:

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

Датчик широкого спектра газов MQ-2 и Ардуино

Для следующего примера следует переключить пин A1 на логический порт сенсора газа (цифровой сигнал). Если вы используете датчик широкого спектра газов MQ-2 от компании Амперка, то подключите его к микроконтроллеру, согласно схеме. При этом у сенсора должен быть включен нагрев (замкнута перемычка на плате датчика). После подключения датчика к Arduino, загрузите следующую программу в плату.

Скетч. Подключение датчика с библиотекой MQ2.h

#include <MQ2.h>  // библиотека для датчика

#define PIN_MQ2  A1    // имя пина для подключения MQ2
#define LED       13   // имя пина для подключения светодиода
MQ2 mq2(PIN_MQ2);   // создаём объект для работы с датчиком

int lpg, co, smoke;

void setup() {
  Serial.begin(9600);
  mq2.begin();
  pinMode(LED, OUTPUT);
}

void loop() {
   float* values = mq2.read(true);

   // получаем информацию с датчика
   // выводим данные на монитор порта
   lpg = mq2.readLPG();
   co = mq2.readCO();
   smoke = mq2.readSmoke();
  
   // включаем светодиод при превышении концентрации CO
   if (co > 1000) { digitalWrite(LED, HIGH); }
   else { digitalWrite(LED, LOW); }

   delay(200);
}

Пояснения к коду:

  1. информация с датчика выводится на монитор порта Arduino IDE;
  2. порог включения светодиода можно изменить в операторе if и настроить программу на определение концентрации другого газа (в примере указан CO).

Скетч. MQ2 от Амперки с библиотекой TroykaMQ.h

#include <TroykaMQ.h>  // библиотека для датчика

#define PIN_MQ2  A1     // имя пина для подключения датчика
MQ2 mq2(PIN_MQ2);    // создаём объект для работы с датчиком

void setup() {
   Serial.begin(9600);
   // выполняем калибровку датчика
   mq2.calibrate();
   // выводим сопротивление датчика в чистом воздухе (Ro)
   Serial.println("Ro = " + String(mq2.getRo()));
}

void loop() {
   // выводим значения газов в ppm
   Serial.println("LPG: " + String(mq2.readLPG()) + " ppm");
   Serial.println("Methane: " + String(mq2.readMethane()) + " ppm");
   Serial.println("Smoke: " + String(mq2.readSmoke()) + " ppm");
   Serial.println("Hydrogen: " + String(mq2.readHydrogen()) + " ppm");

   Serial.println(" ");
   delay(200);
}

Пояснения к коду:

  1. в представленном примере информация по концентрации газов выводится в последовательный порт, без включения светодиода;
  2. сенсор должен находится в режиме постоянного нагрева (перемычка замкнута).

Заключительная часть

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

Как подключить датчик освещенности к Ардуино

Для этого занятия нам потребуется:

  • плата Arduino Uno / Arduino Nano / Arduino Mega;
  • модуль датчика освещенности;
  • один светодиод и резистор 220 Ом;
  • беспаечная макетная плата;
  • провода «папа-папа», «папа-мама».

Датчик освещенности ky: схема подключения к Ардуино

На картинке представлена схема подключения датчика света к Arduino Uno с использованием аналогового сигнала. На модуль подается питание 5 Вольт, а в зависимости от освещенности в помещении на выходе модуля (S) меняется напряжение от 0 до 5 Вольт. При подаче этого сигнала на аналоговый вход микроконтроллера, Arduino преобразует сигнал при помощи АЦП в диапазон значений от 0 до 1023.

Счетч для аналогового датчика освещенности

void setup() {
  pinMode(A1, INPUT);
  analogWrite(A1, LOW);
  Serial.begin(9600);   // подключаем монитор порта
}

void loop() {
  // считываем данные с датчика и выводим на монитор порта
  int light = analogRead(A1);
  Serial.print("Light = ");
  Serial.println(light);

  // рассчитываем напряжение и выводим на монитор порта
  float u = light * 0.48 / 100;
  Serial.print("U = ");
  Serial.println(u);

  // ставим паузу и делаем перенос строки
  delay(500);
  Serial.println("");
}
  1. в приведенном примере мы выводим на монитор порта данные с датчика освещенности, преобразованные с помощью АЦП Ардуино;
  2. чтобы узнать приблизительно напряжение, поступающее на вход Arduino, следует умножить получаемое значение на 0,0048 или U = light * (5 / 1023). Так как тип данных может хранить значения только с двумя знаками после запятой, то мы используем в скетче другую формулу для своих расчетов.

Схема подключения датчика освещенности к Ардуино

Следующая программа использует цифровой сигнал, идущий от датчика освещенности ky. На модуле имеется подстроечный резистор для настройки чувствительности. То есть вы можете отрегулировать, какой уровень освещенности необходим, чтобы модуль стал отправлять сигнал истина (логическая единица) на микроконтроллер Arduino. Подключите светодиод к пин 13 и загрузите следующий скетч.

Счетч для цифрового датчика освещенности

void setup() {
  pinMode(13, OUTPUT);
  pinMode(A1, INPUT);
}

void loop() {
   // считываем данные с датчика и выводим на монитор порта
   if (digitalRead(A1) == HIGH) {
      digitalWrite (13, LOW);
  }
   if (digitalRead(A1) == LOW) {
      digitalWrite (13, HIGH);
  }
}

3Скетч Arduino для ультразвукового дальномера

Напишем скетч для нашего дальномера:

const int trigPin = 6; // вывод триггера датчика HC-SR04
const int echoPin = 5; // вывод приёмника датчика HC-SR04

#include <LiquidCrystal.h> // подключаем стандартную библиотеку
LiquidCrystal lcd(12, 11, 10, 9, 8, 7); //инициализация ЖКИ 

void setup() {
  pinMode(trigPin, OUTPUT); // триггер - выходной пин
  pinMode(echoPin, INPUT); // эхо - входной
  digitalWrite(trigPin, LOW); 
  lcd.begin(16, 2); //задаём кол-во строк и символов в строке
  lcd.setCursor(10, 0); // выравниваем надпись по правому краю
  lcd.print("Dist:");
  lcd.setCursor(14, 1); 
  lcd.print("cm");
}

void loop() {
  long distance = getDistance(); // получаем дистанцию с датчика   
  lcd.setCursor(10, 1);
  lcd.print("    "); // очищаем ЖКИ от предыдущего значения
  lcd.setCursor(10, 1);
  lcd.print((String)distance); // выводим новую дистанцию
  delay(100);
}

// Определение дистанции до объекта в см
long getDistance() {
  long distacne_cm = getEchoTiming() * 1.7 * 0.01;
  return distacne_cm;
}

// Определение времени задержки
long getEchoTiming() {
  digitalWrite(trigPin, HIGH); // генерируем импульс запуска
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  // определение на пине echoPin длительности уровня HIGH, мкс:
  long duration = pulseIn(echoPin, HIGH);
  return duration;
}

Тут всё просто. Сначала инициализируем ЖКИ на выводах 12, 11, 10, 9, 8 и 7 с помощью библиотеки LiquidCrystal из состава Arduino IDE. Далее привяжем выводы «триггер» и «эхо» дальномера к выводам 6 и 5 платы Arduino. Каждые 100 мс будем запрашивать с детектора расстояние с помощью функции getDistance() и выводить на ЖК-дисплей.

У меня на LCD дисплее имеется дефект, и его левая половина почти не работает. Поэтому я вывожу надписи выровненными по правому краю.

После того как записали скетч в память Arduino, можем собирать прибор. Предлагаемая мной компоновка внутренностей показана на рисунке. Дисплей и датчик я закрепил с помощью термоклея. Он держит достаточно прочно, но при этом даёт возможность снять соединённые детали, если понадобится. Желательно всё разместить так, чтобы можно было подключиться к USB порту Arduino и поправить «прошивку» при необходимости. Например, изменить выводимый текст или поправить коэффициенты для расчёта дистанции. Может понадобиться менять контрастность ЖК дисплея, так что также желательно иметь в доступности регулятор потенциометра.

Вариант готового прибора показан на фотографии. Он достаточно компактен и удобен в использовании.

Вариант компоновки ультразвукового дальномера Внешний вид готового ультразвукового дальномера

Но следует иметь в виду несколько важных замечаний при его использовании:

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

PIR датчик движения Ардуино: характеристики

Сегодня уже никто не удивляется при автоматическом включении освещения в подъездах многоквартирных домов, которые срабатывают при прохождении человека. В большинстве приборов установлены пассивные датчики движения (PIR). Рассмотрим в этой статье устройство датчика движения, схему его подключения к Arduino UNO и соберем на его основе автоматический включатель освещения.

Линза Френеля концентрирует инфракрасное излучение

Модуль с ПИР датчиком состоит из пироэлектрического элемента под пластиковой линзой Френеля — цилиндрическая деталь с прямоугольным кристаллом в центре, который улавливает уровень инфракрасного излучения и пропускает его через себя. При подключении IR к Arduino мы уже выяснили, что все предметы имеют инфракрасное излучение и чем выше температура, тем интенсивнее излучение.

Устройство и распиновка пироэлектрического датчика движения

PIR датчики движения практически одинаковы по устройству. Диапазон чувствительности PIR сенсоров для Ардуино до 6 метров, угол обзора 110° x 70°. Питание — 5 Вольт, а выходной цифровой сигнал имеет значение 0, когда движения нет и значение 1 при наличии движения. Чувствительные элементы устанавливается в герметический корпус, который защищает от влажности и перепадов температур.

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

На фото выше можно увидеть основные комплектующие Ардуино радара. Конструкция проста. В из инструментов всё, что вам нужно, — это два сверла, острый нож, пару резаков и паяльник.

Стоит сказать, что точки на радаре, представляющие первичные объекты, отображаются красным цветом, а точки, представляющие вторичные объекты, отображаются синим цветом. Подробнее — на последнем шаге.

Следующие детали были куплены в обычном магазине:

  • 1 — пластиковый контейнер для пищевых продуктов.
  • 1 — миниатюрный переключатель.
  • 1 — лента (используется для крепления проводов от датчика).
  • 1 — лента (используется для крепления датчика).
  • 1 — кусок из алюминия толщиной 20 мм размером 40 х 55 мм.
  • 6 — 9 мм нейлоновых прокладок.
  • 3 — кабельные стяжки.
  • 13 — болтики 3 мм x 6 мм.
  • 1 — 3-мм гайка.
  • 4 — болтики 4 мм x 10 мм.
  • 2 — 4 мм гайки.

Эти детали заказаны на АлиЭкспресс:

  • 1 — микроконтроллер Arduino Uno R3 в комплекте с USB-кабелем.
  • 1 — 28BJY-48 5-вольтовый шаговый двигатель в комплекте с контроллером ULN2003.
  • 1 — 5-миллиметровый латунный шестигранный вал для колесной пары для моделей автомобилей.
  • 1 — ультразвуковой датчик HY-SRF05 (или HC-SRF04).

Подключение датчика HC SR04

С подключением датчика не должно возникнуть никаких проблем. Достаточно с помощью проводников соединить пин на питание с источником или МК, а ввод и вывод, соответственно, присоединить непосредственно к МК. Воспользуйтесь схемой ниже для сборки схемы:

У самого сенсора SR04 следующие характеристики от которых вам стоит отталкиваться:

  1. Напряжение для питания – 5В.
  2. Работает в цепях с силой тока 15 мА.
  3. Если датчик не используется, то для поддержания его в пассивном состоянии всё ещё требуется до 2 мА.
  4. Угол обзора у модуля небольшой, всего 15 градусов.
  5. Разрешение сенсора – 3 десятых см.
  6. А вот угол для измерений составляет уже приятные 30 градусов.

Также на датчике имеются четыре вывода по стандарту 2.54 мм. В них входит контакт для питания с положительным напряжением +5В, пины для ввода и вывода сигнала и заземление.

В конечном варианте выглядеть устройство должно примерно таким образом:

Датчик утечки газа MQ2 на Ардуино

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

При измерении газов, термин «концентрация» используется для описания количества газа в воздухе по объему. Наиболее распространенными единицами измерения являются доли на миллион и процентная концентрация. Доли на миллион (ppm) — это отношение одного газа к другому. Например, концентрация 1000 ppm CO означает, что на 999 000 молекул газа, 1000 из них будут относится к углекислому газу.

Характеристики датчика MQ2 Ардуино

  • Питание: 5 Вольт;
  • Потребляемый ток: 180мА;
  • Чувствительность: 300-10000 ppm;
  • Рабочая температура: от -10 до +50 °C;
  • Влажность воздуха: не более 95%;
  • Интерфейс: аналоговый и цифровой.

Схема и распиновка датчика газа MQ2

Распиновка сенсора утечки газа MQ2 на Ардуино

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

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

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

Adblock
detector