Simple test¶
Ensure your device works with this simple test.
import time
from machine import Pin, I2C
from micropython_icg20660 import icg20660
i2c = I2C(1, sda=Pin(2), scl=Pin(3)) # Correct I2C pins for RP2040
icg = icg20660.ICG20660(i2c)
while True:
accx, accy, accz = icg.acceleration
print(f"x:{accx:.2f}m/s2, y:{accy:.2f}m/s2, z{accz:.2f}m/s2")
gyrox, gyroy, gyroz = icg.gyro
print(f"x:{gyrox:.2f}°/s, y:{gyroy:.2f}°/s, z{gyroz:.2f}°/s")
time.sleep(0.5)
Gyro dlpf mode settings¶
Example showing the Gyro dlpf mode setting
import time
from machine import Pin, I2C
from micropython_icg20660 import icg20660
i2c = I2C(1, sda=Pin(2), scl=Pin(3)) # Correct I2C pins for RP2040
icg = icg20660.ICG20660(i2c)
icg.gyro_dlpf_mode = icg20660.GYRO_DLPF_ENABLED
while True:
for gyro_dlpf_mode in icg20660.gyro_dlpf_mode_values:
print("Current Gyro dlpf mode setting: ", icg.gyro_dlpf_mode)
for _ in range(10):
gyrox, gyroy, gyroz = icg.gyro
print(f"x:{gyrox:.2f}°/s, y:{gyroy:.2f}°/s, z{gyroz:.2f}°/s")
print()
time.sleep(0.5)
icg.gyro_dlpf_mode = gyro_dlpf_mode
Dlpf configuration settings¶
Example showing the Dlpf configuration setting
import time
from machine import Pin, I2C
from micropython_icg20660 import icg20660
i2c = I2C(1, sda=Pin(2), scl=Pin(3)) # Correct I2C pins for RP2040
icg = icg20660.ICG20660(i2c)
icg.gyro_dlpf_mode = icg20660.GYRO_DLPF_ENABLED
icg.gyro_dlpf_configuration = icg20660.DLPF_CFG_0
while True:
for dlpf_configuration in icg20660.gyro_dlpf_configuration_values:
print("Current Dlpf configuration setting: ", icg.dlpf_configuration)
for _ in range(10):
gyrox, gyroy, gyroz = icg.gyro
print(f"x:{gyrox:.2f}°/s, y:{gyroy:.2f}°/s, z{gyroz:.2f}°/s")
print()
time.sleep(0.5)
icg.gyro_dlpf_configuration = dlpf_configuration
Gyro full scale settings¶
Example showing the Gyro full scale setting
import time
from machine import Pin, I2C
from micropython_icg20660 import icg20660
i2c = I2C(1, sda=Pin(2), scl=Pin(3)) # Correct I2C pins for RP2040
icg = icg20660.ICG20660(i2c)
icg.gyro_full_scale = icg20660.FS_125_DPS
while True:
for gyro_full_scale in icg20660.gyro_full_scale_values:
print("Current Gyro full scale setting: ", icg.gyro_full_scale)
for _ in range(10):
gyrox, gyroy, gyroz = icg.gyro
print(f"x:{gyrox:.2f}°/s, y:{gyroy:.2f}°/s, z{gyroz:.2f}°/s")
print()
time.sleep(0.5)
icg.gyro_full_scale = gyro_full_scale
Acceleration range settings¶
Example showing the Acceleration range setting
import time
from machine import Pin, I2C
from micropython_icg20660 import icg20660
i2c = I2C(1, sda=Pin(2), scl=Pin(3)) # Correct I2C pins for RP2040
icg = icg20660.ICG20660(i2c)
icg.acceleration_range = icg20660.RANGE_8G
while True:
for acceleration_range in icg20660.acceleration_range_values:
print("Current Acceleration range setting: ", icg.acceleration_range)
for _ in range(10):
accx, accy, accz = icg.acceleration
print(f"x:{accx:.2f}m/s2, y:{accy:.2f}m/s2, z{accz:.2f}m/s2")
print()
time.sleep(0.5)
icg.acceleration_range = acceleration_range