Blog posts How an Arduino or Raspberry Pi Communicates with our Hall effect actuator: the PA-04-HS

Como um Arduino ou Raspberry Pi se comunica com nosso atuador de efeito Hall: o PA-04-HS

Guest Writer
Guest Writer
PA Engineer

Bem-vindo a mais um blog técnico da Progressive Automations! Hoje, vamos mostrar como um Arduino pode se comunicar com o nosso PA-04-HS.

Um sensor de efeito Hall é um componente eletrônico que permite o controle preciso de um atuador linear. Ele costuma ficar posicionado dentro da caixa de engrenagens, ao lado de um disco magnético. Conforme o atuador linear se move, o disco magnético gira, criando um campo magnético que atravessa o sensor de efeito Hall. Isso gera um pulso de tensão, que pode ser contado para determinar a posição, a velocidade ou a direção do atuador linear. No entanto, para utilizar esses sinais, é necessário usar um microcontrolador, como um Arduino ou uma Raspberry Pi. Neste artigo, vamos nos aprofundar no uso de um atuador com uma Raspberry Pi e em como controlar um atuador linear com Arduino. Como mencionado, ambos os microcontroladores serão demonstrados com um Atuador linear de efeito Hall PA-04-HS da Progressive Automations.

O PA-04-HS vem com Feedback de efeito Hall integrado!

Cálculos de posição, velocidade e direção

Antes de entrarmos nos detalhes, a primeira coisa a entender é como os sinais provenientes do sensor de efeito Hall são usados para calcular a posição, a velocidade e a direção do atuador linear. No PA-04-HS, o sensor de efeito Hall é projetado para produzir dois sinais em dois estados binários: ligado ou desligado. Esses dois sinais sobem e descem conforme o motor elétrico gira, com uma diferença de fase de 90 graus entre eles. Não se preocupe se você não souber como implementar isso em um código que possa ser lido por um microcontrolador; mais adiante neste artigo forneceremos isso para você.

Posição

A posição do atuador linear exige alguns cálculos utilizando os sinais de efeito Hall e algumas medições do próprio atuador. A equação para a posição da haste do atuador requer o comprimento do Recorrido do atuador e o número total de bordas detectadas do totalmente recolhido até o totalmente estendido. Usando essas medições, pode-se utilizar a seguinte equação:

Equação 1

 

As bordas detectadas desde o estado totalmente recolhido, na equação acima, começam em zero e aumentam em um quando uma borda é detectada no sentido de avanço, e diminuem em um quando uma borda é detectada no sentido de retorno.

 

Velocidade

A velocidade de um atuador pode ser medida usando os sinais de efeito Hall implementando um temporizador no programa. Esse temporizador será usado para medir o tempo entre as bordas detectadas. Além disso, é necessário o valor calculado da variação do Recorrido por borda detectada. Usando esses valores, pode-se utilizar a seguinte equação:

Equação 2

 

Direção

A direção do movimento de um atuador pode ser determinada observando o estado atual dos dois sinais (sinal A e B) e comparando-o com o último estado dos dois sinais. Isso porque os dois sinais alternam qual está adiantado e qual está atrasado dependendo da direção do movimento do atuador.

Esquema do estado dos dois sinais (sinal A e B)

 

Tabela do estado dos dois sinais (sinal A e B)

 

Qual é melhor, um microcontrolador Arduino ou Raspberry Pi?

Não se trata de qual é melhor em geral, mas sim de qual é melhor para a sua aplicação. É melhor escolher um Arduino se a tarefa principal da sua aplicação for ler os dados do sensor de efeito Hall e retornar um conjunto específico de instruções.

Por outro lado, a Raspberry Pi é mais prática para resolver tarefas que seriam executadas em um computador pessoal. Além disso, a Raspberry Pi simplifica a gestão do fluxo de trabalho em vários cenários, como conectar-se à internet ou controlar um atuador linear por meio de um dispositivo móvel.

Pode ser conveniente usar ambos os microcontroladores para resolver tarefas diferentes. A Raspberry Pi pode acessar o código e ajustar vários parâmetros que, em seguida, podem ser enviados a um Arduino para controlar o atuador linear com base nas informações coletadas.

Vamos aos detalhes e mostramos como controlar um atuador linear com Arduino.

 

Arduino com atuadores lineares

Arduino Uno Rev3

 

Novamente, dependendo da sua aplicação, você pode escolher entre usar um método de polling (consulta periódica) ou uma interrupção com um microcontrolador ao lidar com sinais digitais. Polling é um método programado no qual um microcontrolador verifica periodicamente o estado de uma entrada para ver se houve alguma mudança. Interrupções são um mecanismo de hardware que muda imediatamente o foco do programa do microcontrolador quando o estado muda em uma entrada.

Para fins de demonstração, vamos optar pelo método de interrupção para saber o momento exato em que um sinal muda de estado. Em um microcontrolador Arduino, uma interrupção é usada criando-se uma Rotina de Serviço de Interrupção (ISP).

