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:
4 Comentários
nossa, deve dar para fazer um anemômetro com isso
ResponderExcluirOlá meu amigo.
ExcluirSim, é possível.
É possível medir corrente?
ResponderExcluirA aproximação de campo magnético atrapalha a comunicação Wifi ou Bluetooth?
ResponderExcluir