Как передать адреса I2 C в код Adafruit Circuit Python? (Работает ADS1115) - PullRequest
1 голос
/ 06 февраля 2020

Я пытаюсь запустить два Adafruit ADS1115 с одного Raspberry Pi, используя два адреса I2 C (0x48, 0x49). Адрес для каждого устройства можно установить, привязав высокий контакт ADDR (0x49) или оставив его плавающим (по умолчанию 0x48). Я подтвердил, что каждая плата работает, когда адрес установлен на 0x48, а запуск «i2cdetect 1» подтверждает, что обе платы подключены по правильным адресам.

Я могу успешно запустить этот пример код

Мой вопрос таков: как получить код для чтения с адреса I2 C с адреса 0x49 вместо 0x48? Я не могу найти документацию нигде. Пожалуйста, сообщите.

Ответы [ 2 ]

0 голосов
/ 07 февраля 2020

Ага!
ads1 = ADS.ADS1115(i2c, address=0x49)

Источник: https://github.com/adafruit/Adafruit_CircuitPython_ADS1x15/issues/20

0 голосов
/ 07 февраля 2020

Поскольку существует библиотека Python, применяются правила языка Python, в частности OOP с наследованием классов. При этом класс ADS1115 унаследован от ADS1x15, который, в свою очередь, имеет метод __init__() (в OOP конструктор ), определенный следующим образом:

def __init__(self, address=ADS1x15_DEFAULT_ADDRESS, i2c=None, **kwargs):

, что означает, что он знает как минимум два позиционных аргумента с именами address и i2c со значениями по умолчанию ADS1x15_DEFAULT_ADDRESS и None соответственно. Итак, вам нужно в своем коде переопределить их, т.е. вместо ads = ADS.ADS1115(i2c) использовать

ads = ADS.ADS1115(address=0x48, i2c=i2c)

Для второго поставить туда 0x49.

...