Innholdsfortegnelse:
- Trinn 1: Noen Shell -kommandoer
- Trinn 2: Sak 1: I2c -enheter har samme adresse
- Trinn 3: Sak 2: forskjellige I2c -adresser
Video: Bringebær PI Flere I2C -enheter: 3 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:23
Frustrert fordi du ikke kan bruke flere av de samme I2C -enhetene i prosjektet ditt. Du trenger ikke å bruke sakte multiplexere. Den siste raspbian -kjernen støtter opprettelsen av flere I2C -busser ved hjelp av GPIO -pins. Denne løsningen er superrask.
Trinn 1: Noen Shell -kommandoer
Koble til en av i2c -enhetene dine mens bringebærpi er av, start bringebærpien og kjør
sudo i2cdetect -y 1
Du vil se et bord som i vedleggsfiguren. Jeg har festet en BMP280 temp og barometrisk trykksensor. I2c -adressen er 0x76 i henhold til tabellen. Legg merke til denne adressen.
Gjør dette for alle i2c -enhetene dine.
Trinn 2: Sak 1: I2c -enheter har samme adresse
Dette var alltid den problematiske saken. En i2c -buss kan håndtere flere enheter, men de bør ha forskjellige i2c -adresser. Noen i2c -enheter har hoppere for å angi andre i2c -adresser, men mange gjør det ikke. I dette tilfellet kan du bruke en i2c multiplexer (maskinvare) til å rotere i2c SDA (Data) og SCL (Clock), eller du kan opprette en ekstra i2c -buss eller mer.
Jeg skal lage to tilleggsbusser, nl buss 3 og 4
Åpne cli og kjør
cd /oppstart
sudo nano config.txt
Legg til følgende kodelinje, helst i delen der spi og i2c er aktivert.
dtoverlay = i2c-gpio, buss = 4, i2c_gpio_delay_us = 1, i2c_gpio_sda = 23, i2c_gpio_scl = 24
Denne linjen vil opprette en ekstra i2c -buss (buss 4) på GPIO 23 som SDA og GPIO 24 som SCL (GPIO 23 og 24 er standard)
Legg også til følgende linje for å lage i2c -buss 3
dtoverlay = i2c-gpio, buss = 3, i2c_gpio_delay_us = 1, i2c_gpio_sda = 17, i2c_gpio_scl = 27
GPIO 17 vil være SDA og GPIO 27 vil være SCL for i2c buss 4.
Rør kontroll X for å gå ut.
Merknad om bussnummerering og rekkefølge:
Bruk aldri buss 0 og 2, den er bruk for andre ting i brettet som eprom på hatter osv
For raspbian -utgivelsen i april 2019:
Du bør alltid starte med den høyeste bussen (buss 4 i dette tilfellet) i config.txt og gå videre til den laveste bussen (buss 3).
Den laveste bussen må alltid være buss 3
Hvis du trenger 5 ekstra busser, må bussene være i størrelsesorden 7, 6, 5, 4, 3
Dette problemet om bussordre var ikke der da denne instruksjonsboken opprinnelig ble skrevet. Det virker som om det ble gjort endringer i kjernen.
Slå av PI -en, slå den av. Koble i2c -enhetene dine til buss 4 (SDA til GPIO 23 og SCL til GPIO 24) og den andre til i2c -buss 3 (SDA til GPIO 17 og SCL til GPIO 27).
Slå på pi.
Løpe:
sudo i2cdetect -l (liten bokstav L)
Du vil nå se at i2c buss 3 og 4 også er oppført. Kjør også:
sudo i2cdetect -y 3
sudo i2cdetect -y 4
Nå kan du bruke sensoren din i programmeringsspråket. Husk å angi riktige i2c -busser.
Attach er et eksempel på den populære BMP280 temperatur- og trykksensoren. Ingen multiplexer kan lese 2 BMP280 -er så fort.
Et eksempel på 2 Sensirion SDP 810 sensorer er også vedlagt. Jobber igjen mye raskere enn multiplexeren jeg brukte tidligere
Jeg opprettet python -kode for å lese to nye BMP388 fra adafruit.
Jeg kan også legge til andre sensorer i fremtiden på
Trinn 3: Sak 2: forskjellige I2c -adresser
Enkel. i2c er en buss. En bussformål er å kommunisere med flere enheter. Koble enhetene parallelt med den samme i2c -bussen. Du kan bruke buss en.
Løpe:
sudo i2cdetect -y 1
Du vil se enhetene oppført.
Anbefalt:
Grensesnitt GPS -modul med bringebær Pi: 10 trinn
Grensesnitt GPS -modul med Raspberry Pi: Hei folkens! Ønsker du å koble til en GPS -modul med Raspberry Pi? Men har du problemer med å gjøre det? "Ikke bekymre deg, jeg er her for å hjelpe deg! Du kan starte med å bruke følgende deler:
Lese og tegne lys- og temperatursensordata med bringebær Pi: 5 trinn
Lese og tegne lys- og temperatursensordata med Raspberry Pi: I denne instruksjonsboken lærer du hvordan du leser en lys- og temperatursensor med bringebær pi og ADS1115 analog til digital omformer og tegner den med matplotlib. La oss starte med de nødvendige materialene
Harry Potter IR -fjernkontroll med bringebær Pi: 5 trinn
Harry Potter IR -fjernkontroll med Raspberry Pi: Denne instruksen beskriver hvordan du lager et enkelt Python -manus som styres av Harry Potter universelle fjernkontrollstav laget av The Noble Collection. Det krever en Raspberry Pi som kontrolleren og en Flirc USB IR -mottaker i kombinasjon
Opplæring: Hvordan Arduino styrer flere samme adresseenheter ved å bruke TCA9548A I2C Multiplexer: 3 trinn
Opplæring: Hvordan Arduino styrer flere samme adressenheter ved å bruke TCA9548A I2C Multiplexer: Beskrivelse: TCA9548A I2C Multiplexer -modulen gjør det mulig å koble til enheter med samme I2C -adresse (opptil 8 samme adresse I2C) koblet til en mikrokontroller. Multiplexeren fungerer som en portvakt og sender kommandoene til det valgte settet
Ultra Hiper Super Robot Que Pinta, med flere trinn: 7 trinn
Ultra Hiper Super Robot Que Pinta, nada Más: Teknologien utvikler seg for tiden veldig raskt som hjelper og samarbeider i arbeidet til en person. Når vi vet dette, har vi laget en prototype tegnerobot; Vi vet at dette kan brukes i graveringsindustrien, denne roboten letter arbeidet