Escolar Documentos
Profissional Documentos
Cultura Documentos
Informações sobre Android, Flutter, Dart, Java, Kottlin, Desenvolvimento, Programação, Instruções, Noticias.
Esta ideia de projeto explica como controlar automaticamente a operação da bomba d’água de
acordo com o nível de água do tanque e a vazão.
Um sensor ultrassônico detecta o nível de água e liga a bomba se o nível de água estiver abaixo de
25%.
A taxa de fluxo não pode ser determinada inicialmente, porque inicialmente não há fluxo de água
através do sensor de fluxo de água.
Se o nível de água estiver acima de 30% e a vazão de água abaixo de 0,5 litro/min, o relé
permanecerá na posição NÃO (normalmente aberto) e a fonte de alimentação para o motor da
bomba permanecerá desligada.
Se o nível de água estiver acima de 30% e a vazão de água acima de 0,5 litro / min, o relé opera e a
energia será fornecida ao motor da bomba. (Para proteger o motor da bomba)
Se o nível de água atingir 95%, o relé desconectará a energia do motor da bomba, portanto, não
haverá vazamento de água.
O nível de água (sempre) e a vazão (somente quando a água flui através do sensor) são exibidos na
tela LCD. Dessa forma, o usuário pode monitorar o nível de água e a vazão.
Nota: Antes de construir este projeto, esteja ciente dos componentes usados e suas capacidades.
Ferramentas e componentes
1 x Arduino Nano
1 x 5V/230V 1Hp Relé
1 x Sensor ultrassônico (HC-SR04)
1 x Sensor de taxa de fluxo de água (YF S201)
1 x Módulo LCD 16×2
1 x Potenciômetro 10K Ohm
1 x bomba de água 0,5 HP
1 x Tanque de água de 500 litros
Tubos de PVC de 1/2 “(para sensor de taxa de fluxo de água, tanque e bomba de água)
Acessórios, válvulas e cola para tubos de PVC
O sistema de controle é a principal preocupação deste projeto. Portanto, você pode organizar o
equipamento de encanamento adequado de acordo.
Componentes de conexão
Código Arduino
#include <LiquidCrystal.h>
#include <HCSR04.h>
UltraSonicDistanceSensor
distanceSensor(3, 2);
int LCD;
byte sensorInterrupt = 0;
byte sensorPin = 12;
float flowRate;
unsigned int flowMilliLitres;
unsigned long totalMilliLitres;
void setup()
{
pinMode(Relay, OUTPUT);
pinMode(sensorPin, INPUT);
digitalWrite(sensorPin, HIGH);
pulseCount = 0;
flowRate = 0.0;
flowMilliLitres = 0;
totalMilliLitres = 0;
oldTime = 0;
void loop()
{
LCD = map( distanceSensor.measureDistanceCm(), 0, 95, 100, 0);
delay(1);
lcd.begin(16, 2);
lcd.print("NÍVEL : ");
lcd.print(LCD);
lcd.print("%");
delay(500);
lcd.clear();
delay(1);
detachInterrupt(sensorInterrupt);
flowRate = ((1000.0 / (millis() - oldTime)) * pulseCount) / calibration
oldTime = millis();
flowMilliLitres = (flowRate / 60) * 1000;
totalMilliLitres += flowMilliLitres;
pulseCount = 0;
attachInterrupt(sensorInterrupt, pulseCounter, FALLING);
}
void pulseCounter()
{
pulseCount++;
}
Sempre conecte a fonte de alimentação principal se tiver certeza absoluta de que os componentes
estão conectados corretamente sem alterar a polaridade e causar curto-circuito na ligação.
Mesmo que pareça que não há nada de errado: VERIFIQUE DUPLA TUDO !!