Hi, bem-vindos ao tutorial de hoje. Hoje vamos ver como usar um sensor de efeito hall com Arduino.
Um sensor de efeito hall é um sensor que varia sua saída com base na presença ou ausência de um campo magnético. Isto significa que o sinal de saída produzido por um sensor de efeito Hall é uma função da densidade do campo magnético ao seu redor. Quando a densidade do fluxo magnético ao seu redor excede um determinado valor limite pré-definido, o sensor detecta-o e gera uma voltagem de saída por vezes chamada voltagem hall para indicar a presença do campo magnético.
Sensores de efeito Hall estão a tornar-se muito populares devido à sua versatilidade e são utilizados em muitas aplicações diferentes. Uma das aplicações populares dos sensores de efeito hall é em sistemas automotivos onde são usados para detectar posição, medir distância e velocidade. Também são usados em dispositivos modernos como smartphones e computadores e também são usados em diferentes tipos de interruptores onde a presença de um campo magnético é usada para ativar ou desativar um circuito.
Sensores Hall produzem uma saída analógica ou digital dependendo do sensor em particular. Qualquer que seja o tipo, eles normalmente vêm em um pacote de três pinos com um pino para representar o sinal e os outros dois para fornecer energia para o sensor. Isto facilita a ligação a qualquer microcontrolador.
Para o tutorial de hoje, vamos demonstrar como funciona o sensor de efeito hall ligando-o ao lado de um LED a um Arduino. O Arduino será programado de tal forma que quando um íman é trazido para perto do sensor de efeito hall, o LED acende e quando o íman é removido, ele apaga.
Componentes requeridos
Os seguintes componentes são necessários para construir este projecto.
- Sensor de efeito alto
- Cheap Arduino Uno
- Breadboard mini
- LED
- Fios
- Magnets
Como de costume, os componentes exatos usados para este tutorial podem ser comprados através dos links anexados a cada um dos componentes listados acima.
Esquemática
O esquema para este projeto é simples, pois basta conectar os três pinos do sensor do hall e um LED ao Arduino. Conecte os componentes como mostrado no esquema abaixo.
A conexão é descrita mais adiante para facilitar o seu seguimento.
Sensor Alto – Arduino
VCC - 5VGND - GNDSIG - D2
O LED pode ser ligado directamente ao Arduino com a perna positiva no pino Arduino 13 e a outra perna ligada ao pino de terra sem resistência porque o Arduino tem uma resistência interna ligada ao pino 13.
Com os esquemas feitos, podemos proceder ao código para este projecto.
Código
O código para este projecto é realmente simples, tudo o que queremos fazer como mencionado anteriormente é verificar se um campo magnético está a ser detectado e se sim, ligar o LED se não, desligamos o LED.
Para fazer uma breve explicação do código para este projecto, a primeira coisa que fazemos é declarar os pinos do Arduino ao qual o nosso sensor e LED está ligado, após o que criamos um “estado” variável que irá armazenar o valor do sensor do hall.
////////////////////////////////////////////// // HALL EFFECT SENSOR DEMO // // Author: Nick Koumaris //// http://www.educ8s.tv ///////////////////////////////////////////////int hallSensorPin = 2; int ledPin = 13; int state = 0;
Próximo, passamos à função de configuração void, onde declaramos o modo de pinos para os pinos do Arduino ao qual o LED e o sensor Hall estão ligados.
void setup() { pinMode(ledPin, OUTPUT); pinMode(hallSensorPin, INPUT); }
Próximo é a função void loop, a tarefa aqui é a mesma como se quiséssemos usar um botão de pressão para controlar um LED com um Arduino no meio. Nós lemos a saída do sensor do corredor e armazenamos em um estado com nome variável. Quando o valor é BAIXO, giramos o LED, ALTO e quando o valor é alto, giramos o LED Baixo. A configuração do seu sensor de corredor pode ser diferente, pois o sensor pode ficar alto quando um campo magnético é detectado. Isto deve ser confirmado na folha de dados do sensor.
void loop(){ state = digitalRead(hallSensorPin); if (state == LOW) { digitalWrite(ledPin, HIGH); } else { digitalWrite(ledPin, LOW); }}
O código completo para este projecto é mostrado abaixo e também disponível para download na secção de download no final deste tutorial.
////////////////////////////////////////////// // HALL EFFECT SENSOR DEMO // // //// http://www.educ8s.tv ///////////////////////////////////////////////int hallSensorPin = 2; int ledPin = 13; int state = 0; void setup() { pinMode(ledPin, OUTPUT); pinMode(hallSensorPin, INPUT); }void loop(){ state = digitalRead(hallSensorPin); if (state == LOW) { digitalWrite(ledPin, HIGH); } else { digitalWrite(ledPin, LOW); }}
Demo
Copie o código e carregue para a sua placa Arduino. Você deve ver a chave LED quando um ímã é trazido para perto dele, como mostrado na imagem abaixo.