Como usar o codificador rotativo magnético AS5600 com Arduino

How to Use the AS5600 Magnetic Rotary Encoder with Arduino

O AS5600 é um codificador rotativo magnético preciso capaz de medir ângulos com resolução de 12 bits. Ele se comunica via i2c ou saída analógica, tornando -o ideal para aplicações de robótica, controle de motor e detecção de posição. Este tutorial o guiará através da conexão e do uso do AS5600 com o Arduino.


O que você precisará

  1. Módulo de codificador rotativo magnético AS5600
  2. Board Arduino (por exemplo, Uno, Mega, Nano)
  3. Fios de pão e jumper
  4. Um computador com o Arduino IDE instalado

Etapa 1: Compreendendo o módulo AS5600

O AS5600 suporta ambos I2c e Analógico saídas. No modo I2C, ele fornece dados de ângulo altamente precisos. O modo analógico emite uma tensão proporcional ao ângulo.

Pinout

Alfinete Função
VCC Fonte de alimentação (3,3V/5V)
Gnd Chão
SDA I2C Linha de dados
SCL I2C Linha do relógio
FORA Saída analógica (opcional)
Dir Configuração de direção
MODO Configuração do modo de saída

Observação: O DIR pin configura a direção de rotação e o MODE O pino seleciona entre os modos I2C ou de saída analógica. Para i2c, conecte MODE para gnd.


Etapa 2: Fiação do AS5600 para Arduino

Modo I2C (padrão)

Conecte o AS5600 ao Arduino da seguinte forma:

AS5600 PIN Pino Arduino
VCC 5V
Gnd Gnd
SDA A4
SCL A5

Observação: Para outras placas do Arduino, certifique -se de usar os pinos I2C corretos.


Etapa 3: Instale a biblioteca necessária

Para facilitar o trabalho com o AS5600, instale a biblioteca "AS5600" no Github ou no Arduino Bibliotec Manager.

Etapas para instalar:

  1. Abra o Arduino IDE.
  2. Vá para Esboço > Inclua biblioteca > Gerenciar bibliotecas.
  3. Pesquise por "AS5600" e clique Instalar.

Etapa 4: Faça o upload do código

Aqui está um código de exemplo para ler o ângulo do AS5600 usando I2C:

#include <Wire.h>
#include <AS5600.h>

AS5600 encoder;

void setup() {
  Serial.begin(9600);
  Wire.begin();

  if (!encoder.begin()) {
    Serial.println("AS5600 not detected. Check connections.");
    while (1);
  }

  Serial.println("AS5600 initialized.");
}

void loop() {
  // Read the current angle in degrees
  float angle = encoder.getAngle();
  Serial.print("Angle: ");
  Serial.print(angle);
  Serial.println(" degrees");

  delay(100); // Update every 100ms
}
Arduino

Etapa 5: teste a configuração

  1. Conecte o Arduino ao seu computador via USB.
  2. Abra o Arduino IDE e selecione o correto Quadro e Porta sob o Ferramentas menu.
  3. Faça o upload do código clicando Carregar.
  4. Abra o monitor serial (Ferramentas > Monitor serial) e definir a taxa de transmissão como 9600.
  5. Gire o ímã na frente do sensor AS5600. O ângulo em graus deve ser exibido em tempo real.

Opcional: usando o modo de saída analógico

  1. Conecte o OUT Pino do AS5600 a um pino analógico no Arduino (por exemplo, A0).
  2. Modifique o código para ler a tensão analógica:
const int analogPin = A0;

void setup() {
  Serial.begin(9600);
  pinMode(analogPin, INPUT);
}

void loop() {
  int value = analogRead(analogPin); // Read analog voltage
  float angle = map(value, 0, 1023, 0, 360); // Convert to degrees

  Serial.print("Analog Angle: ");
  Serial.print(angle);
  Serial.println(" degrees");

  delay(100);
}
Arduino

Aplicações do AS5600

  1. Detecção da posição do motor
  2. Codificadores do botão rotativo
  3. Medição do ângulo articular robótico
  4. Sistemas de estabilização da câmera Gimbal

Solução de problemas

  • Sem dados: Verifique as conexões I2C e verifique se os pinos corretos estão definidos no código.
  • Valores erráticos: Verifique se o ímã está posicionado corretamente e alinhado com o sensor.
  • Nenhuma resposta no modo analógico: Confirme o MODE O pino está configurado corretamente.

Conclusão

Você interfigurou com sucesso o codificador rotativo magnético AS5600 com Arduino para medir a posição angular. Esteja você usando o I2C para leituras precisas ou modo analógico para simplificar, esse sensor é uma ferramenta versátil para projetos que requerem medição rotacional. Experimente mais, integrando -o em projetos de controle de motor ou robótica!

Leitura de 3 minutos

Deixe um comentário

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.