Feedback de um sensor de efeito Hall com vídeo

Sensor de efeito Hall

Sensores de efeito Hall podem detectar a presença de campo magnético e produzir uma tensão de saída quando um é detectado. Sensores de efeito Hall, quando usados ​​comatuadores lineares, são normalmente posicionados dentro da caixa de engrenagens do atuador junto com um disco magnético. Conforme o atuador linear se estende ou retrai, este disco gira para passar pelo sensor de efeito Hall, o que faz com que o sensor produza uma saída digital na forma de um pulso de tensão. Esses pulsos podem ser contados e usados ​​para determinar o quão longe o atuador se moveu.

Como ler o feedback de um atuador linear

Feedback posicional de um sensor de efeito Hall

Uma desvantagem de usar um sensor de efeito Hall para feedback posicional é que eles não medem uma posição absoluta. Em vez disso, eles produzem pulsos que podem ser contados para determinar o quão longe o atuador se moveu. Para utilizar esses pulsos para feedback posicional, você precisará usar um microcontrolador para contar os pulsos produzidos. Para fazer isso, você precisará usar os pinos de interrupção externos do seu microcontrolador para contar esses pulsos conforme eles ocorrem. As interrupções externas são pinos que detectam uma mudança na voltagem e, em nosso caso, podem ser usadas para detectar o pulso de voltagem do sensor de efeito Hall. Você precisará consultar a folha de dados do microcontrolador para garantir quais pinos do microcontrolador podem ser usados ​​como pinos de interrupção. Usando um Arduino Uno por exemplo, os pinos 2 e 3 podem ser usados ​​para interrupções externas. Depois de selecionar um pino de interrupção apropriado, você pode conectar o fio da saída do sensor de efeito Hall a esse pino, bem como conectar a tensão de entrada a 5 V e aterrar a um pino de aterramento.

Conectando o sensor de efeito Hall ao Arduino 

O exemplo de código abaixo mostra como configurar uma interrupção no IDE do Arduino, onde a interrupção será acionada na borda ascendente do pulso de tensão. Você pode configurar sua interrupção para ser disparada em pontos diferentes em uma mudança de tensão e deve consultar a folha de dados do seu microcontrolador para determinar as opções disponíveis. O último aspecto que você precisa fazer para configurar sua interrupção é escrever sua rotina de serviço de interrupção, que é a função que o código executará toda vez que a interrupção for disparada. Esta função deve ser curta e realizar apenas tarefas simples, como contar o número de pulsos de nosso sensor de efeito Hall. A função countSteps () no exemplo de código abaixo é usada para contar o número de pulsos do sensor de efeito Hall.

Para utilizar esses pulsos para determinar um valor posicional, você precisará saber a posição anterior do atuador linear e a direção em que o atuador linear está viajando. Seu microcontrolador já saberá para que lado você está conduzindo seu atuador linear, portanto, você pode simplesmente configurar uma variável para rastrear a direção do atuador em seu código, que será usada para determinar se você adiciona ou subtrai os pulsos de sua posição anterior. Depois de atualizar sua posição, você precisará zerar os pulsos contados. O exemplo de código abaixo mostra uma função que atualiza a posição com base no número de pulsos contados. Depois de ter uma posição em termos de pulsos, você pode converter em polegadas usando a especificação de pulso por polegada de seu atuador linear. No exemplo de código abaixo, o pulso por polegada de deslocamento é 3500.

Direcionando seu Atuador Linear

Para utilizar com precisão o feedback posicional de um sensor de efeito Hall, você precisa sempre saber a posição inicial do seu atuador linear. Embora quando você liga o sistema pela primeira vez, o microcontrolador não será capaz de dizer se o atuador está estendido ou não. Isso exigirá que você posicione seu atuador linear em uma posição conhecida. Para posicionar seu atuador linear, você precisará colocá-lo em uma posição conhecida, como totalmente retraído. Você também pode fazer uso de interruptores de limite externos para definir sua posição conhecida para algum lugar diferente de totalmente estendida ou retraída. Usando o código do Arduino abaixo como exemplo, vamos querer configurar um loop WHILE que irá direcionar nosso atuador linear para sua posição conhecida, neste caso totalmente retraído. Sabemos que você está na nossa posição conhecida porque a interrupção do sensor de efeito Hall não dispara. Nesse caso, verificamos se a variável de passos mudou ou não para determinar se a interrupção foi disparada. Também precisamos ter certeza de que passou tempo suficiente para esperar que a interrupção fosse disparada, para isso usamos a função millis () que mostra o tempo em milissegundos desde que o código foi iniciado e comparamos com o carimbo de data / hora anterior . Uma vez que determinamos que o atuador linear está em nossa posição inicial, paramos de dirigir o atuador, redefinimos a variável de passos e saímos do loop WHILE.

Lidando com Falsos Gatilhos

Embora os sensores de efeito Hall não sejam tão sensíveis ao ruído elétrico como um potenciômetro, o ruído elétrico ainda pode impactar o sinal de saída. O salto do interruptor também pode ser um problema com os sensores de efeito Hall que podem disparar pulsos falsos a serem contados, o que afetaria o quão longe o seu microcontrolador pensa que o seu atuador linear se moveu. Alguns pulsos extras não afetarão muito o posicionamento, pois existem 1000 pulsos por polegada, mas com o tempo pode ser um problema maior. Você pode combater esses problemas usando um temporizador interno para filtrar disparos falsos. Como você pode determinar a frequência com que espera que novos pulsos sejam detectados, você pode filtrar quando a interrupção foi disparada por ruído. No exemplo de código abaixo, trig-Delay é o atraso de tempo entre cada pulso. Se a interrupção foi disparada antes deste atraso, o pulso não será contado.

A duração desse atraso varia de acordo com sua aplicação, mas se for muito curto, não filtrará o ruído de maneira adequada e, se for muito longo, perderá os pulsos reais do atuador linear. A velocidade do atuador linear também afetará esse atraso e se você quiser ajustar a velocidade, essa variável pode precisar ser alterada para se ajustar à nova frequência de pulsos esperada. Para determinar com precisão um atraso exato entre cada pulso, você pode usar um analisador lógico para visualizar o sinal real do sensor de efeito Hall. Embora isso não seja necessário na maioria dos aplicativos, se você precisar de um posicionamento muito exato, pode querer determinar um atraso preciso.

Outra forma de combater os disparos falsos é corrigir o valor posicional sempre que o atuador atinge uma posição conhecida. Como a localização do atuador linear, se você conduziu o atuador linear para uma posição totalmente retraída ou estendida ou se você faz uso de interruptores de limite externos, você saberá o quanto o atuador se moveu. Como você sabe quantos passos o sensor de efeito Hall deve enviar para alcançar sua posição conhecida, você pode simplesmente corrigir o valor quando o alcançarmos. No exemplo de código abaixo, isso é feito para as posições totalmente estendidas e totalmente retraídas. Como o atuador não se moverá quando atingir uma dessas posições, se tentarmos acionar o atuador e o valor da posição não mudar, sabemos que estamos no limite. Este método fornece uma solução prática para garantir que seu valor posicional permaneça preciso, especialmente se você estiver retraindo ou estendendo totalmente o seu atuador em algum ponto durante a operação. Você pode usar este método em conjunto com o método descrito acima, que deve ajudar a manter a precisão do seu valor posicional.

Resumo

Utilizar um sensor de efeito Hall para feedback posicional oferece uma resolução muito maior em comparação com o feedback de um potenciômetro. Como pode haver 1000 pulsos por polegada de movimento, os sensores de efeito Hall fornecem precisão e confiabilidade no posicionamento de seu atuador linear. Os sensores de efeito Hall também fornecem maior capacidade de garantir que vários atuadores lineares se movam juntos simultaneamente, já que as contagens de pulso são mais precisas do que a variação da tensão do potenciômetro. Utilizando nosso FA-SYNC-X controlador do atuador, você pode até mesmo garantir que os atuadores se movam em uníssono, independentemente da carga. Para DIYers, você pode verificar como garantir que seus atuadores se movam em uníssono usando um Arduino Aqui.

Abaixo está o código de amostra completo usado neste blog e foi criado para controlar um comprimento de curso de 14 " Bullet Series 36 Cal. Atuador linear. O atuador linear é acionado usando um motorista de motor, que você pode aprender a configurar Aqui

[1] Monari, G. (junho de 2013) Compreendendo a resolução em codificadores óticos e magnéticos. Obtido de: https://www.electronicdesign.com/technologies/components/article/21798142/understanding-resolution-in-optical-and-magnetic-encoders

Tags:

Share this article

Coleções Características

Precisa de ajuda para encontrar o atuador certo?

Nós engenharia de precisão e fabricação de nossos produtos para que você obtenha preços diretos dos fabricantes. Oferecemos no mesmo dia o envio e o suporte ao cliente com conhecimento. Tente usar nossa Calculadora de Atuadores para obter ajuda para escolher o atuador certo para sua aplicação.