banner

Ir para o Forum

Escondido dentro do ESP32: SENSOR HALL!





Você sabia que existe um sensor dentro do ESP32? Trata-se do SENSOR HALL. Ele fica dentro da parte metálica da placa, no interior do chip do microcontrolador da Tensilica. Neste vídeo de hoje, vou, então, fazer uma introdução ao Sensor Hall, além de criar um programa utilizando o ESP32 para medir a variação de tensão ao aproximá-lo de um campo magnético.






Introdução

O Sensor de Efeito Hall é um transdutor que, quando sob a aplicação de um campo magnético, responde com uma variação em sua tensão de saída.
O Efeito Hall é o que ocorre quando uma corrente num condutor tem sua trajetória desviada pela ação de um campo magnético. Com um formato apropriado, este desvio faz com que a Tensão de Hall seja gerada, e esta pode ser aproveitada por um circuito externo, e é o que sensores Hall fazem. A tensão de Hall pode ser medida por um circuito externo ou ainda ser utilizada para efeitos de sensoriamento, pois ela é proporcional à intensidade do campo que cria.



Aplicações

·         Cilindro Pneumático
·         Impressora
·         Teclados
·         Setor automobilístico (medição de velocidade de rodas e eixos, cálculo de tempo de ignição de motores de combustão interna, tacômetros, ferio ABS...)



Demonstração




WiFi NodeMCU-32S ESP-WROOM-32




Programa

Faremos um programa no qual o ESP32 ficará fazendo a leitura do Sensor Hall e, caso atinja determinado limite, acenderá o LED interno, indicando a ocorrência.



Variáveis e Setup

O Led interno foi ligado no pino 2 e definimos o limite como “zero”. No Setup, configuramos o pino do Led como saída. Lembrando que este programa é bastante simples, inclusive, sem necessidade de instalar nenhuma biblioteca.

//LED interno (pode variar o pino de placa para placa)
const int LED = 2; 
//limite para ativar o LED
const int LIMIT = 0;

void setup() {
  Serial.begin(115200);  
  //configura o pino do LED como saída
  pinMode(LED, OUTPUT); 
}
 


Loop

No Loop, guardamos o valor lido do Sensor Hall. Fazemos a leitura dos dados e imprimimos a medida. Verificamos, então, se o valor lido é menor que o limite definido. Neste caso, ligamos o Led. Caso contrário, o Led é desligado.

void loop() { 
   //guarda o valor lido do sensor hall
   int measurement = 0; 
   //faz a leitura do sensor hall
   measurement = hallRead();
   Serial.print(“Imprime a medida: ");
   Serial.println(measurement);
   //verifica se o valor lido é menor que o limite definido 
   if(measurement < LIMIT) {
      //liga o LED
      digitalWrite(LED, HIGH);
   }
   else   {
      //desliga o LED
      digitalWrite(LED, LOW);
   }
   delay(100);
}




Faça o download dos arquivos:



Um comentário:

Tecnologia do Blogger.