Sisukord:

Vaarika PI mitu I2C seadet: 3 sammu
Vaarika PI mitu I2C seadet: 3 sammu

Video: Vaarika PI mitu I2C seadet: 3 sammu

Video: Vaarika PI mitu I2C seadet: 3 sammu
Video: Мухоморный 🍄Трип Фиксирую на камеру. Очутился между двух миров🌍 Реальным и Мухоморным🙏 2024, November
Anonim
Vaarika PI mitu I2C seadet
Vaarika PI mitu I2C seadet
Vaarika PI mitu I2C seadet
Vaarika PI mitu I2C seadet

Pettunud, sest te ei saa oma projektis kasutada sama I2C -seadme mitu korda. Pole vaja kasutada aeglasi multipleksereid. Uusim raspbiani tuum toetab GPIO -kontaktide abil mitme I2C -siini loomist. See lahendus on ülikiire.

Samm 1: mõned Shell -käsud

Mõned Shelli käsud
Mõned Shelli käsud

Ühendage üks oma i2c -seadmetest, kui teie vaarika pi on, käivitage oma vaarika pi ja käivitage

sudo i2cdetect -y 1

Näete tabelit nagu lisatud joonisel. Mul on BMP280 temperatuuri ja õhurõhu andur. I2c aadress on vastavalt tabelile 0x76. Pange see aadress tähele.

Tehke seda kõigi oma i2c -seadmete puhul.

Samm: esimene juhtum: I2c -seadmetel on sama aadress

Esimene juhtum: I2c -seadmetel on sama aadress
Esimene juhtum: I2c -seadmetel on sama aadress

See oli alati problemaatiline juhtum. I2c siin saab hakkama mitme seadmega, kuid neil peaks olema erinevad i2c aadressid. Mõnel i2c -seadmel on teiste i2c -aadresside seadmiseks džemprid, kuid paljudel seda pole. Sel juhul võite kasutada i2c multiplekserit (riistvara), et pöörata i2c SDA -d (andmed) ja SCL -i (kell) või luua täiendav i2c -siin või rohkem.

Loon kaks täiendavat bussi, nl buss 3 ja 4

Avage cli ja käivitage

cd /boot

sudo nano config.txt

Lisage järgmine koodirida, eelistatavalt sektsiooni, kus spi ja i2c on lubatud.

dtoverlay = i2c-gpio, buss = 4, i2c_gpio_delay_us = 1, i2c_gpio_sda = 23, i2c_gpio_scl = 24

See liin loob GPIO 23 -s täiendava i2c -siini (siin 4) kui SDA ja GPIO 24 kui SCL (GPIO 23 ja 24 on vaikimisi)

Samuti lisage i2c siin 3 loomiseks järgmine rida

dtoverlay = i2c-gpio, buss = 3, i2c_gpio_delay_us = 1, i2c_gpio_sda = 17, i2c_gpio_scl = 27

GPIO 17 on SDA ja GPIO 27 on i2c bussi 4 SCL.

Väljumiseks puudutage juhtnuppu X.

Märkus busside nummerdamise ja järjekorra kohta:

Ärge kunagi kasutage bussi 0 ja 2, seda kasutatakse laua muude asjade jaoks, näiteks eprom mütsidel jne

Aprilli 2019 raspbiani väljalaske jaoks:

Peaksite alati alustama kõrgeima siiniga (antud juhul bussiga 4) oma konfiguratsioonis.txt ja jätkama madalaima siiniga (buss 3).

Madalaim buss peab alati olema buss 3

Kui vajate 5 lisabussi, peavad bussid olema bi suurusjärgus 7, 6, 5, 4, 3

Seda bussitellimuse probleemi ei olnud, kui see juhend oli algselt kirjutatud. Tundub, et kernelis on tehtud muudatusi.

Lülitage PI välja, lülitage see välja. Ühendage oma i2c -seadmed siiniga 4 (SDA GPIO 23 ja SCL GPIO 24 -ga) ja teine i2c siiniga 3 (SDA kuni GPIO 17 ja SCL GPIO 27 -ga).

Lülitage pi sisse.

Käivita:

sudo i2cdetect -l (väiketähed L)

Nüüd näete, et loendis on ka i2c buss 3 ja 4. Jookse ka:

sudo i2cdetect -y 3

sudo i2cdetect -y 4

Nüüd saate andurit kasutada oma programmeerimiskeeles. Ärge unustage täpsustada i2c siinid.

Attach on näide populaarsest BMP280 temperatuuri- ja rõhuandurist. Ükski multiplekser ei suuda nii kiiresti lugeda kahte BMP280.

Lisatud on ka kahe Sensirion SDP 810 anduri näide. Töötab jällegi palju kiiremini kui varem kasutatud multiplekser

Lõin python -koodi, et lugeda kahte uut BMP388 -d adafruitist.

Võin tulevikus lisada ka teisi andureid saidile

3. samm: juhtum 2: erinevad I2c -aadressid

Lihtne. i2c on buss. Bussi eesmärk on suhelda mitme seadmega. Ühendage seadmed paralleelselt sama i2c siiniga. Võite kasutada bussi nr 1.

Käivita:

sudo i2cdetect -y 1

Näete loetletud seadmeid.

Soovitan: