Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

IOExpander: add I2C address change example #850

Merged
merged 1 commit into from
Sep 29, 2023
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 30 additions & 0 deletions micropython/examples/breakout_ioexpander/set_address.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
"""
This example shows you how to change the I2C address of an IO Expander breakout (or any of our other Nuvoton based breakouts).
"""

from pimoroni_i2c import PimoroniI2C
from pimoroni import BREAKOUT_GARDEN_I2C_PINS # or PICO_EXPLORER_I2C_PINS or HEADER_I2C_PINS

# enter the current and desired I2C addresses here
EXISTING_ADDRESS = 0x18
NEW_ADDRESS = 0x20

i2c = PimoroniI2C(**BREAKOUT_GARDEN_I2C_PINS)

# Uncomment these lines to change the address
# from breakout_ioexpander import BreakoutIOExpander
# ioe = BreakoutIOExpander(i2c, address=EXISTING_ADDRESS)
# ioe.set_address(NEW_ADDRESS)

# List all the connected I2C devices so we can see the change
print('Scanning i2c bus')
devices = i2c.scan()

if len(devices) == 0:
print("No i2c device !")

else:
print('i2c devices found:', len(devices))

for device in devices:
print("Decimal address: ", device, " | Hexa address: ", hex(device))