Cap Sistema
Informações sobre Android, Flutter, Dart, Java, Kottlin, Desenvolvimento, Programação, Instruções, Noticias.
[Link] Printed on 24/03/2023
Tanque de água baseado em Arduino – Nível e taxa de fluxo (corte
automático)
December 10, 2020
Categorias: Arduino
Tags: Arduino, Arduino IDE, Arduino mini, automação DIY, código, Domótica, Fios, HC-SR04, LCD, LCD
16x2
Tempo de leitura: 3 minutes
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.
Portanto, o limite de nível de 30% foi definido.
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
Pino de sinal do sensor de nível de água – Arduino Pino D12
Pino de sinal de relé – Arduino Pino D13
Ultrasonic Trig. Pino – Arduino Pino D03
Ultrasonic Echo Pino – Arduino Pino D02
Pino RS LCD – Arduino Pino A02
Pino EN LCD – Arduino Pino A03
Pino D4 LCD – Arduino Pino A04
Pino D5 LCD – Arduino Pino A05
Pino D6 LCD – Arduino Pino A06
Pino D7 LCD – Arduino Pino A07
Código Arduino
#include <LiquidCrystal.h>
#include <HCSR04.h>
UltraSonicDistanceSensor
distanceSensor(3, 2);
int LCD;
const int rs = A2, en = A3, d4 = A4, d5 = A5, d6 = A6, d7 = A7;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
byte Relay = 13;
byte sensorInterrupt = 0;
byte sensorPin = 12;
float calibrationFactor = 7.5;
volatile byte pulseCount;
float flowRate;
unsigned int flowMilliLitres;
unsigned long totalMilliLitres;
unsigned long oldTime;
void setup()
{
pinMode(Relay, OUTPUT);
pinMode(sensorPin, INPUT);
digitalWrite(sensorPin, HIGH);
pulseCount = 0;
flowRate = 0.0;
flowMilliLitres = 0;
totalMilliLitres = 0;
oldTime = 0;
attachInterrupt(sensorInterrupt, pulseCounter, FALLING);
}
void loop()
{
LCD = map( [Link](), 0, 95, 100, 0);
delay(1);
[Link](16, 2);
[Link]("NÍVEL : ");
[Link](LCD);
[Link]("%");
delay(500);
[Link]();
delay(1);
if((millis() - oldTime) > 1000)
{
detachInterrupt(sensorInterrupt);
flowRate = ((1000.0 / (millis() - oldTime)) * pulseCount) / calibration
oldTime = millis();
flowMilliLitres = (flowRate / 60) * 1000;
totalMilliLitres += flowMilliLitres;
unsigned int frac;
[Link]("Quociente de vazão: ");
[Link](flowRate);
[Link]("L/Min");
delay(500);
[Link]();
delay(1);
pulseCount = 0;
attachInterrupt(sensorInterrupt, pulseCounter, FALLING);
}
if (LCD <= 25){
digitalWrite(Relay,HIGH);
} else if(LCD >= 95){
digitalWrite(Relay,LOW);
} else if(flowRate <= 0.500 && LCD >=30){
digitalWrite(Relay,LOW);
} else if(flowRate >= 0.500 && LCD >=30){
digitalWrite(Relay,HIGH);
} else if(flowRate <= 0.500 && LCD >=95){
digitalWrite(Relay,LOW);
}
}
void pulseCounter()
{
pulseCount++;
}
// Altere o código de acordo com a profundidade do tanque e a vazão mínima necessária.
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 !!
Visits: 8 Visits: 1563340