Sensor óptico
Sensores ópticos, quando usados com atuadores lineares,função muito semelhante a sensores de efeito hall, exceto que detectam luz em vez de campos magnéticos [1]. Os sensores ópticos operam usando luz de um LED ou alguma outra fonte de luz que passa por um disco codificador. Este disco codificador tem uma fenda para permitir que a luz passe através dele periodicamente. Do outro lado do disco está um fotodetector, que detecta a luz quando ela passa pelas ranhuras do disco e cria um sinal de saída [1]. À medida que o atuador se move, o disco codificador gira e a luz é detectada pelo fotodetector que produz uma onda quadrada de pulsos de tensão. Esses pulsos podem ser usados de forma semelhante aos pulsos de um sensor de efeito Hall para determinar a distância que o atuador se moveu.
Feedback posicional de um sensor óptico
Como os sensores ópticos funcionam de forma bastante semelhante aos sensores de efeito Hall em termos de saída, esta postagem do blog abordará brevemente como ler sua saída para feedback posicional. Se você estiver procurando mais detalhes, confira nossa postagem sobre como ler o feedback posicional de um sensor de efeito Hall, pois será semelhante.
Assim como os sensores de efeito Hall, os sensores ópticos terão 3 pinos para conexão; um é a tensão de entrada, outro é o terra e, por último, um é o sinal de saída. Para utilizar os pulsos no sinal de saída para feedback posicional, você precisará usar um microcontrolador para contar os pulsos produzidos. Você desejará usar os pinos de interrupção externos do seu microcontrolador para contar esses pulsos com precisão. Como as interrupções externas são acionadas por uma mudança na tensão, elas podem ser usadas para detectar cada pulso à medida que ocorrem. Depois de configurar sua interrupção no código do microcontrolador, você precisará configurar uma rotina de serviço de interrupção que conte os pulsos conforme eles ocorrem. A função countSteps() no exemplo de código abaixo é usada para contar o número de pulsos do sensor óptico.
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á se deslocando. Ao controlar a direção em que o atuador linear se move, você pode simplesmente configurar uma variável para rastrear a direção do atuador em seu código. Esta variável pode ser usada para determinar se você precisa adicionar ou subtrair os pulsos da 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 do seu atuador linear.
Direcionando seu atuador linear
Para utilizar com precisão o feedback posicional de um sensor óptico, você precisa sempre saber a posição inicial do seu atuador linear. Embora quando você ligar 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 casa seu atuador linear, você precisará conduzi-lo até uma posição conhecida, como totalmente retraído. Usando o código Arduino abaixo como exemplo, configuramos um loop WHILE que conduzirá nosso atuador linear em direção à nossa posição conhecida. Neste exemplo, saberemos que estamos em nossa posição conhecida verificando se a interrupção foi acionada ou não, verificando se a variável steps mudou. Também precisamos ter certeza de que passou tempo suficiente para esperar que a interrupção fosse acionada, para isso usamos a função millis() e comparamos com o carimbo de data / hora anterior. Depois de determinarmos que o atuador linear está em nossa posição inicial, paramos de acionar o atuador, redefinimos a variável de etapas e saímos do loop WHILE.
Lidando com gatilhos falsos
Embora os sensores ópticos não sejam tão sensíveis ao ruído elétrico quanto os potenciômetros, o ruído elétrico e os saltos da chave ainda podem impactar o sinal de saída e desencadear a contagem de pulsos falsos. Alguns pulsos extras não afetarão muito o posicionamento, mas com o tempo podem ser um problema maior. Você pode combater esses problemas usando um temporizador interno para filtrar falsos gatilhos. Como você pode determinar com que frequência espera que novos pulsos sejam detectados, você pode filtrar quando a interrupção foi acionada por ruído. No exemplo de código abaixo, trigDelay é o atraso entre cada pulso. Se a interrupção foi acionada antes deste atraso, o pulso não será contado. A duração desse atraso variará de acordo com sua aplicação, mas se for muito curto, não filtrará o ruído adequadamente e se for muito longo, perderá os pulsos reais do sensor óptico.
Outra forma de combater falsos disparos é corrigir o valor posicional toda vez que o atuador atinge uma posição conhecida. Assim como direcionar o atuador linear, se você tiver conduzido o atuador linear para uma posição totalmente retraída ou estendida ou se usar interruptores de limite externos, você saberá quantos pulsos são necessários para atingir essa posição. Você pode então simplesmente corrigir o valor posicional usando esse valor quando atingir a posição conhecida. No exemplo de código abaixo, isso é feito para as posições totalmente estendida e totalmente retraída. Este método fornece uma solução prática para garantir que seu valor posicional permaneça preciso.
Resumo
Os sensores ópticos utilizados para feedback posicional fornecem maior precisão e resolução em comparação com sensores de efeito Hall e potenciômetros, embora tenham pontos fortes e desvantagens semelhantes aos sensores de efeito Hall. Embora não meçam a posição absoluta e exijam uma posição inicial conhecida para fornecer um valor posicional, o grande número de pulsos por polegada permite confiabilidade no posicionamento e garante que vários atuadores lineares se movam simultaneamente. Utilizando nosso FA-SYNC-X controlador do atuador ou através de código adicional, você pode até garantir que os atuadores se movam em uníssono, independentemente da carga.
Para um exemplo de código completo, confira nosso blog em como ler o feedback posicional de um sensor de efeito Hall tanto será semelhante. Valores como pulso por polegada e atrasos entre os pulsos são algumas das alterações que você precisará fazer para usar esse código para utilizar seu sensor óptico com precisão.
[1] Paschotta, R. Artigo sobre Sensores Ópticos. Obtido de:https://www.rp-photonics.com/optical_sensors.html