Spisu treści:
- Krok 1: Niektóre polecenia powłoki
- Krok 2: Przypadek pierwszy: urządzenia I2c mają ten sam adres
- Krok 3: Przypadek 2: Różne adresy I2c
Wideo: Raspberry PI Wiele urządzeń I2C: 3 kroki
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:30
Sfrustrowany, ponieważ nie możesz używać w swoim projekcie wielokrotności tych samych urządzeń I2C. Nie ma potrzeby używania wolnych multiplekserów. Najnowsze jądro raspbian obsługuje tworzenie wielu magistral I2C przy użyciu pinów GPIO. To rozwiązanie jest super szybkie.
Krok 1: Niektóre polecenia powłoki
Podłącz jedno ze swoich urządzeń i2c, gdy Twoje Raspberry Pi jest wyłączone, uruchom Raspberry Pi i uruchom
sudo i2cdetect -y 1
Zobaczysz tabelę jak na załączonym rysunku. Mam dołączony czujnik temperatury i ciśnienia barometrycznego BMP280. Adres i2c to 0x76 zgodnie z tabelą. Zanotuj ten adres.
Zrób to dla wszystkich swoich urządzeń i2c.
Krok 2: Przypadek pierwszy: urządzenia I2c mają ten sam adres
To zawsze był problematyczny przypadek. Magistrala i2c może obsługiwać wiele urządzeń, ale powinny one mieć różne adresy i2c. Niektóre urządzenia i2c mają zworki do ustawiania innych adresów i2c, ale wiele nie. W takim przypadku możesz użyć multipleksera i2c (sprzęt), aby obrócić i2c SDA (dane) i SCL (zegar) lub możesz utworzyć dodatkową magistralę i2c lub więcej.
Stworzę dwa dodatkowe autobusy, nl bus 3 i 4
Otwórz cli i uruchom
cd /boot
sudo nano config.txt
Dodaj następujący wiersz kodu, najlepiej w sekcji, w której włączone są spi i i2c.
dtoverlay=i2c-gpio, magistrala=4, i2c_gpio_delay_us=1, i2c_gpio_sda=23, i2c_gpio_scl=24
Ta linia utworzy dodatkową magistralę i2c (bus 4) na GPIO 23 jako SDA i GPIO 24 jako SCL (GPIO 23 i 24 są domyślne)
Dodaj również następujący wiersz, aby utworzyć magistralę i2c 3
dtoverlay=i2c-gpio, autobus=3, i2c_gpio_delay_us=1, i2c_gpio_sda=17, i2c_gpio_scl=27
GPIO 17 będzie SDA, a GPIO 27 będzie SCL dla magistrali i2c 4.
Tipe kontroluj X, aby wyjść.
Uwaga dotycząca numeracji i kolejności magistrali:
Nigdy nie używaj magistrali 0 i 2, służy do innych rzeczy w tablicy, takich jak eprom na czapkach itp
Dla wersji raspbian z kwietnia 2019 r.:
Powinieneś zawsze zaczynać od najwyższej magistrali (w tym przypadku Bus 4) w swoim pliku config.txt i przechodzić do najniższej magistrali (bus 3).
Najniższy autobus musi zawsze być autobusem 3
Jeśli potrzebujesz 5 dodatkowych autobusów, autobusy muszą być bi w kolejności 7, 6, 5, 4, 3
Ten problem dotyczący zamówienia autobusu nie istniał, gdy ten Instruktaż został pierwotnie napisany. Wygląda na to, że dokonano zmian w jądrze.
Zamknij swoje PI, wyłącz je. Podłącz swoje urządzenia i2c do magistrali 4 (SDA do GPIO 23 i SCL do GPIO 24), a drugie do magistrali i2c 3 (SDA do GPIO 17 i SCL do GPIO 27).
Włącz pi.
Biegać:
sudo i2cdetect -l (mała litera L)
Zobaczysz teraz, że na liście znajduje się również magistrala i2c 3 i 4. Uruchom także:
sudo i2cdetect -y 3
sudo i2cdetect -y 4
Teraz możesz używać czujnika w swoim języku programowania. Pamiętaj, aby określić prawidłowe magistrale i2c.
Attach to przykład popularnego czujnika temperatury i ciśnienia BMP280. Żaden multiplekser nie może tak szybko odczytać 2 BMP280.
Dołączony jest również przykład 2 czujników Sensirion SDP 810. Znowu działa znacznie szybciej niż multiplekser, którego używałem w przeszłości
Stworzyłem kod Pythona do odczytu dwóch nowych BMP388 z adafruit.
W przyszłości mogę też dodać inne czujniki na
Krok 3: Przypadek 2: Różne adresy I2c
Prosty. i2c to autobus. Celem magistrali jest komunikacja z wieloma urządzeniami. Podłącz urządzenia równolegle do tej samej magistrali i2c. Możesz skorzystać z autobusu.
Biegać:
sudo i2cdetect -y 1
Zobaczysz wymienione urządzenia.
Zalecana:
Arduino Połącz wiele urządzeń I2C: 6 kroków
Arduino Connect Multiple I2C Devices: W tym samouczku dowiemy się, jak podłączyć kilka modułów za pomocą połączenia I2C do arduino. Obejrzyj wideo! W naszym przypadku jako przykład użyjemy 4 wyświetlaczy OLED, ale możesz użyć dowolnych innych modułów I2C/ czujniki, jeśli chcesz.Uwaga: 4 wyświetlacze OLED co
Jak zrobić dotykowy włącznik/wyłącznik dla urządzeń domowych: 4 kroki
Jak zrobić dotykowy włącznik/wyłącznik dla urządzeń domowych: jest to dotykowy włącznik/wyłącznik bez mikrokontrolera. Możesz dotknąć palca? Pierwszy raz na metalowej płycie, a potem żarówka? ON i po wyjęciu żarówki palcowej? Pozostań WŁĄCZONY. Możesz dotknąć palca? Drugi raz na metalowej płycie Potem żarówka?
Przełącznik dotykowy do urządzeń domowych -- Kontroluj swoje urządzenia domowe bez dotykania dowolnego przełącznika: 4 kroki
Przełącznik dotykowy do urządzeń domowych || Kontroluj swoje urządzenia domowe bez przełącznika dotykowego: jest to przełącznik bezdotykowy do urządzeń domowych. Możesz użyć tego w dowolnym miejscu publicznym, aby pomóc w walce z dowolnym wirusem. Obwód oparty na ciemnym obwodzie czujnika wykonanym przez wzmacniacz operacyjny i LDR. Druga ważna część tego obwodu Flip-Flop SR z sekwencją
SONOFF dodaje Alexa i sterowanie głosowe Google Home do inteligentnych urządzeń ZigBee: 3 kroki
SONOFF dodaje Alexa i Google Home Voice Control do inteligentnych urządzeń ZigBee: Od inteligentnych przełączników i wtyczek Wi-Fi po inteligentne przełączniki i wtyczki ZigBee, sterowanie głosowe jest popularnym, inteligentnym punktem sterowania bez użycia rąk. Dzięki współpracy z Amazon Alexa lub Google Home inteligentne wtyczki pozwalają przejąć bezpośrednią kontrolę nad podłączonym domem
Easy IOT – kontrolowany przez aplikację koncentrator czujników RF dla urządzeń IOT średniego zasięgu: 4 kroki
Easy IOT – Kontrolowany przez aplikację koncentrator czujników RF dla urządzeń IOT średniego zasięgu: W tej serii samouczków zbudujemy sieć urządzeń, które będą mogły być sterowane za pośrednictwem łącza radiowego z centralnego urządzenia koncentratora. Zaletą korzystania z szeregowego połączenia radiowego 433 MHz zamiast WIFI lub Bluetooth jest znacznie większy zasięg (przy dobrym