Sisällysluettelo:
- Vaihe 1: Jotkut Shell -komennot
- Vaihe 2: Tapaus yksi: I2c -laitteilla on sama osoite
- Vaihe 3: Tapaus 2: Erilaiset I2c -osoitteet
Video: Vadelma PI Useita I2C -laitteita: 3 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:01
Turhautunut, koska et voi käyttää useita I2C -laitteita projektissasi. Ei tarvitse käyttää hitaita multipleksereitä. Uusin raspbian -ydin tukee useiden I2C -väylien luomista GPIO -nastojen avulla. Tämä ratkaisu on erittäin nopea.
Vaihe 1: Jotkut Shell -komennot
Liitä yksi i2c -laitteistasi, kun vadelmapi on käynnissä, käynnistä vadelmapi ja käynnistä
sudo i2cdetect -y 1
Näet taulukon, kuten liitteenä olevassa kuvassa. Liitän BMP280 lämpötila- ja ilmanpaineanturin. Taulukon mukainen i2c -osoite on 0x76. Huomaa tämä osoite.
Tee tämä kaikille i2c -laitteillesi.
Vaihe 2: Tapaus yksi: I2c -laitteilla on sama osoite
Tämä oli aina ongelmallinen tapaus. I2c -väylä voi käsitellä useita laitteita, mutta niillä pitäisi olla erilaiset i2c -osoitteet. Joillakin i2c -laitteilla on hyppyjoukkoja muiden i2c -osoitteiden asettamiseksi, mutta monilla ei. Tässä tapauksessa voit käyttää i2c -multiplekseria (laitteisto) i2c SDA: n (data) ja SCL: n (kello) kiertämiseen tai voit luoda ylimääräisen i2c -väylän.
Luon kaksi lisäväylää, nl -väylän 3 ja 4
Avaa cli ja aja
cd /boot
sudo nano config.txt
Lisää seuraava koodirivi, mieluiten osioon, jossa spi ja i2c on käytössä.
dtoverlay = i2c-gpio, väylä = 4, i2c_gpio_delay_us = 1, i2c_gpio_sda = 23, i2c_gpio_scl = 24
Tämä linja luo täydentävän i2c -väylän (väylä 4) GPIO 23: ssa SDA: na ja GPIO 24: ssä SCL: nä (GPIO 23 ja 24 ovat oletusasetuksia)
Lisää myös seuraava rivi luodaksesi i2c -väylän 3
dtoverlay = i2c-gpio, väylä = 3, i2c_gpio_delay_us = 1, i2c_gpio_sda = 17, i2c_gpio_scl = 27
GPIO 17 on SDA ja GPIO 27 on SCL i2c -väylälle 4.
Poistu vetämällä ohjainta X.
Huomautus väylän numeroinnista ja järjestyksestä:
Älä koskaan käytä väylää 0 ja 2, sitä käytetään muihin taululla oleviin asioihin, kuten hattujen eprom jne
Huhtikuun 2019 raspbian -julkaisu:
Aloita aina korkeimmalla väylällä (väylä 4 tässä tapauksessa) config.txt -tiedostossasi ja jatka matalimpaan väylään (väylä 3).
Alimman väylän on aina oltava linja 3
Jos tarvitset 5 lisäbussia, bussien on oltava bi -luokkaa 7, 6, 5, 4, 3
Tätä väylän tilausta koskevaa ongelmaa ei ollut, kun tämä Instructable kirjoitettiin alun perin. Näyttää siltä, että ytimeen on tehty muutoksia.
Sammuta PI, kytke se pois. Liitä i2c -laitteet väylään 4 (SDA - GPIO 23 ja SCL - GPIO 24) ja toinen i2c -väylään 3 (SDA - GPIO 17 ja SCL - GPIO 27).
Kytke pi päälle.
Juosta:
sudo i2cdetect -l (pienet kirjaimet L)
Näet nyt, että myös i2c -väylät 3 ja 4 on lueteltu. Suorita myös:
sudo i2cdetect -y 3
sudo i2cdetect -y 4
Nyt voit käyttää anturia ohjelmointikielelläsi. Muista määrittää oikeat i2c -väylät.
Attach on esimerkki suositusta BMP280 -lämpötila- ja paineanturista. Kukaan multiplekseri ei voi lukea kahta BMP280: tä näin nopeasti.
Liitteenä on myös esimerkki kahdesta Sensirion SDP 810 -anturista. Jälleen toimii paljon nopeammin kuin aiemmin käyttämäni multiplekseri
Luin python -koodin lukemaan kaksi uutta BMP388: ta adafruitista.
Voin myös lisätä muita antureita tulevaisuudessa osoitteeseen
Vaihe 3: Tapaus 2: Erilaiset I2c -osoitteet
Yksinkertainen. i2c on bussi. Väylän tarkoitus on kommunikoida useiden laitteiden kanssa. Liitä laitteet rinnakkain samaan i2c -väylään. Voit käyttää väylää yksi.
Juosta:
sudo i2cdetect -y 1
Näet laitteet luettelossa.
Suositeltava:
Arduino Kuinka liittää useita servomoottoreita - PCA9685 Opetusohjelma: 6 vaihetta
Arduino Kuinka kytkeä useita servomoottoreita - PCA9685 -opetusohjelma: Tässä opetusohjelmassa opimme yhdistämään useita servomoottoreita PCA9685 -moduulin ja arduinon avulla. PCA9685 -moduuli on erittäin hyvä, kun haluat liittää useita moottoreita, voit lukea lisää tästä https : //www.adafruit.com/product/815Katso Vi
Kaavainlamppu - yksi lamppu, useita sävyjä: 5 vaihetta
Stencil -lamppu - yksi lamppu, monia sävyjä: Tämä opastettava opastaa tekemään yksinkertaisen lampun, jossa on vaihdettavat sävyt (lampunvarjostin)
Useita USB -portteja ilman piirilevyä: 4 vaihetta
Useita USB -portteja ilman piirilevyä: Tämä on toinen ohjeeni, ja tässä aion jakaa teille projektin, jossa voit tehdä useita USB -portteja tietokoneellesi, koska kun työskentelet kotoa käsin, sinulla on suuri ongelma käyttää monia laitteet kuten useimmat laitteet nyt h
Useita ATtiny85/13A -ohjelmoijia: 6 vaihetta
Useita ATtiny85/13A-ohjelmoijia: Oletko koskaan tehnyt projektin, kuten”LDR x Arduino UNO Automatic Light” tai vastaavan, joka käyttää vain 2-3 digitaalista I/O-porttia 32-nastaisesta mikrokontrolleristasi? prototyyppityö, mutta entä jos haluat viimeistellä tai tuottaa
Opetusohjelma: Kuinka Arduino hallitsee useita samoja osoitelaitteita TCA9548A I2C -multiplekserin avulla: 3 vaihetta
Opetusohjelma: Kuinka Arduino hallitsee useita samoja osoitelaitteita käyttämällä TCA9548A I2C -multiplekseriä: Kuvaus: TCA9548A I2C -multiplekserimoduuli mahdollistaa laitteiden yhdistämisen samaan I2C -osoitteeseen (enintään 8 samaa osoitetta I2C), jotka on kytketty yhteen mikro -ohjaimeen. Multiplekseri toimii portinvartijana ja siirtää komennot valittuun joukkoon