Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Sensor e Controlador Inteligente de Nível de Fluido com Arduino e Ultrassônico HC-SR04

Componentes e Materiais

Arduino UNO × 1
Sensor Ultrassônico HC-SR04 (Genérico) × 1

Aplicativos e Serviços Online

Sobre o Projeto

O diagrama abaixo mostra o sensor ultrassônico e o Arduino. O modelo construído foi apenas para fins de apresentação.

Introdução

Indicadores de nível são usados em praticamente todos os setores industriais. Também podemos implementar o mesmo para aplicações de pequena escala ou domésticas. Construímos um sensor de nível de fluido que permite leitura contínua de dados, indicando quanto fluido ocupa o tanque. O sistema criado é um sistema de realimentação que não apenas informa a quantidade de fluido, mas também o controla usando bomba.

Sensor e Controlador Inteligente de Nível de Fluido com Arduino e Ultrassônico HC-SR04
Diagrama de blocos simplificado do sistema

Construção

A figura acima é um diagrama de blocos simplificado do sistema criado. O Arduino é o microcontrolador utilizado. O sensor ultrassônico HC-SR04 conecta-se ao Arduino. O sensor é montado no topo do tanque. Usei duas bombas submersíveis para o modelo. As bombas são unidirecionais, ou seja, transportam fluido apenas em uma direção. Poderíamos usar uma bomba bidirecional operável em ambos os sentidos. Ambas as bombas recebem sinal do Arduino. As bombas requerem 12V para operar, portanto um driver de motor também é necessário (não mostrado no diagrama de blocos).

Funcionamento

Para melhor entendimento, dividimos o modelo em seções:

Sensoriamento

O sistema de sensoriamento usa o sensor ultrassônico HC-SR04. A faixa ultrassônica vai acima de 20 kHz. Este sensor tem um Transmissor e um Receptor. O transmissor produz frequência de 40 kHz; esta onda ultrassônica reflete na superfície do fluido e é captada pelo receptor. O sensor tem 4 pinos: GND ao GND do Arduino, VCC a 3.3V ou 5V. O pino Trigger dispara o transmissor. O pino Echo recebe o eco do ultrassom. Obtemos assim o período de tempo da ida e volta do ultrassom. Precisamos converter tempo em distância:

duration = pulseIn(echoPin, HIGH); // Tempo de ida e volta em microssegundos
distance = duration * 0.034 / 2;   // Distância em cm (velocidade som ~340 m/s)
Sensor e Controlador Inteligente de Nível de Fluido com Arduino e Ultrassônico HC-SR04
Princípio de medição: tempo de voo do ultrassom

Sistema de Controle

O Arduino recebe os dados do sensor e envia o sinal desejado às bombas. Podemos definir o nível desejado no código. Se o nível cruza o limiar superior, a bomba no tanque é acionada e bombeia água para fora até ficar abaixo do limiar. Quando o nível cai abaixo do limiar inferior, a bomba no reservatório começa a bombear fluido para o tanque. No modelo final, usa-se apenas o tanque e uma bomba.

Melhorias Futuras

Podemos melhorar a eficiência do projeto com:

Código

Controlador de Nível de Água Arduino

int tankPump = 3;
int reserviorPump = 2;
int trigPin = 9;   // branco
int echoPin = 10;  // marrom
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() {
  // Nível alto: esvaziar tanque (distância > 10cm = nível baixo = tanque vazio? Lógica original)
  if (distance > 10) {
    digitalWrite(tankPump, HIGH);
    digitalWrite(reserviorPump, LOW);
  } else {
    digitalWrite(tankPump, LOW);
  }

  // Nível baixo: encher tanque (distância < 6cm = nível alto = tanque cheio? Lógica original)
  if (distance < 6) {
    digitalWrite(reserviorPump, HIGH);
    digitalWrite(tankPump, LOW);
  } else {
    digitalWrite(reserviorPump, LOW);
  }
}
Nota: A lógica do código original parece invertida (distância maior = nível mais baixo). Ajuste os limiares conforme a geometria do seu tanque: distância medida do sensor ao fluido. Quanto mais cheio, menor a distância.

Esquemáticos

Sensor e Controlador Inteligente de Nível de Fluido com Arduino e Ultrassônico HC-SR04
Esquemático de ligação no protoboard

Processo de manufatura

  1. Sensor de Pressão Arterial: Como Funciona e Principais Aplicações
  2. Sensores de Tensão: Como Funcionam e Aplicações-Chave em Sistemas de Energia Modernos
  3. Sensores Arduino: Tipos, Aplicações e Projetos do Mundo Real
  4. Fluido de Transmissão Explicado: Função, Importância e Guia de Manutenção
  5. Construa um Sensor de Temperatura Remoto com Raspberry Pi e Python – Guia Passo a Passo
  6. Construa um Sistema de Monitoramento de Temperatura e Luz Multi-Sensor com Raspberry Pi e DS18B20
  7. Dominando Controle de Sensores e Atuadores no Raspberry Pi: Acelerômetro, Servo e Streaming de Dados
  8. Construa um Sistema Aeropônico Automatizado com Raspberry Pi e Sensor de Umidade
  9. Verifique e Calibre Seu Sensor de Umidade para Medições Precisas
  10. Monitoramento Preciso de Temperatura e Umidade com SHT15 no Windows 10 IoT Core