Съдържание:
- Стъпка 1: Някои команди на Shell
- Стъпка 2: Първи случай: Устройствата I2c имат същия адрес
- Стъпка 3: Случай 2: Различни I2c адреси
Видео: Raspberry PI множество I2C устройства: 3 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:52
Разочарован, защото не можете да използвате множество от едни и същи I2C устройства във вашия проект. Няма нужда да използвате бавни мултиплексори. Най -новото raspbian ядро поддържа създаването на множество I2C шини, използващи GPIO пинове. Това решение е супер бързо.
Стъпка 1: Някои команди на Shell
Свържете едно от вашите i2c устройства, докато вашият малинов pi е, стартирайте си малинов pi и стартирайте
sudo i2cdetect -y 1
Ще видите таблица, както на прикачената фигура. Прикачих сензор за температура и барометрично налягане BMP280. Адресът i2c е 0x76 според таблицата. Забележете този адрес.
Направете това за всички ваши i2c устройства.
Стъпка 2: Първи случай: Устройствата I2c имат същия адрес
Това винаги е бил проблемният случай. I2c шината може да обработва множество устройства, но те трябва да имат различни i2c адреси. Някои i2c устройства имат джъмпери за задаване на други i2c адреси, но много от тях не. В този случай можете да използвате i2c мултиплексор (хардуер), за да завъртите i2c SDA (данни) и SCL (часовник) или можете да създадете допълнителна i2c шина или повече.
Ще създам два допълнителни автобуса, nl автобус 3 и 4
Отворете cli и тичайте
cd /boot
sudo nano config.txt
Добавете следния ред код, за предпочитане в секцията, където spi и i2c са активирани.
dtoverlay = i2c-gpio, автобус = 4, i2c_gpio_delay_us = 1, i2c_gpio_sda = 23, i2c_gpio_scl = 24
Този ред ще създаде допълнителна i2c шина (шина 4) на GPIO 23 като SDA и GPIO 24 като SCL (GPIO 23 и 24 са по подразбиране)
Също така добавете следния ред, за да създадете i2c шина 3
dtoverlay = i2c-gpio, автобус = 3, i2c_gpio_delay_us = 1, i2c_gpio_sda = 17, i2c_gpio_scl = 27
GPIO 17 ще бъде SDA, а GPIO 27 ще бъде SCL за i2c шина 4.
Напишете контрол X, за да излезете.
Забележка относно номерацията и реда на автобуса:
Никога не използвайте автобус 0 и 2, той се използва за други неща в дъската като eprom на шапки и т.н.
За изданието на raspbian през април 2019 г.:
Винаги трябва да започвате с най -високата шина (в този случай автобус 4) във вашия config.txt и да работите до най -ниската шина (автобус 3).
Най -ниската шина винаги трябва да е автобус 3
Ако имате нужда от 5 допълнителни автобуса, автобусите трябва да се движат по реда на 7, 6, 5, 4, 3
Този въпрос относно поръчката на автобус не е съществувал, когато този Instructable е написан първоначално. Изглежда, че са направени промени в ядрото.
Изключете вашия PI, включете го. Свържете вашите i2c устройства към шина 4 (SDA към GPIO 23 и SCL към GPIO 24), а другото към i2c шина 3 (SDA към GPIO 17 и SCL към GPIO 27).
Включете pi.
Бягай:
sudo i2cdetect -l (малки букви L)
Сега ще видите, че i2c автобус 3 и 4 също е в списъка. Също така изпълнете:
sudo i2cdetect -y 3
sudo i2cdetect -y 4
Сега можете да използвате вашия сензор на вашия език за програмиране. Не забравяйте да посочите правилните шини i2c.
Attach е пример за популярния сензор за температура и налягане BMP280. Никой мултиплексор не може да прочете 2 BMP280s толкова бързо.
Приложен е и пример за 2 сензора Sensirion SDP 810. Отново работи много по -бързо от мултиплексора, който използвах в миналото
Създадох python код за четене на два нови BMP388 от adafruit.
В бъдеще мога да добавя и други сензори към
Стъпка 3: Случай 2: Различни I2c адреси
Прост. i2c е автобус. Представителят на автобус трябва да комуникира с множество устройства. Свържете устройствата паралелно към същата i2c шина. Можете да използвате автобус едно.
Бягай:
sudo i2cdetect -y 1
Ще видите изброените устройства.
Препоръчано:
Премахване на фона на множество изображения с помощта на Photoshop 2020: 5 стъпки
Премахване на фона на множество изображения с помощта на Photoshop 2020: Премахването на фона на картина е супер лесно сега! Ето как да използвате Adobe Photoshop 2020, за да премахнете фона на множество (групови) изображения с помощта на прост скрипт
Arduino Connect множество I2C устройства: 6 стъпки
Arduino Connect множество I2C устройства: В този урок ще научим как да свързваме няколко модула с I2C връзка към arduino. Гледайте видеото! В нашия случай ще използваме 4 OLED дисплея като пример, но можете да използвате всякакви други I2C модули/ сензори, ако желаете. Забележка: 4 OLED дисплея ко
Урок: Как Arduino контролира множество устройства с един и същ адрес, използвайки TCA9548A I2C мултиплексор: 3 стъпки
Урок: Как Arduino контролира множество устройства с един и същ адрес, използвайки мултиплексор TCA9548A I2C: Описание: Модулът мултиплексор TCA9548A I2C трябва да даде възможност за свързване на устройства със същия I2C адрес (до 8 същия адрес I2C), свързани към един микроконтролер. Мултиплексорът действа като вратар, прехвърляйки командите към избрания набор от
Управление на множество светодиоди с Python и GPIO щифтовете на Raspberry Pi: 4 стъпки (със снимки)
Управление на множество светодиоди с Python и GPIO щифтовете на Raspberry Pi: Тази инструкция демонстрира как да контролирате няколко GPIO пина на вашия RaspberryPi, за да захранвате 4 светодиода. Той също така ще ви запознае с параметри и условни изявления в Python
Множество твърди дискове или оптични устройства в компютър, които наистина не могат: 8 стъпки
Множество твърди дискове или оптични устройства в компютър, които наистина не могат: ПЪРВИ ЕВРАСИ Така че направих тази инструкция след години на тролене и четене наоколо най -накрая имах смелостта да си направя. Накратко ще ви покажа как да инсталирате хардуер (в този случай два IDE твърди диска и две IDE оптични устройства) в IDE m