Categorias: Circuitos de microcontrolador
Número de visualizações: 16.299
Comentários sobre o artigo: 0

Como conectar o codificador incremental ao Arduino

 

Geralmente, em dispositivos em microcontroladores, é necessário organizar o gerenciamento de itens de menu ou implementar alguns ajustes. Existem várias maneiras: use botões, resistores variáveis ​​ou codificadores. O codificador incremental permite controlar algo por meio da rotação sem fim do identificador. Neste artigo, veremos como fazer o codificador incremental e o Arduino funcionarem.

Como conectar o codificador incremental ao Arduino

Recursos de codificador incremental

O codificador incremental, como qualquer outro tipo de codificador, é um dispositivo com uma alça rotativa. Distante, assemelha-se a um potenciômetro. A principal diferença do potenciômetro é que a alça do codificador gira 360 graus. Ele não tem provisões extremas.

Os codificadores são de vários tipos. Incremental difere no fato de que, com sua ajuda, é impossível saber a posição do manípulo, mas apenas o fato de girar em alguma direção - para a esquerda ou para a direita. Pelo número de pulsos de sinal, você já pode calcular em qual ângulo ele girou.

Codificador e Arduino

Dessa forma, você pode passar microcontrolador comando, gerencie o menu, o nível do volume, por exemplo, e assim por diante. Na vida cotidiana, você podia vê-los em rádios e outros equipamentos. É usado como um órgão de ajuste de nível multifuncional, equalizador e navegação no menu.

Botão de nível de som

Princípio de funcionamento

Dentro do codificador incremental, há um disco com etiquetas e controles deslizantes que entram em contato com eles. Sua estrutura é semelhante a um potenciômetro.

Codificador desmontado

Na figura acima, você vê um disco com marcas, elas são necessárias para interromper a conexão elétrica com o contato móvel, como resultado, você obtém dados sobre o sentido de rotação. O design do produto não é tão importante, vamos entender o princípio de operação.

Design do codificador

O codificador possui três saídas de informação, uma comum e as outras duas são geralmente chamadas de "A" e "B". Na figura acima, você vê o pino do codificador com um botão - você pode receber um sinal ao clicar no eixo.

Que sinal vamos receber? Dependendo da direção da rotação, a unidade lógica aparecerá primeiro no pino A ou B, para obtermos um sinal de mudança de fase, e essa mudança nos permite determinar qual direção. O sinal é obtido na forma retangular, e o microcontrolador é controlado após o processamento dos dados da direção de rotação e do número de pulsos.

Princípio de funcionamento

A figura mostra o símbolo do disco com os contatos, no meio há um gráfico dos sinais de saída e, à direita, a tabela de status. Esse dispositivo geralmente é desenhado como duas teclas, o que é lógico, porque na verdade recebemos um sinal de "avançar" ou "voltar", "subir" ou "descer" e o número de ações.

Circuito do codificador

Aqui está um exemplo de uma pinagem real do codificador:

Exemplo de uma pinagem real do codificador

Interessante:

Um codificador defeituoso pode ser substituído por dois botões sem travar e vice-versa: controle caseiro no qual dois desses botões podem ser finalizados configurando o codificador.

No vídeo abaixo, você vê a alternância do sinal nos terminais - durante a rotação suave, os LEDs acendem na sequência refletida no gráfico anterior.

Não menos claramente ilustrado na seguinte animação (clique na imagem):

O dispositivo e princípio de operação do codificador

O codificador pode ser óptico (o sinal é gerado pelos emissores por fotodetectores, veja a figura abaixo) e magnético (funciona no efeito Hall). Nesse caso, ele não tem contatos e vida útil mais longa.

Sensor de ângulo

Como já mencionado, o sentido de rotação pode ser determinado por qual dos sinais de saída foi alterado anteriormente, mas é assim que fica na prática!

Pontos de fixação mecânica

A precisão do controle depende da resolução do codificador - o número de pulsos por rotação. O número de pulsos pode variar de unidades a milhares de peças. Como o codificador pode atuar como um sensor de posição, quanto mais pulsos, mais precisa será a determinação.Este parâmetro é chamado de PPR - pulso por rotação.

Mas há uma pequena nuance, a saber, uma designação semelhante LPR é o número de etiquetas no disco.

E o número de pulsos processados. Cada etiqueta no disco fornece 1 pulso retangular em cada uma das duas saídas. O impulso tem duas frentes - a traseira e a dianteira. Como existem duas saídas, obtemos 4 pulsos no total de cada uma delas, cujos valores você pode processar.

PPR = LPRx4


Conectar ao Arduino

Nós descobrimos o que você precisa saber sobre o codificador incremental, agora vamos descobrir como conectá-lo ao Arduino. Considere o diagrama de conexão:

O diagrama de conexão do sensor de posição ao Arduino

Um módulo de codificador é a placa na qual o codificador incremental e os resistores pull-up estão localizados. Você pode usar qualquer alfinete.

Diagrama de fiação do codificador

Se você não possui um módulo, mas um codificador separado, basta adicionar esses resistores, o circuito não será diferente em princípio. Verificar o sentido de rotação e sua operacionalidade em conjunto com o Arduino podemos ler informações da porta serial.

Exemplo de programa

Vamos analisar o código em mais detalhes, em ordem. Na configuração nula (), anunciamos que usaríamos a comunicação através da porta serial e, em seguida, definiríamos os pinos 2 e 8 no modo de entrada. Selecione você mesmo os números dos pinos com base no seu esquema de conexão. A constante INPUT_PULLUP define o modo de entrada, o arduino tem duas opções:

  • ENTRADA - entrada sem resistências pull-up;

  • INPUT_PULLUP - conexão à entrada de resistores pull-up. Já existem resistores dentro do microcontrolador, através dos quais a entrada está conectada ao power plus (pullup).

Se você usar resistores para apertar a fonte de alimentação como mostrado nos diagramas acima ou usar o módulo do codificador - use o comando INPUT e, por algum motivo, não poderá ou não deseja usar resistores externos - INPUT_PULLUP.

A lógica do programa principal é a seguinte: se temos um na entrada "2", ele envia a porta H para o monitor, se não, L. Assim, quando você gira na mesma direção no monitor da porta serial, obtém algo como isto: LL HL HH LH LL. E vice-versa: LL LH HH HL LL.

Se você ler atentamente as linhas, provavelmente notou que em um caso o primeiro caractere adquiriu um valor e, no outro caso, o segundo caractere foi alterado pela primeira vez.


Conclusão

Os codificadores incrementais encontraram ampla aplicação prática em amplificadores para sistemas acústicos - eles eram usados ​​como controle de volume, em rádios automotivos - para ajustar parâmetros de som e navegação no menu, em ratos de computador com ele você rola as páginas diariamente (uma roda é instalada em seu eixo) . E também em ferramentas de medição, máquinas CNC, robôs e selsyn não apenas como controles, mas também na medição de valores e na determinação da posição.

Veja também em bgv.electricianexp.com:

  • Métodos para ler e gerenciar portas de E / S do Arduino
  • Controle de motor e servo com Arduino
  • Possui conexão de dispositivos ao Arduino
  • Conectando e programando o Arduino para iniciantes
  • Sensores mais populares para Arduino

  •