CONTROLE DE NÍVEL COM SENSOR ULTRA SÔNICO HC-SR04 NA CAIXA E BOIA NA CISTERNA

 Olá pessoal, bom dia !!  Sou novato no site, e digo que pesquisei bastante e achei esse site muito maneiro mesmo.

 Estou finalizando um curso de automação industrial e meu tcc é um controlador de nível.

 Este controlador possui um sensor ultrasônico na caixa de cima que varia de 0 a 20cm e na cisterna (no chão) possui uma boia no fundo. O arduino está programado para indicar a variação da água da caixa de água (alta), indicando com led vermelho que a caixa esta vazia (0cm), led amarelo quando está na metade (10cm) e led verde quando está cheia (20cm).

 O problema é que estava tudo certo e de repente o sistema não está mais funcionando como deveria.

 O sensor as vezes não está desligando o motor (bomba submersa de aquário na cisterna).

 Estou louco, meu TCC é pra semana que vem....

#include <modbus.h>
#include <modbusDevice.h>
#include <modbusRegBank.h>
#include <modbusSlave.h>
/* PINS
Add more registers if needed

Digital output pins 11,12 e 13
Analog input pins 0
*/
modbusDevice regBank;
modbusSlave slave;

/*
Projeto Arduino
Arduino com sensor de proximidade ultrasonico HHC-SRO4
Por Jota
----------------------------------------
--=<| www.ComoFazerAsCoisas.com.br |>=--
----------------------------------------
*/
//Incluindo biblioteca Ultrasonic.h
#include "Ultrasonic.h"
 
//criando objeto ultrasonic e definindo as portas digitais
//do Trigger - 6 - e Echo - 7
Ultrasonic ultrasonic(6,7);
 
//Declaração das constantes referentes aos pinos digitais.
const int ledVerde = 13;
const int ledAmarelo = 12;
const int ledVermelho = 11;
const int bomba = 10;
const int Botao = 2;
int EstadoBotao = 0;

 
long microsec = 0;
float distanciaCM = 0;
 
void setup()
{  
 
  Serial.begin(57600); //Inicializando o serial monitor
 
  regBank.setId(1); ///Set Slave ID
  //Add Digital Output registers
  regBank.add(10011);
  regBank.add(10012);
  regBank.add(10013);
 
  slave._device = &regBank;  
  slave.setBaud(57600);   
    
    
   
  //Definindo pinos digitais
  pinMode(ledVerde,OUTPUT); //13 como de saída.
  pinMode(ledAmarelo,OUTPUT); //12 como de saída.
  pinMode(ledVermelho,OUTPUT); //11 como de saída.
  pinMode(bomba,OUTPUT); //10 como de saída.
  pinMode(Botao,INPUT); //2 como de saída.
}
 
void loop() {  
 
  //Lendo o sensor
  microsec = ultrasonic.timing();
 
  //Convertendo a distância em CM
  distanciaCM = ultrasonic.convert(microsec, Ultrasonic::CM);
 
  ledDistancia();
 
  Serial.print(distanciaCM);
  Serial.println(" cm");
  delay(1000);
}
 
//Método que centraliza o controle de acendimento dos leds.
void ledDistancia() {
   
  //Apagando todos os leds
  digitalWrite(ledVerde,LOW);  
  digitalWrite(ledAmarelo,LOW);
  digitalWrite(ledVermelho,LOW);
 
  EstadoBotao = digitalRead(Botao);
  if(EstadoBotao == HIGH)
  {
    
  //Acendendo o led adequado para a distância lida no sensor
  if (distanciaCM > 20) {
    digitalWrite(ledVerde,HIGH);
    digitalWrite(bomba,LOW);  
  }
   
  if (distanciaCM <=20 and distanciaCM >= 10) {
    digitalWrite(ledAmarelo,HIGH);
  }
   
  if (distanciaCM < 10) {
    digitalWrite(ledVermelho,HIGH);
    digitalWrite(bomba,HIGH);
  }
  }
  //Digital Input
    int DI11 = digitalRead(11);
    if (DI11 >= 1)regBank.set(10011,1);
    if (DI11 <= 0)regBank.set(10011,0);
    int DI12 = digitalRead(12);
    if (DI12 >= 1)regBank.set(10012,1);
    if (DI12 <= 0)regBank.set(10012,0);
    int DI13 = digitalRead(13);
    if (DI13 >= 1)regBank.set(10013,1);
    if (DI13 <= 0)regBank.set(10013,0);
 
 
   slave.run();    
 
}

Exibições: 2517

Responder esta

Respostas a este tópico

Bom dia Raimundo, 

Favor não colar o seu programa no tópico.

http://labdegaragem.com/forum/topics/sugest-o-de-como-postar

Já discutimos aqui, que achamos que esse sensor HC-SR04 não é adequado para medição de nível de caixa dágua, pois não tem proteção contra umidade. Acho que seu sensor possa ter sido danificado. Devido à urgência, sugiro que troque por um similar. 

O mais indicado seria um sensor com trnasdutor à prova dágua igual ao usado em sensor de ré de automóveis. 

http://labdegaragem.com/forum/topics/sensor-de-n-vel-de-caixa-d-gua...

http://labdegaragem.com/forum/topics/controle-de-n-vel-caixa-d-gua

http://labdegaragem.com/forum/topics/sensor-de-n-vel

http://labdegaragem.com/forum/topics/sensor-de-volume

http://labdegaragem.com/profiles/blog/show?id=6223006%3ABlogPost%3A...

 Oi amigo, bom dia !

 Obrigado por responder e pelos links dos controladores ! Ok, não postarei mais e li o link de como postar que me enviou.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço