Sadržaj:
- Korak 1: Neke naredbe ljuske
- Korak 2: Prvi slučaj: I2c uređaji imaju istu adresu
- Korak 3: Slučaj 2: Različite I2c adrese
Video: Raspberry PI više I2C uređaja: 3 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:07
Frustrirano jer ne možete koristiti više istih I2C uređaja u svom projektu. Nema potrebe za upotrebom sporih multipleksera. Najnovije raspbian kernel podržava stvaranje više I2C sabirnica koristeći GPIO pinove. Ovo rješenje je super brzo.
Korak 1: Neke naredbe ljuske
Povežite jedan od svojih i2c uređaja dok je vaš malina pi, pokrenite malinu pi i pokrenite
sudo i2cdetect -y 1
Vidjet ćete tablicu kao na priloženoj slici. Priložio sam senzor temperature i barometarskog pritiska BMP280. I2c adresa je 0x76 prema tablici. Zapamtite ovu adresu.
Učinite to za sve svoje i2c uređaje.
Korak 2: Prvi slučaj: I2c uređaji imaju istu adresu
Ovo je uvijek bio problematičan slučaj. Sabirnica i2c može rukovati s više uređaja, ali oni bi trebali imati različite i2c adrese. Neki i2c uređaji imaju kratkospojnike za postavljanje drugih i2c adresa, ali mnogi nemaju. U ovom slučaju možete koristiti i2c multiplekser (hardver) za rotiranje i2c SDA (podaci) i SCL (sat) ili možete stvoriti dodatnu i2c sabirnicu ili više.
Napravit ću dvije dodatne magistrale, nl sabirnice 3 i 4
Otvorite cli i pokrenite
cd /boot
sudo nano config.txt
Dodajte sljedeći red koda, po mogućnosti u odjeljak u kojem su omogućeni spi i i2c.
dtoverlay = i2c-gpio, sabirnica = 4, i2c_gpio_delay_us = 1, i2c_gpio_sda = 23, i2c_gpio_scl = 24
Ova linija će stvoriti dodatnu i2c sabirnicu (sabirnica 4) na GPIO 23 kao SDA i GPIO 24 kao SCL (GPIO 23 i 24 su zadane vrijednosti)
Dodajte i sljedeći redak za kreiranje i2c sabirnice 3
dtoverlay = i2c-gpio, sabirnica = 3, i2c_gpio_delay_us = 1, i2c_gpio_sda = 17, i2c_gpio_scl = 27
GPIO 17 bit će SDA, a GPIO 27 SCL za i2c sabirnicu 4.
Tipkom X za izlaz.
Napomena o numeraciji i redoslijedu sabirnica:
Nikada ne koristite sabirnice 0 i 2, koristi se za druge stvari na ploči, poput eproma na šeširima itd
Za raspbansko izdanje u aprilu 2019.:
Uvijek biste trebali početi s najvišom sabirnicom (u ovom slučaju sabirnica 4) u vašem config.txt -u i raditi do najniže sabirnice (sabirnica 3).
Najniži autobus mora uvijek biti autobus 3
Ako vam je potrebno 5 dodatnih autobusa, autobusi bi trebali biti bi u redoslijedu 7, 6, 5, 4, 3
Ovo pitanje o naručivanju autobusa nije postojalo kada je ovaj Instructable izvorno napisan. Čini se da su u kernelu napravljene promjene.
Isključite svoj PI, isključite ga. Povežite svoje i2c uređaje na sabirnicu 4 (SDA na GPIO 23 i SCL na GPIO 24), a drugu na i2c sabirnicu 3 (SDA na GPIO 17 i SCL na GPIO 27).
Uključite pi.
Trčanje:
sudo i2cdetect -l (mala slova L)
Sada ćete vidjeti da su i2c sabirnice 3 i 4 također navedene. Takođe pokrenite:
sudo i2cdetect -y 3
sudo i2cdetect -y 4
Sada možete koristiti svoj senzor u svom programskom jeziku. Ne zaboravite navesti ispravne sabirnice i2c.
Attach je primjer popularnog BMP280 osjetnika temperature i pritiska. Nijedan multiplekser ne može pročitati 2 BMP280 tako brzo.
U prilogu je i primjer 2 senzora Sensirion SDP 810. Opet radi mnogo brže od multipleksera koji sam koristio u prošlosti
Napravio sam python kod za čitanje dva nova BMP388 iz adafruit -a.
U budućnosti mogu dodati i druge senzore na
Korak 3: Slučaj 2: Različite I2c adrese
Jednostavno. i2c je autobus. Vlasnik sabirnice treba komunicirati s više uređaja. Spojite uređaje paralelno na istu i2c sabirnicu. Možete koristiti autobus jedan.
Trčanje:
sudo i2cdetect -y 1
Vidjet ćete navedene uređaje.
Preporučuje se:
Arduino Connect više I2C uređaja: 6 koraka
Arduino Connect više I2C uređaja: U ovom ćemo vodiču naučiti kako spojiti nekoliko modula s I2C vezom na arduino. Pogledajte video! U našem slučaju kao primjer ćemo koristiti 4 OLED ekrana, ali možete koristiti bilo koje druge I2C module/ senzori ako želite.Napomena: 4 OLED ekrana prikazuje
Vodič: Kako Arduino kontrolira više uređaja iste adrese pomoću TCA9548A I2C multipleksera: 3 koraka
Vodič: Kako Arduino kontrolira više uređaja iste adrese pomoću TCA9548A I2C multipleksera: Opis: Modul TCA9548A I2C multipleksera omogućava povezivanje uređaja s istom I2C adresom (do 8 istih adresa I2C) spojenih na jedan mikrokontroler. Multiplekser djeluje kao čuvar vrata, preusmjeravajući naredbe na odabrani skup o
Uzgoj više salate na manje prostora ili Uzgoj salate u svemiru, (više ili manje) .: 10 koraka
Uzgoj više salate na manje prostora ili … Uzgoj salate u svemiru, (više ili manje) .: Ovo je profesionalna prijava na takmičenje Growing Beyond Earth, Maker, predano putem Instructables. Nisam mogao biti više uzbuđen što dizajniram za proizvodnju svemirskih biljaka i objavljujem svoj prvi Instructable. Za početak, takmičenje nas je zamolilo da
Lego priključna stanica za punjenje više uređaja, tabletni telefon: 15 koraka (sa slikama)
Lego priključna stanica za punjenje više uređaja, tabletni telefon: napravite svoju vlastitu lego priključnu stanicu
Upravljajte do 4 servo uređaja pomoću pametnog telefona ili bilo kojeg uređaja sa audio izlazom: 3 koraka
Upravljajte do 4 serva pomoću pametnog telefona ili bilo kojeg uređaja sa audio izlazom: Ovdje predstavljam jednostavnu elektroničku montažu za upravljanje do četiri servo servera sa bilo kojim uređajem koji može čitati audio datoteku