Innehållsförteckning:
- Steg 1: Några Shell -kommandon
- Steg 2: Fall ett: I2c -enheter har samma adress
- Steg 3: Fall 2: Olika I2c -adresser
Video: Hallon PI Flera I2C -enheter: 3 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:44
Frustrerad eftersom du inte kan använda multiplar av samma I2C -enheter i ditt projekt. Du behöver inte använda långsamma multiplexer. Den senaste raspbian -kärnan stöder skapandet av flera I2C -bussar med GPIO -pins. Denna lösning är supersnabb.
Steg 1: Några Shell -kommandon
Anslut en av dina i2c -enheter medan din hallonpi är av, starta din hallonpi och kör
sudo i2cdetect -y 1
Du kommer att se en tabell som i bifogade figur. Jag har kopplat en BMP280 temp och barometrisk trycksensor. I2c -adressen är 0x76 enligt tabellen. Notera den här adressen.
Gör detta för alla dina i2c -enheter.
Steg 2: Fall ett: I2c -enheter har samma adress
Detta var alltid det problematiska fallet. En i2c -buss kan hantera flera enheter, men de bör ha olika i2c -adresser. Vissa i2c -enheter har hoppare för att ställa in andra i2c -adresser, men många gör det inte. I det här fallet kan du använda en i2c -multiplexer (hårdvara) för att rotera i2c SDA (Data) och SCL (Clock) eller så kan du skapa en extra i2c -buss eller mer.
Jag kommer att skapa två extra bussar, nl buss 3 och 4
Öppna cli och kör
cd /boot
sudo nano config.txt
Lägg till följande kodrad, helst i avsnittet där spi och i2c är aktiverat.
dtoverlay = i2c-gpio, buss = 4, i2c_gpio_delay_us = 1, i2c_gpio_sda = 23, i2c_gpio_scl = 24
Denna linje skapar en extra i2c -buss (buss 4) på GPIO 23 som SDA och GPIO 24 som SCL (GPIO 23 och 24 är standard)
Lägg också till följande rad för att skapa i2c -buss 3
dtoverlay = i2c-gpio, buss = 3, i2c_gpio_delay_us = 1, i2c_gpio_sda = 17, i2c_gpio_scl = 27
GPIO 17 blir SDA och GPIO 27 blir SCL för i2c -buss 4.
Rör kontroll X för att gå ur.
Anmärkning om bussnumreringen och ordningen:
Använd aldrig buss 0 och 2, den kan användas för andra saker i tavlan som eprom på hattar etc.
För raspbian -utgåvan i april 2019:
Du bör alltid börja med den högsta bussen (buss 4 i detta fall) i din config.txt och gå vidare till den lägsta bussen (buss 3).
Den lägsta bussen måste alltid vara buss 3
Om du behöver 5 extra bussar måste bussarna vara i storleksordningen 7, 6, 5, 4, 3
Denna fråga om bussorder fanns inte när denna instruktionsbok ursprungligen skrevs. Det verkar som om ändringar gjordes i kärnan.
Stäng av din PI, slå på den. Anslut dina i2c -enheter till buss 4 (SDA till GPIO 23 och SCL till GPIO 24) och den andra till i2c -buss 3 (SDA till GPIO 17 och SCL till GPIO 27).
Slå på pi.
Springa:
sudo i2cdetect -l (gemener L)
Du kommer nu att se att i2c buss 3 och 4 också är listad. Kör också:
sudo i2cdetect -y 3
sudo i2cdetect -y 4
Nu kan du använda din sensor i ditt programmeringsspråk. Kom ihåg att ange rätt i2c -bussar.
Attach är ett exempel på den populära BMP280 temperatur- och trycksensorn. Ingen multiplexer kan läsa 2 BMP280s så snabbt.
Ett exempel på 2 Sensirion SDP 810 -sensorer är också bifogat. Återigen fungerar mycket snabbare än multiplexern jag använde tidigare
Jag skapade pythonkod för att läsa två nya BMP388 från adafruit.
Jag kan också lägga till andra sensorer i framtiden till
Steg 3: Fall 2: Olika I2c -adresser
Enkel. i2c är en buss. En buss är avsedd att kommunicera med flera enheter. Anslut enheterna parallellt med samma i2c -buss. Du kan använda buss ett.
Springa:
sudo i2cdetect -y 1
Du kommer att se enheterna listade.
Rekommenderad:
Ta bort bakgrunden för flera bilder med Photoshop 2020: 5 steg
Ta bort bakgrunden för flera bilder med Photoshop 2020: Att ta bort bakgrunden på en bild är superenkelt nu! Så här använder du Adobe Photoshop 2020 för att ta bort bakgrunden till flera (batch) bilder med ett enkelt skript
Arduino Hur man ansluter flera servomotorer - PCA9685 Handledning: 6 steg
Arduino Hur man ansluter flera servomotorer - PCA9685 Handledning: I denna handledning lär vi oss hur du ansluter flera servomotorer med PCA9685 -modul och arduino.PCA9685 -modul är mycket bra när du behöver ansluta flera motorer, du kan läsa mer om det här https : //www.adafruit.com/product/815Titta på Vi
Så här aktiverar du flera fönster i alla Android -telefoner: 6 steg
Så här aktiverar du Multiwindow i vilken Android -telefon som helst: Multiwindow -läge är ett hemligt eller betaläge på Android 6.0 Marshmallow.Denna funktion är inte tillgänglig för alla mobiler.Men det finns en teknik för att aktivera multiwindow -läge i Android 6.0 Marshmallow.Krav: 1. Telefonen måste vara rotad.2. Android version
Hur man läser flera analoga värden med en analog stift: 6 steg (med bilder)
Hur man läser flera analoga värden med en analog stift: I den här självstudien kommer jag att visa dig hur du läser flera analoga värden med bara en analog ingångsstift
Handledning: Hur Arduino styr flera samma adressenheter med hjälp av TCA9548A I2C -multiplexer: 3 steg
Handledning: Hur Arduino styr flera samma adressenheter med hjälp av TCA9548A I2C -multiplexer: Beskrivning: TCA9548A I2C -multiplexermodulen gör det möjligt att ansluta enheter med samma I2C -adress (upp till 8 samma adress I2C) ansluten till en mikrokontroller. Multiplexorn fungerar som en grindvakt och skickar kommandona till den valda uppsättningen