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.

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.

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.

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.

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.

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.

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.

Aqui está um 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 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.

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!

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:

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.

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.

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 electro-pt.tomathouse.com
: