КОРЗИНА
магазина
8 (499) 500-14-56 | ПН. - ПТ. 12:00-18:00
ЛЕСНОРЯДСКИЙ ПЕРЕУЛОК, 18С2, БЦ "ДМ-ПРЕСС"

Проект 5. Детектор дыма

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

Описание работы:

Для начала работы подключите питание к Arduino. И поместите устройство в комнату, в которой предварительно могут появиться нежелательные газы. Зеленый светодиод постоянно горит сигнализируя о том, что в комнате нет дыма. Как только датчик оказывается в зоне поражения дымом, зеленый светодиод гаснет, а красный светодиод высвечивает сигнал SOS, а зуммер сигнализирует SOS. Необходимо подождать некоторое время после подключения устройства к питанию, чтобы нагревательный элемент датчика прогрелся до нужной температуры и выдавал адекватные показания.

Нам понадобится:

Для реализации проекта нам не нужно устанавливать никаких библиотеки.

Схема сборки:

  • Полученные результат представлен ниже на рисунке.

Код программы:

int pinDatD = A3;                                                     // Объявляем пин для работы с датчиком дыма.
int pinLedRed = 2;                                                    // Объявляем пин для работы с красным светодиодом.
int pinLedGreen = 3;                                                  // Объявляем пин для работы с зеленым светодиодом.
int pinZum = 11;                                                      // Объявляем пин для работы с зуммером.
                                                                      //
int datDValue;                                                        // Переменная для считывания показания датчика дыма.
const int ultimateLevel = 500;                                        // Переменная предельного уровня показаний датчика дыма.
                                                                      //
void Sos();                                                           // Функция индикация SOS.
                                                                      //
void setup()                                                          //
{                                                                     //
  pinMode(pinLedRed, OUTPUT);                                         // Переводим вывод pinLedRed в режим выхода.
  pinMode(pinLedGreen, OUTPUT);                                       // Переводим вывод pinLedRed в режим выхода.
  pinMode(pinZum, OUTPUT);                                            // Переводим вывод pinLedRed в режим выхода.
}                                                                     //
                                                                      //
void loop()                                                           //
{                                                                     //
  datDValue = analogRead(pinDatD);                                    // Считываем показания датчика дыма.
  if (datDValue > ultimateLevel)                                      // Если показания дыма больше предельного уровня, то сообщаем о задымлении.
  {                                                                   //
    digitalWrite(pinLedGreen, LOW);                                   // Гасим зеленый светодиод.
    Sos();                                                            // Переходим к функции индикации SOS.
  }                                                                   //
  else                                                                // Если показания датчика дыма меньше заданного уровня, то нет задымления.
  {                                                                   //
    digitalWrite(pinLedGreen, HIGH);                                  // Включаем зеленый светодиод.
    digitalWrite(pinLedRed, LOW);                                     // Гасим красный светодиод.
    digitalWrite(pinZum, LOW);                                        // Выключаем зуммер.
  }                                                                   //
// *******************************************************************//
// delay(1000);                                                       // Время за которое данный с датчика дыма будут сравниваться с уровнем задымления.
// *******************************************************************//
}                                                                     //
                                                                      //
