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

DIY парктроник на Arduino UNO и ультразвуковых датчиках HC-SR04

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

Название Количество
Arduino UNO 1
Ультразвуковой датчик HC-SR04 3
Мини-дисплеи уровня заряда (на чипе TM1651) 2

О проекте

Простой парктроник на базе трех ультразвуковых датчиков HC-SR04: левый, центральный, правый. Два мини-дисплея (на чипе TM1651, изначально для индикации заряда батареи) показывают расстояние до препятствий. Максимальная дистанция задается в коде (20 см) — выше неё считается безопасной (дисплеи полные), ниже — индикация пропорциональна расстоянию.

DIY парктроник на Arduino UNO и ультразвуковых датчиках HC-SR04

Детали

DIY парктроник на Arduino UNO и ультразвуковых датчиках HC-SR04
DIY парктроник на Arduino UNO и ультразвуковых датчиках HC-SR04
DIY парктроник на Arduino UNO и ультразвуковых датчиках HC-SR04
DIY парктроник на Arduino UNO и ультразвуковых датчиках HC-SR04

Принцип работы

Три датчика: Right, Middle, Left. Два дисплея: Right, Left. Центральный датчик влияет на оба дисплея, боковые — только на свои.

Примеры на иллюстрациях.

DIY парктроник на Arduino UNO и ультразвуковых датчиках HC-SR04
DIY парктроник на Arduino UNO и ультразвуковых датчиках HC-SR04
DIY парктроник на Arduino UNO и ультразвуковых датчиках HC-SR04
DIY парктроник на Arduino UNO и ультразвуковых датчиках HC-SR04

Улучшения

Код

Parking_sensor_v1.ino (Arduino)
/* Работа с 3 модулями HC-SR04 и 2 дисплеями TM1651
 * Парктроник: показывает близость препятствий и сторону
 * Зависит от Maxdistance — выше безопасно, ниже меняется пропорционально
 * Подробности: www.SurtrTech.com
 */
#include <TM1651.h>

#define CLK 3   // Правый дисплей
#define DIO 2
#define CLK2 5  // Левый дисплей
#define DIO2 4

#define trigPin 6   // Центральный УЗ
#define echoPin 7
#define trigPinR 8  // Правый УЗ
#define echoPinR 9
#define trigPinL 10 // Левый УЗ
#define echoPinL 11

#define Maxdistance 20 // Макс. дистанция 20 см

long duration;
int distance;

TM1651 DisplayR(CLK, DIO);
TM1651 DisplayL(CLK2, DIO2);

void setup() {
  pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT);
  pinMode(trigPinR, OUTPUT); pinMode(echoPinR, INPUT);
  pinMode(trigPinL, OUTPUT); pinMode(echoPinL, INPUT);
  DisplayR.init(); DisplayR.set(BRIGHTEST);
  DisplayL.init(); DisplayL.set(BRIGHTEST);
}

void loop() {
  int distanceM = CDistance(trigPin, echoPin);
  int distanceR = CDistance(trigPinR, echoPinR);
  int distanceL = CDistance(trigPinL, echoPinL);

  int R = min(distanceM, distanceR); // Минимум для правого дисплея
  int L = min(distanceM, distanceL); // Минимум для левого

  if (R > 0 && R < Maxdistance) {
    byte LevelR = map(R, 0, Maxdistance, 0, 7);
    DisplayR.displayLevel(LevelR);
  }
  if (R >= Maxdistance) DisplayR.displayLevel(7);

  if (L > 0 && L < Maxdistance) {
    byte LevelL = map(L, 0, Maxdistance, 0, 7);
    DisplayL.displayLevel(LevelL);
  }
  if (L >= Maxdistance) DisplayL.displayLevel(7);

  delay(50);
}

int CDistance(int trig, int echo) {
  digitalWrite(trig, LOW); delayMicroseconds(2);
  digitalWrite(trig, HIGH); delayMicroseconds(10);
  digitalWrite(trig, LOW);
  duration = pulseIn(echo, HIGH);
  distance = duration * (0.034 / 2);
  return distance;
}
Библиотека TM1651 для дисплеев заряда

Сильно упрощает работу: GitHub: fuel_display

Схемы

DIY парктроник на Arduino UNO и ультразвуковых датчиках HC-SR04

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

  1. Радарные датчики: принцип работы и современные применения
  2. Парктроники: принцип работы, типы и основные применения
  3. Понимание кислородного (O2) датчика: роль, размещение и признаки отказа
  4. Mouser Electronics демонстрирует передовые сенсорные технологии на Sensors Expo 2019
  5. Ambarella приобретает Oculii за $307,5 млн, расширяя радар и сенсорный фьюжн для автономных авто
  6. Управление светодиодом с PIR-датчиком движения на Raspberry Pi
  7. Построение низкобюджетного датчика влажности почвы на Raspberry Pi для умного полива
  8. Создайте домашний монитор температуры на Raspberry Pi с MCP9808, InfluxDB и Grafana
  9. Интеграция импульсного радара Acconeer A111 с Raspberry Pi: практическое руководство
  10. Датчик эмоций и ЭЭГ: низкобюджетное железо для детекции эмоций в реальном времени