El AS5600 es un sensor de posición rotatorio magnético de alta resolución que puede medir ángulos de hasta 360°. Con su interfaz I2C, es fácil integrarlo con una Raspberry Pi para mediciones de ángulo precisas en robótica, automatización y otras aplicaciones. Esta guía explica cómo usar el AS5600 con una Raspberry Pi para leer posiciones angulares.
Qué necesitarás
- Raspberry Pi (cualquier modelo con soporte I2C, p. ej., Pi 3, Pi 4)
- Módulo codificador rotatorio magnético AS5600
- Imán (imantado diametralmente)
- Protoboard y cables jumper
- Un ordenador con acceso SSH a la Raspberry Pi o un teclado y monitor conectados
- Python instalado en la Raspberry Pi
Paso 1: Habilitar I2C en la Raspberry Pi
- Abre la terminal en tu Raspberry Pi.
- Ejecuta la herramienta de configuración de Raspberry Pi:
sudo raspi-config - Navega a Interface Options > I2C, y actívalo.
- Reinicia la Raspberry Pi:
sudo reboot
Paso 2: Cableado del AS5600 a la Raspberry Pi
El AS5600 usa el protocolo I2C para la comunicación. Conéctalo a la Raspberry Pi de la siguiente manera:
| AS5600 Pin | Pin de la Raspberry Pi |
|---|---|
| VCC | 3.3V (Pin 1) |
| GND | Masa (Pin 6) |
| SDA | SDA (Pin 3, GPIO2) |
| SCL | SCL (Pin 5, GPIO3) |
Nota: Asegúrate de que el voltaje de funcionamiento del módulo AS5600 coincida con el nivel lógico de 3.3V de la Raspberry Pi.
Paso 3: Instalar herramientas y librerías requeridas
- Actualiza la Raspberry Pi:
sudo apt update && sudo apt upgrade -y - Instala las herramientas I2C:
sudo apt install -y i2c-tools - Instala las librerías de Python para comunicación I2C:
pip install smbus2
Paso 4: Verificar la conexión I2C
- Detecta el AS5600 en el bus I2C:
sudo i2cdetect -y 1 - Deberías ver una dirección de dispositivo (p. ej.,
0x36) en la salida. Si no, revisa tu cableado.
Paso 5: Leer datos del AS5600
El AS5600 proporciona datos de ángulo de 12 bits a través de I2C. Puedes usar el siguiente script en Python para leer y mostrar la posición angular.
Ejemplo de código en Python
import smbus2
import time
# Define I2C address and bus
AS5600_ADDR = 0x36
ANGLE_REG = 0x0E
bus = smbus2.SMBus(1)
def read_angle():
# Leer dos bytes del registro de ángulo
raw_data = bus.read_i2c_block_data(AS5600_ADDR, ANGLE_REG, 2)
angle = (raw_data[0] << 8) | raw_data[1] # Combina MSB y LSB
angle = angle & 0x0FFF # Enmascara a 12 bits
return (angle / 4096.0) * 360.0 # Convierte a grados
try:
while True:
angle = read_angle()
print(f"Angle: {angle:.2f} degrees")
time.sleep(0.5)
except KeyboardInterrupt:
print("Exiting...")
Paso 6: Aplicaciones del AS5600
El AS5600 es versátil y puede usarse en varios proyectos:
- Robótica: Mide ángulos de articulaciones o ruedas para control preciso.
- Encoders: Crea encoders rotativos DIY para máquinas CNC o impresoras 3D.
- Controles de perilla: Úsalo como una perilla de alta resolución para volumen o navegación de menús.
- Seguimiento de posición: Rastrea posiciones angulares en sistemas de automatización.
Solución de problemas
-
Dispositivo no detectado:
- Verifica las conexiones SDA y SCL.
- Asegúrate de que I2C esté habilitado en la Raspberry Pi.
- Comprueba el voltaje de funcionamiento del AS5600.
-
Lecturas inexactas:
- Asegúrate de que el imán esté alineado correctamente con el sensor AS5600.
- Usa un imán imantado diametralmente para mediciones precisas.
-
Errores I2C:
- Comprueba si hay dispositivos en conflicto en el bus I2C usando
i2cdetect. - Verifica que la dirección del AS5600 coincida con la del script.
- Comprueba si hay dispositivos en conflicto en el bus I2C usando
Conclusión
El sensor de posición rotatoria magnético AS5600 es una herramienta potente y fácil de usar para medir ángulos. Siguiendo esta guía, puedes integrar el AS5600 con una Raspberry Pi para crear sistemas de medición rotacional precisos para robótica, automatización y más. ¡Experimenta con diferentes aplicaciones para desbloquear el potencial completo de este sensor versátil!




