Esse post é parte de um projeto um pouco maior, mas que não consegui montar ainda simplesmente pela falta de peças. Então vou começar falando apenas do sensor de nível de líquidos (abaixo).

Sensor de nivel de liquido Arduino

Este é um sensor feito de material plástico (PP, segundo o fabricante), composto de uma haste na qual desliza um cilindro feito de material flutuante.

Esse cilindro possui um ímã que aciona um sensor magnético no meio da haste. Esta haste por sua vez fecha o contato dos 2 fios que saem do sensor. Isso mesmo. É uma boia com fios.

Como funciona o sensor

Veja na imagem abaixo que o cilindro possui internamente apenas uma pequena parte preenchida com o ímã, o que torna possível invertermos o cilindro. Assim podemo ter um contato normal aberto ou normal fechado, adaptando o sensor às nossas necessidades:

Sensor de liquido - Detalhe

Sozinho, pode por exemplo ser usado como uma chave que é acionada quando um reservatório está cheio (colocando o sensor na parte de cima do reservatório), ou vazio (colocando o sensor na parte de baixo).

Sensor de liquido - Vários sensores

Com mais sensores, eu posso controlar vários níveis em um tanque, indicando ao Arduino se o meu tanque está cheio, se está pela metade ou se está (quase) vazio.

Sensor de nível de líquidos com Arduino

Uma ligação básica com apenas um sensor pode ser feita montando o circuito abaixo, onde usei dois leds para representar reservatório cheio (led verde aceso) ou reservatório vazio (led vermelho aceso).

Circuito Arduino e sensor de nivel de liquido

…e carregando esse programa, que não utiliza nenhuma biblioteca especial mas faz o monitoramento da porta digital 3, onde ligamos o sensor de nível de líquidos, e aciona as portas 6 e 7 onde os leds estão conectados:

//Programa: Teste sensor liquido Arduino
//Autor: Arduino e Cia

//Pino ligado ao sensor de nivel de liquido
int pinosensor = 3;
//Led verde
int pino_led_cheio = 6;
//Led vermelho
int pino_led_vazio = 7;

void setup()
{
  Serial.begin(9600);
  pinMode(pinosensor, INPUT);
  pinMode(pino_led_cheio, OUTPUT);
  pinMode(pino_led_vazio, OUTPUT);
}

void loop()
{
  int estado = digitalRead(pinosensor);
  Serial.print("Estado sensor : ");
  Serial.println(estado);
  switch(estado)
  {
  case 0:
    digitalWrite(pino_led_vazio, LOW);
    digitalWrite(pino_led_cheio, HIGH);
    break;
  case 1:
    digitalWrite(pino_led_vazio, HIGH);
    digitalWrite(pino_led_cheio, LOW);
    break;
  }
  delay(100);
}

Gostou de usar o sensor de nível de líquidos? Então confira também outro post onde utilizo esse sensor, o Monitore sua caixa dágua usando arduino. Até lá!

4.6/5 - (16 votes)