Inhaltsverzeichnis:
- Schritt 1: Einige Shell-Befehle
- Schritt 2: Fall eins: I2c-Geräte haben dieselbe Adresse
- Schritt 3: Fall 2: Unterschiedliche I2c-Adressen
Video: Raspberry PI Mehrere I2C-Geräte - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:18
Frustriert, weil Sie in Ihrem Projekt nicht mehrere gleiche I2C-Geräte verwenden können. Keine Notwendigkeit, langsame Multiplexer zu verwenden. Der neueste Raspbian-Kernel unterstützt die Erstellung mehrerer I2C-Busse mit GPIO-Pins. Diese Lösung ist superschnell.
Schritt 1: Einige Shell-Befehle
Schließen Sie eines Ihrer i2c-Geräte an, während Ihr Raspberry Pi ausgeschaltet ist, starten Sie Ihren Raspberry Pi und führen Sie ihn aus
sudo i2cdetect -y 1
Sie sehen eine Tabelle wie in der beigefügten Abbildung. Ich habe einen BMP280 Temperatur- und Luftdrucksensor angeschlossen. Die i2c-Adresse ist laut Tabelle 0x76. Merken Sie sich diese Adresse.
Tun Sie dies für alle Ihre i2c-Geräte.
Schritt 2: Fall eins: I2c-Geräte haben dieselbe Adresse
Dies war immer der problematische Fall. Ein i2c-Bus kann mehrere Geräte verarbeiten, diese sollten jedoch unterschiedliche i2c-Adressen haben. Einige i2c-Geräte haben Jumper, um andere i2c-Adressen einzustellen, aber viele nicht. In diesem Fall können Sie einen i2c-Multiplexer (Hardware) verwenden, um i2c SDA (Daten) und SCL (Uhr) zu rotieren, oder Sie können einen zusätzlichen i2c-Bus oder mehr erstellen.
Ich werde zwei zusätzliche Busse erstellen, nl Bus 3 und 4
öffne das cli und starte
cd /boot
sudo nano config.txt
Fügen Sie die folgende Codezeile hinzu, vorzugsweise in dem Abschnitt, in dem spi und i2c aktiviert sind.
dtoverlay=i2c-gpio, bus=4, i2c_gpio_delay_us=1, i2c_gpio_sda=23, i2c_gpio_scl=24
Diese Leitung erstellt einen zusätzlichen i2c-Bus (Bus 4) auf GPIO 23 als SDA und GPIO 24 als SCL (GPIO 23 und 24 sind Standard)
Fügen Sie auch die folgende Zeile hinzu, um den i2c-Bus 3 zu erstellen
dtoverlay=i2c-gpio, bus=3, i2c_gpio_delay_us=1, i2c_gpio_sda=17, i2c_gpio_scl=27
GPIO 17 ist der SDA und GPIO 27 ist der SCL für den i2c-Bus 4.
Tippe auf X zum Beenden.
Hinweis zur Busnummerierung und Bestellung:
Verwenden Sie niemals Bus 0 und 2, es wird für andere Dinge im Board verwendet, wie Eprom auf Hüten usw
Für die Raspbian-Version vom April 2019:
Sie sollten in Ihrer config.txt immer mit dem höchsten Bus (hier Bus 4) beginnen und sich bis zum niedrigsten Bus (Bus 3) durcharbeiten.
Der niedrigste Bus muss immer Bus 3 sein
Wenn Sie 5 zusätzliche Busse benötigen, müssen die Busse in der Reihenfolge 7, 6, 5, 4, 3. sein
Dieses Problem bei der Busbestellung war nicht da, als dieses Instructable ursprünglich geschrieben wurde. Es scheint, als ob Änderungen am Kernel vorgenommen wurden.
Fahren Sie Ihren PI herunter, schalten Sie ihn aus. Schließen Sie Ihre i2c-Geräte an Bus 4 (SDA an GPIO 23 und SCL an GPIO 24) und die anderen an i2c-Bus 3 (SDA an GPIO 17 und SCL an GPIO 27) an.
Pi einschalten.
Lauf:
sudo i2cdetect -l (Kleinschreibung L)
Sie sehen nun, dass auch i2c-Bus 3 und 4 aufgeführt sind. Außerdem laufen:
sudo i2cdetect -y 3
sudo i2cdetect -y 4
Jetzt können Sie Ihren Sensor in Ihrer Programmiersprache verwenden. Denken Sie daran, die richtigen i2c-Busse anzugeben.
Attach ist ein Beispiel für den beliebten BMP280 Temperatur- und Drucksensor. Kein Multiplexer kann 2 BMP280s so schnell lesen.
Ein Beispiel für 2 Sensirion SDP 810 Sensoren ist ebenfalls beigefügt. Arbeitet wieder viel schneller als der Multiplexer, den ich in der Vergangenheit verwendet habe
Ich habe Python-Code erstellt, um zwei neue BMP388s von adafruit zu lesen.
Möglicherweise füge ich in Zukunft auch andere Sensoren zu https://github.com/JJSlabbert/Raspberry_PI_i2C_conficts hinzu
Schritt 3: Fall 2: Unterschiedliche I2c-Adressen
Einfach. i2c ist ein Bus. Ein Buszweck besteht darin, mit mehreren Geräten zu kommunizieren. Schließen Sie die Geräte parallel an denselben i2c-Bus an. Sie können Bus eins benutzen.
Lauf:
sudo i2cdetect -y 1
Sie sehen die aufgelisteten Geräte.
Empfohlen:
So installieren Sie Raspbian OS in Raspberry Pi mit NOOBS-Software und Smartphone.: 6 Schritte
So installieren Sie Raspbian OS in Raspberry Pi mit NOOBS-Software und Smartphone.: Hallo zusammen! Heute zeige ich Ihnen in diesem Tutorial, wie Sie Raspbian OS in Raspberry Pi mit NOOBS-Software und Smartphone einfach installieren
Windows 10 auf einem Raspberry Pi zum Laufen bringen – wikiHow
So funktioniert Windows 10 auf einem Raspberry Pi
So richten Sie einen Raspberry Pi ein und verwenden ihn – wikiHow
So richten Sie einen Raspberry Pi ein und verwenden ihn: Für die Leser der Zukunft sind wir im Jahr 2020. Das Jahr, in dem Sie, wenn Sie das Glück haben, gesund zu sein und nicht mit Covid-19 infiziert sind, plötzlich , hat viel mehr Freizeit, als du dir jemals vorgestellt hast. Wie kann ich mich also nicht zu dumm beschäftigen? Oh ja
Raspbian in Raspberry Pi 3 B ohne HDMI installieren - Erste Schritte mit Raspberry Pi 3B - Einrichten Ihres Raspberry Pi 3: 6 Schritte
Raspbian in Raspberry Pi 3 B ohne HDMI installieren | Erste Schritte mit Raspberry Pi 3B | Einrichten Ihres Raspberry Pi 3: Wie einige von Ihnen wissen, sind Raspberry Pi-Computer ziemlich großartig und Sie können den gesamten Computer nur auf einer einzigen winzigen Platine bekommen. Das Raspberry Pi 3 Model B verfügt über einen Quad-Core 64-Bit ARM Cortex A53 mit 1,2 GHz getaktet. Damit ist der Pi 3 ungefähr 50
So richten Sie mehrere Monitore unter Linux ein – wikiHow
So richten Sie mehrere Monitore in Linux ein: Dieses Tutorial zeigt Ihnen, wie Sie ein Multi-Head-System in den meisten Linux-Distributionen, hauptsächlich Ubuntu, einrichten. Bitte beachte, dass dies noch weitgehend unvollendet ist