0

我正在尝试将我的加速度计 ADXL3458 连接到在 ubuntu mate 中运行的 Raspberry Pi 3。我已经安装了 I2C 通信所需的所有必要软件包。当我执行这个命令时i2cdetect -y 1,我得到了这个结果。在此处输入图像描述

现在我运行这个 Python 代码

#!/usr/bin/env python

import smbus
import time
import math
from math import sin, cos, pi

bus = smbus.SMBus(1)

print bus

ACC_ADRESS = 0x53

acc_x = 0.0
acc_y = 0.0
acc_z = 0.0


def writeACC (register, value):
    bus.write_byte_data(ACC_ADRESS, register, value)
    return -1

def readACC_byte ( addr):
    return bus.read_byte_data(ACC_ADRESS, addr)


def readACC_word (addr):
    LSB = bus.read_byte_data(ACC_ADRESS, addr)
    MSB = bus.read_byte_data(ACC_ADRESS, addr + 1)

    val = (MSB << 8) | LSB
    return val


def setupACC ():
    # Sleep mode
    writeACC(0x2D, 0)
    # Mesurement mode
    writeACC(0x2D, 8)
    # enable Autu sleep mode
    writeACC(0x2D, 16)

    while True:
        time.sleep(0.1)
        acc_x = readACC_word(0x32)
        acc_y = readACC_word(0x34)
        acc_z = readACC_word(0x36)

        print "Acc_x :\n", acc_x
        print "Acc_y :\n", acc_y
        print "Acc_z :\n", acc_z

        time.sleep(0.5)


if __name__ == '__main__':
    setupACC()

我在示波器中得到了这个结果在此处输入图像描述

由此推断我的I2C通信是成功的。但是在我打印的结果中没有显示任何价值 在此处输入图像描述

可以请帮助我面临的问题。我做错了什么吗?

谢谢你

4

1 回答 1

0

自动睡眠模式不应该处于活动状态。评论后 #writeACC(0x2D, 16) 工作正常。

于 2017-10-06T14:56:43.393 回答