Conhecimento
Medir a intensidade de campo magnético de objetos pode ser um maneira bastante eficiente de extrair informações uteis dele. Afinal, avaliando o campo magnético podemos definir grandezas como posição, velocidade, correntes, entre outras. Por isso, saber como fazer isso é muito importante para quem gosta de eletrônica. Pensando nisso, trazemos este artigo apresentando para vocês o SS49E, um sensor baseado no efeito Hall, que é barato, mas extremamente versátil e capaz de realizar ótimas medidas de campo magnético.
Conhecendo o sensor de efeito Hall
Como já mencionado, esse sensor tem como base o efeito Hall, um fenômeno curioso do electromagnetismo. De maneira simplificada, esse fenômeno se trata do surgimento de uma tensão elétrica, quando uma corrente passa por uma região de campo magnético presente. A figura abaixo ilustra isso.
Nessa imagem, temos o campo magnético e a corrente elétrica passando por uma região com um campo magnético, e perpendicular a ambos temos a tensão Hall, representada por . É importante ressaltar que a tensão Hall sempre é perpendicular ao campo magnético e a corrente simultaneamente, isso é, ele é perpendicular ao plano que os contém.
Outra característica da tensão Hall é que ela é proporcional a densidade do fluxo magnético e a corrente elétrica. Então, se desejamos medir o campo magnético devemos manter a corrente constante e medir a tensão Hall gerada no material condutor.
Agora que já apresentamos um pouco sobre o efeito Hall, podemos ir para o seu uso na prática.
Montando o circuito
O SS49E, sensor usado nesse artigo possui aplicação bem simples, se tratando de um sensor com apenas três terminais, sendo dois deles usados para a alimentação e o terceiro para saída. Assim, montamos um pequeno circuito usando um Arduíno UNO. Além disso usamos alguns jumpers e o protoboard para a conexão, o esquema abaixo mostra como ele foi montado.
Nessa montagem, usamos os pinos de 5V e GND do Arduino para alimentar o sensor, ligando-os aos pinos 1 e 2 respectivamente. Já o terceiro pino do sensor foi ligado diretamente à entrada analógica A0 do Arduino. Aqui é importante usar uma entrada analógica, pois a saída do sensor varia continuamente de 0V à 5V, dependendo da intensidade do campo externo. A relação entre a tensão de saída e o campo magnético é explicado um pouco mais adiante.
Programando
Com o circuito montado, podemos escrever o código que será executado no Arduino. Como esse código serve apenas para ilustrar o uso do SS49E mantivemos ele simples. Com ele fazemos a leitura da entrada analógica, convertemos o valor lido a um valor de campo e finalmente exibimos os valores envolvidos no monitor serial. Esse código está abaixo, mas como todos os códigos de nossos projetos, você pode encontra-lo em nosso github.
// Pino do sensor como o A0
const int pinoSensor = A0;
// Valor recebido pelo conversor A/D
int Valor_medido = 0;
// Valor_medido convertido para tensao
float Tensao_lida = 0;
// Valor de campo calculado
float Campo_calculado = 0;
void setup() {
//inicia comunicação serial
Serial.begin(9600);
}
void loop() {
// Leitura do valor de 0 a 1023 do conversor A/D:
Valor_medido = analogRead(pinoSensor);
// Conversão do valor lido para a tensao de saida do sensor:
Tensao_lida = 5.0*Valor_medido/1023;
// Calculo do valor de tensão do campo
Campo_calculado = (Tensao_lida-2.5)/0.019;
// Envia os resultados para a porta serial:
Serial.print("Valor Medido = ");
Serial.print(Valor_medido);
Serial.print("\t Tensão_sensor = ");
Serial.print(Tensao_lida);
Serial.print("V");
Serial.print("\t Campo = ");
Serial.print(Campo_calculado);
Serial.print("mT");
Serial.print("\n");
delay(500);
}
Começamos o código definindo a entrada analógica como sendo a A0 e declarando as 3 variáveis principais. A primeira é a “Valor_medido”, onde armazenamos o valor lido pelo conversor analógico digital do Arduino. Nessa variável constará sempre um valor de 0 até 1023, uma vez que o conversor A/D do Arduino possui 10 bits.
A segunda variável é a “Tensao_medida”, onde convertemos o valor obtido pelo conversor A/D em um valor de tensão. Para isso, multiplicamos o valor medido pela tensão mais alta que pode ser lida pelo Arduino (5V) e dividimos pelo nível mais alto do conversor (1023), ou seja, fazemos. (1)
Finalmente, usamos a variável “Campo_calculado” para armazenar o valor do campo magnético. Para isso, usamos os dados do datasheet do SS49E para determinar a equação da reta . Nele observa-se que a sensibilidade do sensor é de aproximadamente 1,9mV/Gs, que convertendo equivale a 0,019V/mT. Além disso, temos que para um campo de 0mT, a tensão sera de 2,5V, assim, montamos a equação:
(2)
O que o loop em execução faz então é realizar a leitura do conversor A/D, determinar a tensão do sensor, calcular o valor do campo e finalmente enviar todos os dados coletados para o monitor serial.
Testando o circuito
O vídeo abaixo mostra o circuito funcionando.
https://youtube.com/shorts/t-J75gkJPYY?feature=share
Nele vemos que na ausência de um campo magnético a leitura tida é de aproximadamente 2,5V. Sendo que esse valor aumenta quando aproximamos um dos pólos do ímã. Ao aproximar o outro polo, a tensão de saída do sensor reduzirá, permitindo assim realizar a distinção entre o pólo norte e sul do ímã.
Outro ponto importante de notarmos é que os valores de leitura estão sempre entre -100mT a 100mT, ou de 0,86V a 4,21V. Isso acontece porque valores de campo maiores que estes saturam o sensor, não podendo ser lidos adequadamente. Além disso, você pode aumentar a precisão do sensor obtendo a sensibilidade experimentalmente, medindo a tensão de saída para diferentes campos conhecidos.
Lendo o sensor com o DM858
Finalmente, usamos o multímetro digital DM858 da Rigol para realizar essas medidas, já que esse multímetro consegue realizar a leitura de diversos tipos de sensores de maneira prática e rápida, apenas inserindo um conjunto de valores conhecidos.
Afim disso, mantemos a alimentação do sensor com o Arduino, e conectamos o GND e a saída ao pinos do multímetro, em seguida, na tela tocamos no ícone da função atual e selecionamos “sensor”, então vamos para a aba “measure” e selecionamos “customize sensor”. Após isso tocamos em “+” e inserimos os dados conhecidos. Aqui colocamos os pares “2,5V e 0mT” e “5V e 131,579mT”, que satisfazem a equação 2, apesar do segundo ponto não ser possível, já que o sensor se encontraria saturado. Por fim em “sensor unit” escolhemos “customize” e digitamos “mT” no campo ao lado.
Com o multímetro configurado, a tela encontrada sera como abaixo:
Após realizarmos algumas medidas com o multímetro, vemos que os valores se aproximam bastante dos medidos com o Arduino, o que nos leva a acreditar que o código que fizemos está funcionando adequadamente.
Aplicações do sensor Hall
Agora que sabemos que o sensor está funcionando, usamos ele para traçar o gráfico do campo magnético x distância. Para isso, deixamos o sensor parado, e com o auxílio de uma régua, aproximamos um imã à ele em passos de 1 centímetro, obtendo como resultado o gráfico abaixo.
Esse interessante gráfico mostra como o campo magnético decai a medida em que a distância aumenta, além disso, ele mostra que esse tipo de sensor pode ser usado para se medir pequenas distâncias, apesar da baixa linearidade.
Outra aplicação na qual esse tipo de sensor é aplicada é na medição de velocidade angular em motores. Para isso, basta ter um pequeno imã no eixo do motor, que sempre que ele passa pelo sensor um pulso de tensão será emitido, assim, a velocidade pode ser obtida contando esses pulso.
Já conhecia o sensor SS49E? Conte para gente nos comentários o que você achou deste post. Lembrando que esse sensor e muitos outros você pode encontrar na Ryndack Componentes clicando aqui.