ADXL345を読む

ADXL345(3軸加速度センサー)を読み取ります。
ADXL345(3軸加速度センサー)
配線図
実際の配線
MicroPythonプログラムprogram
from machine import Pin, I2C
import time
import ustruct
# 本体内LED をセットアップ
led= machine.Pin('LED', machine.Pin.OUT)
# Constants
ADXL345_ADDRESS = 0x53
ADXL345_POWER_CTL = 0x2D
ADXL345_DATA_FORMAT = 0x31
ADXL345_DATAX0 = 0x32
# Initialize I2C
i2c = I2C(0, sda=Pin(8), scl=Pin(9), freq=400000)
# Initialize ADXL345
def init_adxl345():
i2c.writeto_mem(ADXL345_ADDRESS, ADXL345_POWER_CTL, bytearray([0x08])) # Set bit 3 to 1 to enable measurement mode
i2c.writeto_mem(ADXL345_ADDRESS, ADXL345_DATA_FORMAT, bytearray([0x0B])) # Set data format to full resolution, +/- 16g
# Read acceleration data
def read_accel_data():
data = i2c.readfrom_mem(ADXL345_ADDRESS, ADXL345_DATAX0, 6)
x, y, z = ustruct.unpack('<3h', data)
return x, y, z
# Main loop
init_adxl345()
while True:
x, y, z = read_accel_data()
print("X: {}, Y: {}, Z: {}".format(x, y, z))
if x > 10:
print ('ok')
led.high()
time.sleep( 1 )
else:
led.low()
time.sleep( 1 )
print('x',x)
time.sleep(1)
実行
自由研究

テンテン
X,Y,Zの値に応じてLEDを光らせてみましよう。




