Como utilizar o módulo sensor de turbidez de partículas suspensas na água com Arduino
A água é um dos recursos mais importantes para a manutenção da vida no planeta. Portanto, a conservação da sua qualidade é fundamental para manutenção da saúde e bem-estar da população.
A qualidade da água é determinada através da análise parâmetros físicos, químicos e biológicos. Um dos parâmetros físicos que deve ser levado em consideração durante a análise da qualidade da água é a sua turbidez.
A turbidez é uma propriedade física que indica a existência de materiais em suspensão que reduzem a transparência e interferem a passagem de luz através de um determinado fluido.
Neste tutorial, vamos aprender sobre as características do módulo sensor de turbidez de partículas suspensas na água (Figura 1) e como utilizá-lo em conjunto com o Arduino.
O módulo sensor de turbidez é capaz de medir a saída de feixe de luz em uma quantidade de água, sendo muito útil em projetos envolvendo medição de qualidade de água.
O funcionamento do sensor se baseia na emissão de feixes de luz. Quando a luz emitida se choca com alguma partícula ou sólido tem-se a dispersão do feixe de luz. Desse modo, em fluídos com mais sujeira temos maior dispersão e maior é a turbidez.
O módulo sensor de turbidez foi desenvolvido especialmente para atuar em conjunto com plataformas microcontroladoras como Arduino, ESP32, Raspberry e outros.
O módulo sensor de turbidez é composto pelo sensor e por uma placa amplificadora de sinais. O sensor é composto por um transmissor de luz infravermelha e um fototransistor. A placa amplificadora de sinais possui um conector JST para conexão com o sensor, um potenciômetro de ajuste e três pinos para alimentação e comunicação com microcontroladores, conforme a Figura 3.
Funções dos pinos:
- VCC: Alimentação do módulo (5VDC);
- GND: Aterramento do módulo;
- OUT: Sinal de saída analógica ou digital.
A saída do sensor pode ser analógica ou digital. A preferência do tipo de sinal será feita por meio da soldagem dos pads de seleção que estão localizados próximos aos pinos de alimentação.
Por padrão, o módulo vem soldado para saída de sinal analógico, conforme a Figura 4. Caso necessite utilizar a saída digital, remova a solda do pad analógico e solde o pad digital.
Agora que já conhecemos as principais características e modo de funcionamento do módulo sensor de turbidez de partículas suspensas na água, vamos aprender a utilizá-lo em conjunto com o Arduino. A proposta será desenvolver um projeto para identificação da água limpa, meio suja e suja por meio da leitura analógica do módulo.
MATERIAIS NECESSÁRIOS
1 x Placa UNO SMD R3 Atmega328 compatível com Arduino UNO;
1 x Módulo sensor de turbidez de partículas suspensas na água;
1 x Cabo USB;
Jumpers macho-fêmea.
ESQUEMÁTICO DE LIGAÇÃO
Inicialmente, certifique-se de que a sua placa Arduino esteja desligada. Em seguida, monte o circuito da Figura 5.
Ao montar o circuito observe os seguintes pontos:
- O pino GND do sensor deve ser conectado ao GND do Arduino;
- O pino VCC do sensor deve ser conectado ao pino de 5V do Arduino;
- O pino de saída do sensor (OUT) deve ser conectado a entrada analógica A3 do Arduino.
ELABORANDO O CÓDIGO
Após a montagem do circuito, vamos programação do Sketch no Arduino IDE. Nesse projeto, vamos utilizar o sensor de turbidez para detectar se uma certa quantidade de água está limpa, meio suja ou suja.
Vamos entender a lógica de programação deste projeto a partir dos seguintes passos:
1. Declarar as variáveis
A variável sensorPin será utilizada para representar o pino analógico A3 e a variável sensorValue será utilizada para armazenar das leituras do módulo sensor de turbidez.
2. Iniciar a comunicação serial
Na função setup, inicializamos a comunicação serial por meio da instrução Serial.begin(9600);.
3. Realizar a leitura analógica do sensor
Iniciamos o loop() realizando a leitura da porta analógica A3 (sensorPin). Para isso, utilizaremos a função analogRead(sensorPin) e armazenamos o valor lido na variável leitura. Em seguida, imprimimos a leitura no monitor serial.
4. Classificação da qualidade da água
A classificação da qualidade da água foi feita por meio de testes de calibração, ficando da seguinte maneira:
- Para valores analógicos maiores de 700, temos que a água possui poucos resíduos, logo a água está limpa.
- Para valores analógicos entre 600 e 700, temos que a água possui uma quantidade relevante de resíduos, logo a água está um pouco suja.
- Para valores analógicos entre menores que 600, teremos que a água possui muitos resíduos, logo a água está muito suja.
Usamos a estrutura condicional if para verificar em qual faixa a leitura do sensor se encontra.
Ao final, o Sketch deste projeto ficará da seguinte maneira:
/* - SENSOR DE TURBIDEZ DA Á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 ================================================== */ int sensorPin = A3; // Atribui a porta A3 a variavel sensorPin int leitura; //Variável responsável por guardar o valor da leitura analógica do sensor void setup() { Serial.begin(9600); //Inicializa a comunicação serial } void loop() { leitura = analogRead(sensorPin); //Realiza a leitura analógica do sensor Serial.print("Valor lido: "); //Imprime no monitor serial Serial.println(leitura); // manda o valor de leitura para o monitor serial delay(500); //Intervalo de 0,5 segundos entre as leituras Serial.print("Estado da água: "); //Imprime no monitor serial if (leitura > 700) { //Se o valor de leitura analógica estiver acima de 700 Serial.println("LIMPA"); //Imprime no monitor serial que a água está limpa } if ((leitura > 600) && (leitura <= 700)) { //Se o valor de leitura analógica estiver entre 600 e 700 Serial.println("UM POUCO SUJA"); //Imprime no monitor serial que a água está um pouco suja } if (leitura < 600) { //Se o valor de leitura analógica estiver abaixo de 600 Serial.println("MUITO SUJA"); //Imprime no monitor serial que a água está um pouco suja } Serial.println(); }
O funcionamento deste projeto pode ser visualizado no Vídeo 1.
Espero ter ajudado,
Obrigada a todos e em caso de dúvidas deixe seu comentário abaixo!
Att. 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.