INHOUDSOPGAWE:
- Stap 1: 'n paar Shell -opdragte
- Stap 2: Geval een: I2c -toestelle het dieselfde adres
- Stap 3: Geval 2: Verskillende I2c -adresse
Video: Framboos PI Meervoudige I2C -toestelle: 3 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:26
Gefrustreerd omdat u nie veelvoude van dieselfde I2C -toestelle in u projek kan gebruik nie. U hoef nie stadige multiplexers te gebruik nie. Die nuutste raspbian -kern ondersteun die skepping van verskeie I2C -busse met GPIO -penne. Hierdie oplossing is super vinnig.
Stap 1: 'n paar Shell -opdragte
Koppel een van u i2c -toestelle terwyl u framboos pi is, begin u framboos pi en hardloop
sudo i2cdetect -y 1
U sal 'n tabel sien, soos in die aangehegte figuur. Ek het 'n BMP280 temp en barometriese druksensor aan. Die i2c -adres is 0x76 volgens die tabel. Let op hierdie adres.
Doen dit vir al u i2c -toestelle.
Stap 2: Geval een: I2c -toestelle het dieselfde adres
Dit was altyd die problematiese geval. 'N i2c -bus kan verskeie toestelle hanteer, maar hulle moet verskillende i2c -adresse hê. Sommige i2c -toestelle het springers om ander i2c -adresse in te stel, maar baie nie. In hierdie geval kan u 'n i2c -multiplexer (hardeware) gebruik om die i2c SDA (Data) en SCL (Clock) te draai, of u kan 'n ekstra i2c -bus of meer skep.
Ek sal twee ekstra busse, nl bus 3 en 4, skep
Maak die cli oop en hardloop
cd /boot
sudo nano config.txt
Voeg die volgende reël kode by, verkieslik in die afdeling waar spi en i2c aangeskakel is.
dtoverlay = i2c-gpio, bus = 4, i2c_gpio_delay_us = 1, i2c_gpio_sda = 23, i2c_gpio_scl = 24
Hierdie lyn sal 'n addisionele i2c -bus (bus 4) op GPIO 23 as SDA en GPIO 24 as SCL skep (GPIO 23 en 24 is standaard)
Voeg ook die volgende reël by om i2c -bus 3 te skep
dtoverlay = i2c-gpio, bus = 3, i2c_gpio_delay_us = 1, i2c_gpio_sda = 17, i2c_gpio_scl = 27
GPIO 17 sal die SDA wees en GPIO 27 sal die SCL vir i2c bus 4 wees.
Draai beheer X om uit te gaan.
Opmerking oor die bus nommer en volgorde:
Gebruik nooit bus 0 en 2 nie; dit kan gebruik word vir ander dinge op die bord, soos eprom op hoede, ens
Vir die raspbian -vrystelling van April 2019:
U moet altyd begin met die hoogste bus (Bus 4 in hierdie geval) in u config.txt en deurwerk na die laagste bus (bus 3).
Die laagste bus moet altyd bus 3 wees
As u 5 ekstra busse benodig, moet die busse in die orde van 7, 6, 5, 4, 3 wees
Hierdie probleem oor die busbestelling was nie daar toe hierdie instruksies oorspronklik geskryf is nie. Dit lyk asof veranderinge aan die kern aangebring is.
Skakel jou PI af, skakel dit af. Koppel u i2c -toestelle aan bus 4 (SDA na GPIO 23 en SCL na GPIO 24) en die ander aan i2c -bus 3 (SDA na GPIO 17 en SCL na GPIO 27).
Skakel die pi aan.
Hardloop:
sudo i2cdetect -l (kleinletters L)
U sal nou sien dat i2c bus 3 en 4 ook gelys word. Voer ook uit:
sudo i2cdetect -y 3
sudo i2cdetect -y 4
Nou kan u u sensor in u programmeertaal gebruik. Onthou om die korrekte i2c -busse te spesifiseer.
Attach is 'n voorbeeld vir die gewilde BMP280 temperatuur- en druksensor. Geen multiplexer kan 2 BMP280's so vinnig lees nie.
'N Voorbeeld van 2 Sensirion SDP 810 -sensors is ook aangeheg. Werk weer baie vinniger as die multiplexer wat ek in die verlede gebruik het
Ek het python -kode geskep om twee nuwe BMP388's van adafruit te lees.
Ek kan ook in die toekoms ander sensors by https://github.com/JJSlabbert/Raspberry_PI_i2C_conficts voeg
Stap 3: Geval 2: Verskillende I2c -adresse
Eenvoudig. i2c is 'n bus. Die doel van 'n bus is om met verskeie toestelle te kommunikeer. Koppel die toestelle parallel aan dieselfde i2c -bus. U kan bus een gebruik.
Hardloop:
sudo i2cdetect -y 1
U sal die toestelle op die lys sien.
Aanbeveel:
Hoe om 'n IR-dekodeerder vir meervoudige wisselmotorbeheer te programmeer: 7 stappe
Hoe om 'n IR-dekodeerder vir meervoudige wisselstroommotorbeheer te programmeer: Enfasige wisselstroommotors word gewoonlik in huishoudelike items soos waaiers aangetref, en hul snelheid kan maklik beheer word wanneer 'n aantal diskrete wikkelinge vir vasgestelde snelhede gebruik word. In hierdie Instructable bou ons 'n digitale kontroleerder wat 'n
RASPBERRY PI Pi OBJEKDETEKSIE MET MEERVOUDIGE KAMERA'S: 3 stappe
RASPBERRY PI Pi OBJEKDETEKSIE MET MEERVOUDIGE KAMERA: Ek hou die intro kort, want die titel self dui aan wat die hoofdoel van die instruksies is. In hierdie stap-vir-stap instruksies, sal ek u verduidelik hoe u meer kameras soos 1-pi-kamera en ten minste een USB-kamera of 2 USB-kameras kan aansluit
MEERVOUDIGE SENSORS Koppel aan een ARDUINO UNO SERIAL PORT: 4 stappe
Koppel meer sensors aan een ARDUINO UNO SERIAL PORT: In hierdie tutoriaal brei ons 'n enkele Arduino UNO UART (Rx/Tx) seriële poort uit, sodat verskeie Atlas sensors verbind kan word. Die uitbreiding word gedoen met behulp van 8: 1 Serial Port Expander -bord. Die Arduino -hawe is gekoppel aan die uitbreiding nadat
Koppelvlak Meervoudige LCD na Arduino Uno deur gebruik te maak van Common Data Line: 5 stappe
Koppelvlak veelvuldige LCD na Arduino Uno met behulp van Common Data Line: Vandag gaan ek in hierdie instruksies jou wys hoe om verskeie 16x2 LCD -modules te koppel met 'n arduino uno board met behulp van 'n gemeenskaplike data lyn. Die interessantste van hierdie projek is dat dit 'n gemeenskaplike datalyn gebruik en verskillende data in e
MEERVOUDIGE SENSORS Koppel aan Raspberry PI: 6 stappe (met foto's)
MEERVOUDIGE SENSORS Koppel aan Raspberry PI: In hierdie projek verbind ons drie van Atlas Scientific se EZO -sensors (pH, opgeloste suurstof en temperatuur) aan 'n Framboos Pi 3B+. In plaas daarvan om die stroombane aan die Raspberry Pi te koppel, gebruik ons die Whitebox Labs Tentacle T3 -skild. T