Satura rādītājs:
- 1. darbība. Dažas čaulas komandas
- 2. darbība. Pirmais gadījums: I2c ierīcēm ir viena adrese
- 3. darbība: 2. gadījums: dažādas I2c adreses
Video: Aveņu PI vairākas I2C ierīces: 3 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:56
Neapmierināts, jo savā projektā nevarat izmantot daudzkārtējas vienas un tās pašas I2C ierīces. Nav nepieciešams izmantot lēnos multipleksorus. Jaunākais raspbian kodols atbalsta vairāku I2C kopņu izveidi, izmantojot GPIO tapas. Šis risinājums ir super ātrs.
1. darbība. Dažas čaulas komandas
Pievienojiet vienu no savām i2c ierīcēm, kamēr jūsu aveņu pi ir, ieslēdziet savu aveņu pi un palaidiet
sudo i2cdetect -y 1
Jūs redzēsit tabulu, kas pievienota attēlā. Man ir pievienots BMP280 temp un barometriskā spiediena sensors. Saskaņā ar tabulu i2c adrese ir 0x76. Ievērojiet šo adresi.
Dariet to visām savām i2c ierīcēm.
2. darbība. Pirmais gadījums: I2c ierīcēm ir viena adrese
Tas vienmēr bija problemātiskais gadījums. I2c kopne var apstrādāt vairākas ierīces, taču tām vajadzētu būt atšķirīgām i2c adresēm. Dažām i2c ierīcēm ir džemperi citu i2c adrešu iestatīšanai, bet daudzām nav. Šajā gadījumā jūs varat izmantot i2c multipleksoru (aparatūru), lai pagrieztu i2c SDA (dati) un SCL (pulkstenis), vai arī varat izveidot papildu i2c kopni vai vairāk.
Es izveidošu divus papildu autobusus, 3. un 4. autobusu
Atveriet cli un palaidiet
cd /boot
sudo nano config.txt
Pievienojiet šādu koda rindu, vēlams sadaļā, kurā ir iespējoti spi un i2c.
dtoverlay = i2c-gpio, bus = 4, i2c_gpio_delay_us = 1, i2c_gpio_sda = 23, i2c_gpio_scl = 24
Šī līnija izveidos papildu i2c kopni (4. autobuss) GPIO 23 kā SDA un GPIO 24 kā SCL (GPIO 23 un 24 ir noklusējuma iestatījumi)
Pievienojiet arī šādu rindu, lai izveidotu i2c kopni 3
dtoverlay = i2c-gpio, bus = 3, i2c_gpio_delay_us = 1, i2c_gpio_sda = 17, i2c_gpio_scl = 27
GPIO 17 būs SDA un GPIO 27 būs SCL i2c 4. autobusam.
Lai izietu, nospiediet vadības pogu X.
Piezīme par autobusu numerāciju un secību:
Nekad neizmantojiet autobusu 0 un 2, tas ir paredzēts citām lietām, piemēram, eprom uz cepurēm utt
Raspbian versijai 2019. gada aprīlī:
Jums vienmēr jāsāk ar augstāko kopni (šajā gadījumā 4. autobusu) jūsu config.txt failā un jāiet līdz zemākajai kopnei (3. autobuss).
Zemākajam autobusam vienmēr jābūt 3. autobusam
Ja jums ir nepieciešami 5 papildu autobusi, autobusiem jābūt bi 7, 6, 5, 4, 3
Šī problēma saistībā ar autobusu pasūtījumu nebija, kad šī instrukcija sākotnēji tika uzrakstīta. Šķiet, ka kodolā ir veiktas izmaiņas.
Izslēdziet savu PI, izslēdziet to. Savienojiet savas i2c ierīces ar 4. autobusu (SDA līdz GPIO 23 un SCL uz GPIO 24), bet otru - ar i2c 3. autobusu (SDA līdz GPIO 17 un SCL līdz GPIO 27).
Ieslēdziet pi.
Palaist:
sudo i2cdetect -l (mazie burti L)
Tagad jūs redzēsit, ka ir iekļauts arī i2c 3. un 4. autobuss. Arī palaist:
sudo i2cdetect -y 3
sudo i2cdetect -y 4
Tagad sensoru varat izmantot savā programmēšanas valodā. Atcerieties norādīt pareizās i2c kopnes.
Attach ir populārā BMP280 temperatūras un spiediena sensora piemērs. Neviens multipleksors nevar nolasīt 2 BMP280 tik ātri.
Ir pievienots arī 2 Sensirion SDP 810 sensoru piemērs. Atkal strādā daudz ātrāk nekā multiplekseris, ko izmantoju agrāk
Es izveidoju pitona kodu, lai no adafruit lasītu divus jaunus BMP388.
Nākotnē es varu pievienot arī citus sensorus vietnei
3. darbība: 2. gadījums: dažādas I2c adreses
Vienkārši. i2c ir autobuss. Autobusu mērķis ir sazināties ar vairākām ierīcēm. Savienojiet ierīces paralēli vienai un tai pašai i2c kopnei. Jūs varat izmantot pirmo autobusu.
Palaist:
sudo i2cdetect -y 1
Jūs redzēsit uzskaitītās ierīces.
Ieteicams:
Arduino Connect vairākas I2C ierīces: 6 soļi
Arduino Connect vairākas I2C ierīces: šajā apmācībā mēs uzzināsim, kā arduino savienot vairākus moduļus ar I2C savienojumu. Noskatieties video! Mūsu gadījumā kā piemēru mēs izmantosim 4 OLED displejus, bet jūs varat izmantot citus I2C moduļus/ sensori, ja vēlaties. Piezīme: 4 OLED displeji
Kā lasīt vairākas analogās vērtības, izmantojot vienu analogo tapu: 6 soļi (ar attēliem)
Kā lasīt vairākas analogās vērtības, izmantojot vienu analogo tapu: šajā apmācībā es jums parādīšu, kā lasīt vairākas analogās vērtības, izmantojot tikai vienu analogās ievades tapu
Kā izveidot vairākas ESP sarunas, izmantojot ESP-NOW, izmantojot ESP32 un ESP8266: 8 soļi
Kā izveidot vairākas ESP sarunas, izmantojot ESP-NOW, izmantojot ESP32 un ESP8266: Manā notiekošajā projektā man ir nepieciešami vairāki ESP, lai sarunātos viens ar otru bez maršrutētāja. Lai to izdarītu, es izmantošu ESP-NOW, lai bezvadu sazinātos savā starpā bez ESP maršrutētāja
Vairākas elektroniskās sveces: 3 soļi
Vairākas elektroniskās sveces: Elektroniskās sveces daudzkārt ir ievietotas vietnē Instructables, kāpēc tas tā ir? Mājās man ir šīs mazās daļēji caurspīdīgās Ziemassvētku mājas, kurām ir LED ieskats un mazs akumulators. Dažās mājās ir gaismas diodes ar sveces efektu, bet citās ir gaismas diodes
Pamācība: Kā Arduino kontrolē vairākas vienas adreses ierīces, izmantojot TCA9548A I2C multipleksoru: 3 soļi
Pamācība: Kā Arduino kontrolē vairākas vienas adreses ierīces, izmantojot TCA9548A I2C multipleksoru: Apraksts: TCA9548A I2C multipleksora modulis ļauj savienot ierīces ar vienu un to pašu I2C adresi (līdz 8 vienādām adresēm I2C), kas savienotas ar vienu mikrokontrolleri. Multiplekseris darbojas kā vārtsargs, pārsūtot komandas uz izvēlēto kopu