# This is an example on how to access accelerometer on # PyBoard directly using I2C bus. As such, it's more # intended to be an I2C example, rather than accelerometer # example. For the latter, using pyb.Accel class is # much easier. from machine import Pin from machine import I2C import time # Accelerometer needs to be powered on first. Even # though signal is called "AVDD", and there's separate # "DVDD", without AVDD, it won't event talk on I2C bus. accel_pwr = Pin("MMA_AVDD") accel_pwr.value(1) i2c = I2C(1, baudrate=100000) addrs = i2c.scan() print("Scanning devices:", [hex(x) for x in addrs]) if 0x4C not in addrs: print("Accelerometer is not detected") ACCEL_ADDR = 0x4C ACCEL_AXIS_X_REG = 0 ACCEL_MODE_REG = 7 # Now activate measurements i2c.mem_write(b"\x01", ACCEL_ADDR, ACCEL_MODE_REG) print("Try to move accelerometer and watch the values") while True: val = i2c.mem_read(1, ACCEL_ADDR, ACCEL_AXIS_X_REG) print(val[0]) time.sleep(1)