fbpx
ArduinoNovidade

Como utilizar o sensor de nível / boia de água lateral com Arduino

O sensor de nível / boia de água lateral (Figura 1) é um interruptor boia capaz de detectar o nível de líquido dentro de um tanque. Esse dispositivo pode ser conectado à porta digital de vários microcontroladores (ESP, Arduino e outros), sendo amplamente utilizado em projetos de monitoramento de caixas d’agua e reservatórios.

Imagem ilustrativa do sensor de nível boia de água lateral.
Figura 1: Sensor de nível boia de água lateral.

O funcionamento do sensor de nível / boia de água lateral se baseia na movimentação de sua boia que conforme o nível de água sobe ou desce e pode ser melhor entendido a partir da análise da Figura 2 e dos seguintes pontos:

  • Quando a boia estiver na posição A o sensor funcionará como uma chave aberta, indicando que o nível de água está baixo;
  • Por sua vez, quando a boia estiver na posição B o sensor funcionará como uma chave fechada, indicando que o nível de água está alto.
Imagem ilustrativa do modo de funcionamento do sensor de nível boia de água.
Imagem ilustrativa do modo de funcionamento do sensor de nível boia de água.

Neste tutorial, vamos aprender a utilizar o sensor de nível lateral boia com o Arduino.

MATERIAIS NECESSÁRIOS

ESQUEMÁTICO DE FUNCIONAMENTO

Monte o circuito da Figura 3 utilizando o sensor boia, os LEDs e os Jumpers.

Imagem ilustrativa do circuito para utilização do sensor de nível boia de água com o Arduino.
Figura 3: Circuito para utilização do sensor de nível boia de água com o Arduino.

Ao montar o circuito observe os seguintes pontos:

  • Um fio do sensor deve ser conectado com a porta digital 10 do Arduino com resistor pull down de 10 kΩ;
  • O outro fio do sensor deve ser alimentado com o 5V do Arduino;
  • Para controle do LED vermelho e verde usamos as portas digitais 11 e 12.

ELABORANDO O CÓDIGO

Após a montagem do circuito, vamos a programação do Sketch. Nosso objetivo é utilizar o sensor de nível / boia de água em conjunto com o Arduino para verificar se o nível de água de um recipiente encontra-se alto ou baixo. Acompanhe os passos a seguir para melhor compreensão da lógica de programação:

  1. Definir os pinos do Arduino que serão utilizados

Iniciamos o código definindo as constantes SensorBoia, LedVermelho e LedVerde e atribuindo a elas os pinos 10, 11 e 12 do Arduino, respectivamente.

  • Declarar a variável

Em seguida, declaramos a variável leiturasensor que será responsável por armazenar os dados de leitura do sensor boia.

  • Inicializar a comunicação serial e configurar o modo dos pinos

A comunicação serial foi inicializada por meio da instrução: Serial.begin(9600);.

Logo após, definimos o SensorBoia como entrada de dados (INPUT) e LedVermelho e LedVerde como saída (OUTPUT).

  • Realizar a leitura do sensor de nível e imprimir no monitor serial

Iniciamos o loop() realizando a leitura da porta digital 10 (SensorBoia) e imprimindo seu resultado no monitor serial

  • Realizar a comparação (Nível de água alto x Nível de água baixo)

Utilizaremos a lógica do if…else para comparar a leitura do sensor, de modo que:

  • Se a leitura do sensor for igual a nível lógico alto (HIGH), a mensagem “Nível de água alto” deve ser exibida no monitor serial e o LED indicativo verde deve ser acionado;
  • Senão (leitura do sensor igual a nível baixo), a mensagem “Nível de água baixo” será exibida no monitor serial e o LED indicativo vermelho deve ser ligado

Ao final, o Sketch deste projeto ficará da seguinte maneira:

/*
  - USO DO SENSOR DE NÍVEL / BOIA DE ÁGUA COM ARDUINO -
  =====================================================
  ===== BLOG DA ROBOTICA - www.blogdarobotica.com =====
  =====================================================
  Autora: Carol Correia Viana
  E-mail: contato@blogdarobotica.com
  Facebook: facebook.com/blogdarobotica
  Instagram:@blogdarobotica
  YouTube: youtube.com/user/blogdarobotica
  =====================================================
  ===== CASA DA ROBOTICA - www.casadarobotica.com =====
  =====================================================
  Facebook: facebook.com/casadaroboticaoficial
  Instagram:@casadarobotica
  =====================================================
*/

#define SensorBoia 10 //Define o pino em que o sensor está conectado
#define LedVermelho 11 //Define a porta em que o LED vermelho está conectado
#define LedVerde 12 //Define a porta em que o LED verde está ligado

int leiturasensor ; //Declaração da variavel que armazenará os valores de leitura do sensor

void setup() {
  Serial.begin(9600); // Inicialização a comunicação serial
  pinMode(SensorBoia, INPUT); //Define o pino de sensor da boia como pino de entrada
  pinMode(LedVermelho, OUTPUT); //Define o LED vermelho como pino de saída
  pinMode(LedVerde, OUTPUT); //Define o LED verde como pino de saída
}

void loop() {
  leiturasensor = digitalRead(SensorBoia); //Realiza a leitura do sensor e armazena na variável leiturasensor
  Serial.print("Leitura do sensor: ");
  Serial.println(leiturasensor);

  if (leiturasensor == HIGH) { //Se o sinal de leitura do sensor for HIGH, teremos que a água está com nível alto e o LED verde deve ser ligado
    Serial.println("Nível de água alto");
    digitalWrite(LedVermelho, LOW);
    digitalWrite(LedVerde, HIGH);
  }
  else {
    Serial.println("Nível de água baixo");//Se o sinal de leitura do sensor for LOW, teremos que a água está com nivel baixo e o LED vermelho deve ser ligado
    digitalWrite(LedVermelho, HIGH);
    digitalWrite(LedVerde, LOW);
  }
  delay(300);
}

Espero ter ajudado,

Obrigada a todos e em caso de dúvidas deixe seu comentário abaixo!

Carol Correia Viana

Dúvidas? Deixe seu comentário

Bacharel em Engenharia Elétrica com ênfase em Eletrônica, mestra em Engenharia Industrial e especialista em Docência com ênfase em Educação Inclusiva. Atua no setor de Desenvolvimento de Produtos na Casa da Robótica. Editora chefe e articulista no Blog da Robótica. Fanática por livros, Star Wars e projetos Maker.

Carol Correia Viana

Bacharel em Engenharia Elétrica com ênfase em Eletrônica, mestra em Engenharia Industrial e especialista em Docência com ênfase em Educação Inclusiva. Atua no setor de Desenvolvimento de Produtos na Casa da Robótica. Editora chefe e articulista no Blog da Robótica. Fanática por livros, Star Wars e projetos Maker.

Deixe uma pergunta

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.