void Sos()                                                            // Функция индикация SOS.
{                                                                     //
  digitalWrite(pinLedRed, HIGH);                                      // Включаем красный светодиод.
  digitalWrite(pinZum,    HIGH);                                      // Включаем зуммер.
  delay(300);                                                         // Задержка 300 мс.
  digitalWrite(pinLedRed, LOW);                                       // Выключаем красный светодиод.
  digitalWrite(pinZum,    LOW);                                       // Выключаем зуммер.
  delay(300);                                                         // Задержка 300 мс.
  digitalWrite(pinLedRed, HIGH);                                      // Включаем красный светодиод.
  digitalWrite(pinZum,    HIGH);                                      // Включаем зуммер.
  delay(300);                                                         // Задержка 300 мс.
  digitalWrite(pinLedRed, LOW);                                       // Выключаем красный светодиод.
  digitalWrite(pinZum,    LOW);                                       // Выключаем зуммер.
  delay(300);                                                         // Задержка 300 мс.
  digitalWrite(pinLedRed, HIGH);                                      // Включаем красный светодиод.
  digitalWrite(pinZum,    HIGH);                                      // Включаем зуммер.
  delay(300);                                                         // Задержка 300 мс.
  digitalWrite(pinLedRed, LOW);                                       // Выключаем красный светодиод.
  digitalWrite(pinZum,    LOW);                                       // Выключаем зуммер.
  delay(300);                                                         // Задержка 300 мс.
                                                                      //
  digitalWrite(pinLedRed, HIGH);                                      // Включаем красный светодиод.
  digitalWrite(pinZum,    HIGH);                                      // Включаем зуммер.
  delay(1500);                                                        // Задержка 1500 мс.
  digitalWrite(pinLedRed, LOW);                                       // Выключаем красный светодиод.
  digitalWrite(pinZum,    LOW);                                       // Выключаем зуммер.
  delay(300);                                                         // Задержка 300 мс.
                                                                      //
  digitalWrite(pinLedRed, HIGH);                                      // Включаем красный светодиод.
  digitalWrite(pinZum,    HIGH);                                      // Включаем зуммер.
  delay(1500);                                                        // Задержка 1500 мс.
  digitalWrite(pinLedRed, LOW);                                       // Выключаем красный светодиод.
  digitalWrite(pinZum,    LOW);                                       // Выключаем зуммер.
  delay(300);                                                         // Задержка 300 мс.
                                                                      //
  digitalWrite(pinLedRed, HIGH);                                      // Включаем красный светодиод.
  digitalWrite(pinZum,    HIGH);                                      // Включаем зуммер.
  delay(1500);                                                        // Задержка 1500 мс.
  digitalWrite(pinLedRed, LOW);                                       // Выключаем красный светодиод.
  digitalWrite(pinZum,    LOW);                                       // Выключаем зуммер.
  delay(300);                                                         // Задержка 300 мс.
                                                                      //
  digitalWrite(pinLedRed, HIGH);                                      // Включаем красный светодиод.
  digitalWrite(pinZum,    HIGH);                                      // Включаем зуммер.
  delay(300);                                                         // Задержка 300 мс.
  digitalWrite(pinLedRed, LOW);                                       // Выключаем красный светодиод.
  digitalWrite(pinZum,    LOW);                                       // Выключаем зуммер.
  delay(300);                                                         // Задержка 300 мс.
  digitalWrite(pinLedRed, HIGH);                                      // Включаем красный светодиод.
  digitalWrite(pinZum,    HIGH);                                      // Включаем зуммер.
  delay(300);                                                         // Задержка 300 мс.
  digitalWrite(pinLedRed, LOW);                                       // Выключаем красный светодиод.
  digitalWrite(pinZum,    LOW);                                       // Выключаем зуммер.
  delay(300);                                                         // Задержка 300 мс.
  digitalWrite(pinLedRed, HIGH);                                      // Включаем красный светодиод.
  digitalWrite(pinZum,    HIGH);                                      // Включаем зуммер.
  delay(300);                                                         // Задержка 300 мс.
  digitalWrite(pinLedRed, LOW);                                       // Выключаем красный светодиод.
  digitalWrite(pinZum,    LOW);                                       // Выключаем зуммер.
  delay(1500);                                                        // Задержка 1500 мс.
}

Алгоритм работы:

В начале скетча (до кода setup) выполняются следующие действия:

В коде setup выполняются следующие действия:

  • Переводим выводы светодиодов и зуммера в режим выхода.

В коде loop выполняются следующие действия:

  • Считываем показания датчика дыма.
  • Сравниваем показания с допустимым пределом. Если показания дыма больше предельного уровня, то сообщаем о задымлении, а именно гасим зеленый светодиод и сигнализируем о тревоге функцией "Sos()". В ней мы гасим и зажигаем красный светодиод, а так же включаем и выключаем зуммер с периодичностью соответствующей команде SOS.
  • Если показания дыма меньше предельного уровня, то постоянно светит зеленый светодиод, а красный светодиод и зуммер выключены.
  • Можно раскомментировать строку, связанную с задержкой. Тогда полученные данные с датчика дыма будут дольше приходить для сравнения.
  • Можно менять уровень по которому срабатывает тревога. Для этого в скетче необходимо переменную предельного уровня "ultimateLevel" изменить на то значение, которое вам необходимо.

Ссылки:




Обсуждение

Гарантии и возврат Используя сайт Вы соглашаетесь с условями