2017-10-06 7 views
0

私は加速度計ADXL3458とUbuntuのメイトで動作しているRaspberry Pi 3とのインターフェースを取ろうとしています。 I2C通信に必要なすべてのパッケージをインストールしました。私がこのコマンドを実行すると、i2cdetect -y 1この結果が得られます。 enter image description hereRaspbery Pi 3のI2Cをsmbusで使用

は、今私は、この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() 

を実行すると私は、オシロスコープenter image description here

私のI2C通信が成功した。この推論には、この結果を得ます。しかし、私が印刷している結果では、それに価値がないことを示しています。 enter image description here

私が直面している問題で助けてください。私が間違っていることは何ですか?

答えて

0

オートスリープモードがアクティブべきではありませんでしたありがとうございました。コメントしたところで #writeACC(0x2D, 16) は問題なく動作しています。

関連する問題