Você vai precisar de:

 

Fiação do Arduino e dos componentes do Shield

Os sensores de efeito Hall têm 4 fios: 5V, GND e 2 fios de sinal. Cada fio de sinal emite pulsos conforme o motor gira. Há também dois fios do atuador para conectar ao MegaMoto. Usaremos apenas um dos sinais de efeito Hall.

Conecte o atuador linear ao Arduino e ao MegaMoto da seguinte forma:

  • Fio vermelho do sensor no pino 5V do Arduino.
  • Fio preto do sensor no pino GND do Arduino.
  • Fio amarelo/laranja no pino 2 ou 3 do Arduino (se você estiver usando outro Arduino, certifique-se de que os pinos sejam de interrupção).
  • Fio vermelho do atuador ao MOTA do MegaMoto.
  • Fio preto do atuador ao MOTB do MegaMoto.

Depois que os motores estiverem corretamente ligados às placas, faça a fiação da fonte de alimentação da seguinte forma:

  • Conecte 12V ao BAT+.
  • Conecte GND ao BAT-.
  • Conecte 12V ao Vin no Arduino.
  • Ligue dois botões entre os pinos 7 e 8 do Arduino e conecte-os ao GND.

Existem 4 tipos de disparos para a interrupção: Rising (subida), Falling (descida), High (alto) e Low (baixo). Ao alterar o disparo, você pode ajustar quando a interrupção ocorre. Rising é quando o pino vê uma transição de baixo para alto; Falling é quando vê de alto para baixo; Low é quando o pino está em nível baixo; e High é quando o pino está em nível alto.

Para ver o código completo do Arduino, visite nosso guia aqui: Código Arduino do atuador linear com efeito Hall

O código moverá o atuador para frente ou para trás por uma quantidade definida quando você pressionar os botões no pino 7 ou 8 (ativo em BAIXO). Ele também inclui uma rotina de referência. Isso é importante, pois, se você operar o motor por muito tempo para frente e para trás, pode perder uma contagem aqui e ali e, aos poucos, perder a noção de onde está. A rotina de referência move o atuador linear de volta para uma posição conhecida, para que o contador possa ser redefinido.

 

Atuador com Raspberry Pi

Então, como conectar um atuador a uma Raspberry Pi 2, 4 ou modelo mais recente? Controlar um atuador linear com uma Raspberry Pi é simples e pode ser feito pela internet, permitindo o controle sem fio. Siga os passos do guia a seguir para ver exatamente como: Controle de atuador linear com Raspberry Pi.

A Raspberry Pi 4 é usada para executar o software do servidor e receber comandos para o controle do atuador linear. No entanto, este guia não utiliza um sensor de efeito Hall. Para fazer isso, uma placa Arduino pode ser conectada ao atuador linear e à Raspberry Pi para enviar/receber dados sem fio. Embora a Raspberry Pi também possa ser usada diretamente para ler dados de sensores, assim como o Arduino, isso pode ser exagero se você estiver controlando apenas alguns atuadores lineares.

 

Controlando múltiplos atuadores lineares

Atuador com sensor de efeito Hall IP66 Modelo: PA-04-HS

 

Se você precisa controlar vários atuadores lineares com uma Raspberry Pi ou Arduino, vai precisar de alguns componentes adicionais e será necessário ajustar o código. Dois ou mais atuadores lineares podem ser sincronizados rastreando a contagem do sensor de efeito Hall e, se as contagens dos atuadores lineares se distanciarem demais, cada atuador linear reduzirá a velocidade para igualar as posições.

Veja o conjunto completo de instruções aqui: Controle múltiplos atuadores lineares com um microcontrolador

Como alternativa, se a sincronização não fizer parte da sua aplicação, simplesmente use um Arduino para um ou dois atuadores, dependendo do número de pinos de interrupção disponíveis. Para controlar mais atuadores, você pode usar mais placas Arduino ou obter um shield Arduino com mais pinos de interrupção.

Explore nossa linha de microcontroladores para obter o máximo controle dos atuadores!

Conclusão

Se você topar o desafio, há métodos adicionais que você pode experimentar usando um Arduino com atuadores lineares para controlar o movimento, como usar um código PID bem prático, que você pode ver aqui: Controle PID de atuador linear. Um sensor de efeito Hall dentro de um atuador linear, como o PA-04-HS, oferece um nível adicional de controle que pode ser facilmente configurado com a ajuda de um Arduino ou Raspberry Pi. Se a sua aplicação precisa apenas ler dados de sensores ou se você quer levar seu atuador linear a outro patamar colocando-o online, um sensor de efeito Hall, combinado com o microcontrolador de sua escolha, é o caminho a seguir.

Se você tiver alguma dúvida sobre o conteúdo deste artigo, ou simplesmente quiser discutir possíveis soluções de produtos, por favor entre em contato conosco e teremos prazer em ajudar!