AS5600 编码器无法在 Raspberry Pi 4 上读取

问题描述 投票:0回答:1

我正在尝试使用 AS5600 磁性位置编码器读取步进电机角度。

我使用的是 Raspberry Pi 4,引脚排列如下:

VCC 至 3.3V,GND 至地,SDA 至 GPIO2(引脚 3),SCL 至 GPIO3(引脚 5),DIR 至地

我使用的代码是这样的:

import smbus
import time

# Define I2C bus number and AS5600 device address
bus = smbus.SMBus(1)
AS5600_ADDRESS = 0x36

# AS5600 register addresses
AS5600_REG_ANGLE = 0x0E  # Read-only register for angle value

def read_angle():
    # Read 14-bit angle value from AS5600
    data = bus.read_i2c_block_data(AS5600_ADDRESS, AS5600_REG_ANGLE, 2)
    angle = (data[0] << 8) | data[1]
    return angle

try:
    while True:
        # Read angle value from AS5600
        angle = read_angle()
        print("Angle:", angle)
        time.sleep(0.1)  # Wait for 100 ms before next reading

except KeyboardInterrupt:
    print("Program stopped by user")

我使用相同的代码,之前它可以工作,但是几天后,我尝试了一下,我得到的只是“角度:0”

我尝试更换编码器模块和电线,但没有用。我什至尝试让它在 Arduino 上运行,但还是一无所获。

python raspberry-pi
1个回答
0
投票

我可以说,通过在我自己的 Raspberry Pi 项目上进行测试,您的代码运行得非常好,我得到了从 0 到 4095 的所有所需结果。事实上,看到这一点,它是一个救星,因为我终于明白了如何从寄存器中获取信息!让我知道您使用传感器,

干杯, F

© www.soinside.com 2019 - 2024. All rights reserved.