Cómo usar el codificador rotativo magnético AS5600 con Arduino

How to Use the AS5600 Magnetic Rotary Encoder with Arduino

El AS5600 es un codificador rotativo magnético preciso capaz de medir ángulos con resolución de 12 bits. Se comunica a través de I2C o salida analógica, lo que lo hace ideal para robótica, control del motor y aplicaciones de detección de posición. Este tutorial lo guiará a través de la conexión y el uso del AS5600 con Arduino.


Lo que necesitarás

  1. AS5600 Módulo de codificador rotativo magnético
  2. Arduino Board (por ejemplo, Uno, Mega, Nano)
  3. Cables de placa y jersey
  4. Una computadora con el Arduino IDE instalado

Paso 1: Comprender el módulo AS5600

El AS5600 admite ambos I2C y Cosa análoga salidas. En el modo I2C, proporciona datos de ángulo altamente precisos. El modo analógico genera un voltaje proporcional al ángulo.

Pinout

Alfiler Función
VCC Fuente de alimentación (3.3V/5V)
Gnd Suelo
SDA Línea de datos I2C
SCL Línea de reloj I2C
AFUERA Salida analógica (opcional)
Prostituta Configuración de dirección
MODO Configuración del modo de salida

Nota: El DIR PIN configura la dirección de rotación y el MODE El PIN selecciona entre I2C o modos de salida analógica. Para I2C, conecta MODE a gnd.


Paso 2: Cableado el AS5600 a Arduino

Modo I2C (predeterminado)

Conecte el AS5600 al Arduino de la siguiente manera:

As5600 pin Alfiler de arduino
VCC 5V
Gnd Gnd
SDA A4
SCL A5

Nota: Para otros tableros Arduino, asegúrese de usar los pines I2C correctos.


Paso 3: Instale la biblioteca requerida

Para facilitar trabajar con el AS5600, instale la biblioteca "AS5600" de GitHub o el Arduino Library Manager.

Pasos para instalar:

  1. Abra el IDE Arduino.
  2. Ir a Bosquejo > Incluir biblioteca > Administrar bibliotecas.
  3. Busque "AS5600" y haga clic Instalar.

Paso 4: cargar el código

Aquí hay un código de ejemplo para leer el ángulo del 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
}

Paso 5: prueba la configuración

  1. Conecte el Arduino a su computadora a través de USB.
  2. Abra el IDE Arduino y seleccione el correcto Junta y Puerto bajo el Herramientas menú.
  3. Cargar el código haciendo clic en Subir.
  4. Abra el monitor en serie (Herramientas > Monitor en serie) y establecer la tasa de baudios en 9600.
  5. Gire el imán frente al sensor AS5600. El ángulo en los grados debe mostrarse en tiempo real.

Opcional: usando el modo de salida analógica

  1. Conecte el OUT Pin del AS5600 a un pasador analógico en el Arduino (por ejemplo, A0).
  2. Modifique el código para leer el voltaje analógico:
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);
}

Aplicaciones del AS5600

  1. Detección de posición del motor
  2. Codificadores de la perilla giratoria
  3. Medición del ángulo de la articulación robótica
  4. Sistemas de estabilización de cardán de cámara

Solución de problemas

  • Sin datos: Verifique las conexiones I2C y asegúrese de que los pines correctos estén definidos en el código.
  • Valores erráticos: Asegúrese de que el imán esté colocado correctamente y alineado con el sensor.
  • Sin respuesta en modo analógico: Confirmar el MODE El PIN está configurado correctamente.

Conclusión

Has interactuado con éxito el codificador rotativo magnético AS5600 con Arduino para medir la posición angular. Ya sea que esté utilizando I2C para lecturas precisas o modo analógico para la simplicidad, este sensor es una herramienta versátil para proyectos que requieren medición rotacional. ¡Experimente aún más integrándolo en proyectos de control de motor o robótica!

Escribir un comentario

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.