Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Arduino Laser Tripwire: Создайте простой датчик проникновения

Компоненты и материалы

Компонент Описание Кол-во
Arduino UNO Или совместимая плата 1
Беспайковая макетная плата (половинчатая) Для сборки 1
Резистор 10 кОм Для делителей и pull-down 3
Перемычки Набор 1
Фоторезистор (LDR) Два: для лазера и фонового света 2
Лазерный диод Источник луча 1
Тактильная кнопка 12 мм Переключение режимов 1
Пьезоизлучатель (Buzzer) Сигнализация тревоги 1

Приложения и сервисы

О проекте

Создание лазерной перемычки

Компоненты

Использовалась отдельная макетная плата для детектора — удобно позиционировать лазер на фоторезисторе.

Arduino Laser Tripwire: Создайте простой датчик проникновения

Сборка детектора лазера

Два фоторезистора подключены в делителях с резисторами 10 кОм. Один (A0) — под лазером, второй (A1) — измеряет фоновое освещение. Общие питание и земля. Выходы делителей — на A0 (лазер) и A1 (фон).

Arduino Laser Tripwire: Создайте простой датчик проникновения

Подключение buzzer

Buzzer на пине 3, минус — на общую шину.

Arduino Laser Tripwire: Создайте простой датчик проникновения

Кнопка управления

Кнопка между двумя шинами, резистор 10 кОм к земле, другой контакт — к +5В. Точка соединения кнопки и резистора — на пин 4.

Лазер

Лазер на пине 2 и землю. Использовался дешевый лазерный модуль с крокодилами и велкро для фиксации кнопки.

Arduino Laser Tripwire: Создайте простой датчик проникновения

Логика работы

Программа опрашивает кнопку:

Режим SETUP:

Режим ARMED:

Режим TRIP:

Код

Laser Tripwire (Arduino)

// 5 pins trip wire
int mode = 1;
int ambiant;
int trip = 1000;
int minLight = 900;
int makeBeep = 1;
int atAverage;
long millisCount;
int laserPin = 2;
int ledPin = 13;
int buzzerPin = 3;
String modeNames[3] = {"SETTINGS","ARMED","TRIP"};
int modePin = 4;
int tripPin = A0;
int ambiantPin = A1;

void setup() {
  pinMode(ledPin, OUTPUT);
  pinMode(laserPin, OUTPUT);
  pinMode(buzzerPin, OUTPUT);
  pinMode(modePin, INPUT);
  Serial.begin(9600);
}

void loop() {
  if (digitalRead(modePin) == 1) {
    trip = analogRead(tripPin);
    mode = mode + 1;
    if (mode >= 2) mode = 0;
    beep(1);
    delay(300);
  }
  switch (mode) {
    case 0:
      digitalWrite(laserPin, HIGH);
      ambiant = analogRead(ambiantPin);
      trip = analogRead(tripPin);
      atAverage = ambiant + ((trip - ambiant) / 2);
      stats();
      if (trip >= minLight) digitalWrite(ledPin, HIGH);
      else digitalWrite(ledPin, LOW);
      break;
    case 1:
      digitalWrite(laserPin, HIGH);
      digitalWrite(ledPin, LOW);
      ambiant = analogRead(ambiantPin);
      atAverage = ambiant + ((trip - ambiant) / 2);
      if (analogRead(tripPin) < atAverage) mode = 2;
      if ((millis() - millisCount) >= 3000) {
        millisCount = millis();
        stats();
      }
      break;
    case 2:
      if ((millis() - millisCount) >= 1000) {
        millisCount = millis();
        stats();
        beep(3);
        mode = 1;
      }
      break;
  }
  delay(1);
}

void beep(int qty) {
  if (makeBeep == 1) {
    for (int count = 1; count <= qty; count++) {
      digitalWrite(buzzerPin, HIGH);
      delay(50);
      digitalWrite(buzzerPin, LOW);
      delay(50);
    }
  }
}

void stats() {
  Serial.print("A:"); Serial.print(ambiant);
  Serial.print(" T:"); Serial.print(trip);
  Serial.print(" AT:"); Serial.print(atAverage);
  Serial.print(" MODE:"); Serial.print(modeNames[mode]);
  Serial.println();
}

Схемы

Вид на макетной плате:

Arduino Laser Tripwire: Создайте простой датчик проникновения

Схематическое представление:

Arduino Laser Tripwire: Создайте простой датчик проникновения

Производственный процесс

  1. Интерактивная кукла «Игра в кальмара» на Arduino UNO: DIY-проект
  2. Часы реального времени на Arduino с расчётом времени намаза
  3. Робот для поиска людей на базе Arduino Uno: пошаговая интеграция датчиков
  4. Веб-сервер на Arduino Uno WiFi: управление LED через браузер
  5. Простой калькулятор на Arduino UNO — базовый проект для начинающих
  6. Вывод изображений на 1.17-дюймовый TFT LCD с Arduino UNO
  7. Сборка портативного дисплея на основе эффекта сохранения изображения с Arduino UNO и ATtiny85
  8. Мастерство 8×8 LED-матрицы с Arduino Uno: Пошаговое руководство
  9. Wi-Servo: управление сервоприводами по Wi-Fi через веб-браузер
  10. Управление 4-пиновым PWM-вентилятором 25 кГц на Arduino Uno — Сборка, код и тесты