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

Умный датчик и контроллер уровня жидкости на Arduino и ультразвуковом датчике HC-SR04

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

Программное обеспечение

О проекте

Ниже показана схема подключения ультразвукового датчика и Arduino. Модель собрана для демонстрации.

Введение

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

Конструкция

На блок-схеме: Arduino — микроконтроллер. Ультразвуковой датчик HC-SR04 подключён к Arduino, установлен сверху бака. Использованы два погружных насоса (однонаправленные — перекачивают жидкость только в одну сторону). Можно применить двунаправленный насос. Насосам требуется 12В, поэтому нужен драйвер двигателей (на блок-схеме не показан).

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

Для понимания разделим на две подсистемы:

Измерение

Ультразвуковой датчик HC-SR04 работает на частоте 40 кГц. Имеет излучатель и приёмник. Излучатель посылает импульс, он отражается от поверхности жидкости и принимается приёмником. Датчик имеет 4 пина: GND, VCC (3.3В или 5В), Trig (запуск импульса), Echo (приём эха). По времени прохождения вычисляется расстояние:

duration = pulseIn(echoPin, HIGH);
distance = duration * 0.034 / 2;

Система управления

Arduino получает данные от датчика и выдаёт сигналы насосам. Пороговые уровни задаются в коде. Если уровень превышает верхний порог — включается насос в баке, откачивающий жидкость, пока уровень не упадёт ниже порога. Если уровень ниже нижнего порога — включается насос в резервуаре, наливающий жидкость в бак. В текущей модели используется только бак и один насос.

Перспективы улучшения

Код

water level controller (Arduino)

int tankPump=3;
int reserviorPump=2;
int trigPin = 9; // white
int echoPin = 10; // brown
long duration;
int distance;

void setup(){
  Serial.begin(9600);
  pinMode(tankPump,OUTPUT);
  pinMode(reserviorPump,OUTPUT);
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
}

void loop(){
  ultrasound();
  pump();
}

void ultrasound(){
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  duration = pulseIn(echoPin, HIGH);
  distance = duration * 0.034 / 2;
  Serial.print("Distance:");
  Serial.println(distance);
  delay(1000);
}

void pump(){
  if (distance > 10){
    digitalWrite(tankPump,HIGH);
    digitalWrite(reserviorPump,LOW);
  } else{
    digitalWrite(tankPump,LOW);
  }
  if(distance < 6){
    digitalWrite(reserviorPump,HIGH);
    digitalWrite(tankPump,LOW);
  } else{
    digitalWrite(reserviorPump,LOW);
  }
}

Схемы

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

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

  1. Датчик артериального давления: принцип работы и ключевые применения
  2. Датчики напряжения: принцип работы и ключевые применения в современных системах питания
  3. Arduino-датчики: типы, применения и реальные проекты
  4. Трансмиссионная жидкость: назначение, важность и руководство по обслуживанию
  5. Создание удалённого датчика температуры на Raspberry Pi и Python — пошаговое руководство
  6. Создание многодатчиковой системы мониторинга температуры и света с Raspberry Pi и DS18B20
  7. Мастерство управления датчиками и исполнительными механизмами на Raspberry Pi: акселерометр, сервопривод и потоко…
  8. Создайте автоматизированную аэропоническую систему с Raspberry Pi и датчиком влажности
  9. Проверка и калибровка датчика влажности для точных измерений
  10. Точный мониторинг температуры и влажности с SHT15 на Windows 10 IoT Core