Índice:
Vídeo: Codificador Rotativo - Entenda e use-o (Arduino / outro ΜControlador): 3 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:36
Um codificador rotativo é um dispositivo eletromecânico que converte o movimento rotacional em informações digitais ou analógicas. Ele pode girar no sentido horário ou anti-horário. Existem dois tipos de codificadores rotativos: Codificadores absolutos e relativos (incrementais).
Enquanto um encoder absoluto produz um valor proporcional ao ângulo atual do eixo, um encoder incremental produz a etapa do eixo e sua direção. (Neste caso, temos um encoder incremental)
Os codificadores rotativos estão se tornando mais populares porque você é capaz de usar duas funções em um módulo elétrico: Um interruptor simples para confirmar as operações e o codificador rotativo para navegar, por exemplo, através de um menu.
Um codificador rotativo incremental gera dois sinais de saída enquanto seu eixo está girando. Dependendo da direção, um dos sinais conduz o outro. (Veja abaixo)
Etapa 1: Compreendendo os dados de saída
Como você pode ver, quando o eixo do encoder começa a girar no sentido horário, a Saída A cai para BAIXO primeiro e a Saída B o segue. No sentido anti-horário, a operação gira no sentido oposto.
Agora só temos que implementar isso em nosso µController (usei um Arduino Nano).
Etapa 2: construir o circuito
Como descrevi antes, as saídas criam um flanco ALTO e um flanco BAIXO. Para obter um HIGH limpo nos pinos de dados A e B do µController, temos que adicionar resistores Pull-Up. O pino C comum vai direto para o solo para o flanco BAIXO.
Para obter informações sobre a chave interna (botão de pressão), usaremos os outros dois pinos. Um deles vai para o VCC e o outro para um Pin de dados do µController. Também temos que adicionar um resistor pull-down ao pino de dados para obter um LOW limpo.
Também é possível usar resistores internos pull-up e pull-down do seu µController!
No meu caso, a pinagem se parece com:
- +3, 3V => +3, 3V (Arduino) (também + 5V possível)
- GND => GND (Arduino)
- A => Pin10
-
B =>
Alfinete
11
- C => GND
-
SW =>
Alfinete
12
Etapa 3: escrever o código
pinA int = 10; // switch interno A int pinB = 11; // switch interno B int pinSW = 12; // switch (encoder pressionado) int encoderPosCount = 0; // começa do zero, mude se quiser
int positionval;
bool switchval; int mrotateLast; int mrotate;
void setup () {
int mrotateLast = digitalRead (pinA); Serial.begin (9600); atraso (50); }
void loop () {readencoder (); if (readswitch () == 1) {Serial.println ("Switch = 1"); }}
int readencoder () {
mrotate = digitalRead (pinA); if (mrotate! = mrotateLast) {// botão giratório if (digitalRead (pinB)! = mrotate) {// switch A mudou primeiro -> girando no sentido horário encoderPosCount ++; Serial.println ("girado no sentido horário"); } else {// switch B mudou primeiro -> girando no sentido anti-horário encoderPosCount--; Serial.println ("girado no sentido anti-horário"); }
Serial.print ("Posição do codificador:"); Serial.println (encoderPosCount); Serial.println (""); } mrotateLast = mrotate; return encoderPosCount; } bool readswitch () {
if (digitalRead (pinSW)! = 0) {// interruptor é pressionado
while (digitalRead (pinSW)! = 0) {} // interruptor atualmente pressionado switchval = 1; } else {switchval = 0;} // switch não está pressionado return switchval; }
Agora você pode girar o encoder e a variável encoderPosCount contará se você girar no sentido horário e contará regressivamente se girar no sentido anti-horário.
É isso! Simples e útil.
Sinta-se à vontade para alterar e executar o código. Você pode implementá-lo em seu projeto.
Também irei fazer upload de um projeto de LED onde usei o codificador para definir o brilho dos meus LEDs.
Recomendado:
Outro seletor rotativo principalmente impresso em 3D: 7 etapas (com fotos)
Outro seletor rotativo impresso principalmente em 3D: Um tempo atrás, criei um seletor rotativo impresso principalmente em 3D especificamente para meu projeto de réplica do Minivac 601. Para meu novo projeto Think-a-Tron 2020, preciso de mais uma chave rotativa. Estou procurando um switch de montagem em painel SP5T. Um adi
Power Timer com Arduino e codificador rotativo: 7 etapas (com imagens)
Temporizador de energia com Arduino e codificador rotativo: este temporizador de energia é baseado no temporizador apresentado em: https: //www.instructables.com/id/Timer-With-Arduin… um módulo de fonte de alimentação e um SSR (relé de estado sólido ) foram anexados a ele. Cargas de energia de até 1KW podem ser operadas e com alterações mínimas o
Codificador rotativo usando Arduino Nano: 4 etapas
Codificador Rotativo Usando Arduino Nano: Olá a todos, Neste artigo farei um tutorial sobre como usar um codificador rotativo usando Arduino Nano. Para usar este codificador rotativo, você não precisa de uma biblioteca externa. Portanto, podemos criar programas diretamente sem adicionar bibliotecas primeiro. ok vamos começar com
Codificador Rotativo: Como funciona e como usar com o Arduino: 7 etapas
Codificador rotativo: como funciona e como usar com o Arduino: você pode ler este e outros tutoriais incríveis no site oficial da ElectroPeak Visão geral. Neste tutorial, você aprenderá como usar o codificador giratório. Primeiro, você verá algumas informações sobre o codificador rotacional e, em seguida, aprenderá como
Tutorial do Codificador Rotativo com Arduino: 6 etapas
Tutorial do Codificador Rotativo com Arduino: O codificador giratório é um componente eletrônico capaz de monitorar o movimento e a posição ao girar. O codificador giratório utiliza sensores óticos que podem gerar pulsos quando o codificador giratório gira. Aplicação do codificador rotativo geralmente como um mec