Cuprins:
- Pasul 1: Unele comenzi Shell
- Pasul 2: Primul caz: Dispozitivele I2c au aceeași adresă
- Pasul 3: Cazul 2: Adrese I2c diferite
Video: Dispozitive multiple Raspberry PI I2C: 3 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:44
Frustrat pentru că nu puteți utiliza multipli ai aceluiași dispozitiv I2C în proiectul dvs. Nu este nevoie să folosiți multiplexoare lente. Cel mai recent kernel raspbian acceptă crearea mai multor autobuze I2C folosind pini GPIO. Această soluție este super rapidă.
Pasul 1: Unele comenzi Shell
Conectați unul dintre dispozitivele dvs. i2c în timp ce raspberry pi este activ, porniți raspberry pi și rulați
sudo i2cdetect -y 1
Veți vedea un tabel ca în figura atașată. Am atașat un senzor BMP280 de temperatură și presiune barometrică. Adresa i2c este 0x76 conform tabelului. Rețineți această adresă.
Faceți acest lucru pentru toate dispozitivele dvs. i2c.
Pasul 2: Primul caz: Dispozitivele I2c au aceeași adresă
Acesta a fost întotdeauna cazul problematic. O magistrală i2c poate gestiona mai multe dispozitive, dar acestea ar trebui să aibă adrese i2c diferite. Unele dispozitive i2c au jumperi pentru a seta alte adrese i2c, dar multe nu. În acest caz, puteți utiliza un multiplexor i2c (hardware) pentru a roti i2c SDA (date) și SCL (ceas) sau puteți crea o magistrală i2c suplimentară sau mai mult.
Voi crea două autobuze suplimentare, nl autobuzul 3 și 4
Deschideți cli și rulați
cd / boot
sudo nano config.txt
Adăugați următoarea linie de cod, de preferat în secțiunea în care sunt activate spi și i2c.
dtoverlay = i2c-gpio, autobuz = 4, i2c_gpio_delay_us = 1, i2c_gpio_sda = 23, i2c_gpio_scl = 24
Această linie va crea o magistrală i2c suplimentară (magistrala 4) pe GPIO 23 ca SDA și GPIO 24 ca SCL (GPIO 23 și 24 este implicit)
Adăugați, de asemenea, următoarea linie pentru a crea magistrala i2c 3
dtoverlay = i2c-gpio, autobuz = 3, i2c_gpio_delay_us = 1, i2c_gpio_sda = 17, i2c_gpio_scl = 27
GPIO 17 va fi SDA și GPIO 27 va fi SCL pentru i2c bus 4.
Tastați comanda X pentru a ieși.
Notă privind numerotarea și comanda autobuzului:
Nu folosiți niciodată autobuzele 0 și 2, este folosit pentru alte lucruri din tablă, cum ar fi eprom pe pălării etc.
Pentru lansarea raspbian din aprilie 2019:
Ar trebui să începeți întotdeauna cu cel mai înalt autobuz (autobuzul 4 în acest caz) din config.txt și să mergeți până la cel mai mic autobuz (autobuzul 3).
Cel mai mic autobuz trebuie să fie întotdeauna autobuzul 3
Dacă aveți nevoie de 5 autobuze suplimentare, autobuzele trebuie să fie în ordinea 7, 6, 5, 4, 3
Această problemă a comenzii cu autobuzul nu exista atunci când a fost scris inițial acest instructabil. Se pare că s-au făcut modificări la nucleu.
Opriți PI-ul, schimbați-l. Conectați dispozitivele i2c la magistrala 4 (SDA la GPIO 23 și SCL la GPIO 24) și cealaltă la magistrala i2c 3 (SDA la GPIO 17 și SCL la GPIO 27).
Porniți pi.
Alerga:
sudo i2cdetect -l (litere mici L)
Veți vedea acum că și autobuzele i2c 3 și 4 sunt listate. Rulați și:
sudo i2cdetect -y 3
sudo i2cdetect -y 4
Acum puteți utiliza senzorul în limbajul de programare. Nu uitați să specificați autobuzele i2c corecte.
Atașați este un exemplu pentru popularul senzor de temperatură și presiune BMP280. Niciun multiplexor nu poate citi 2 BMP280 atât de repede.
Un exemplu de 2 senzori Sensirion SDP 810 este, de asemenea, atașat. Din nou, lucrez mult mai repede decât multiplexorul pe care l-am folosit în trecut
Am creat codul python pentru a citi două BMP388 noi de la adafruit.
Pot adăuga și alți senzori pe viitor la
Pasul 3: Cazul 2: Adrese I2c diferite
Simplu. i2c este un autobuz. Un serviciu de autobuz trebuie să comunice cu mai multe dispozitive. Conectați dispozitivele paralele la aceeași magistrală i2c. Puteți folosi autobuzul unu.
Alerga:
sudo i2cdetect -y 1
Veți vedea dispozitivele listate.
Recomandat:
Configurare pentru furnizorul GPS Bluetooth extern pentru dispozitive Android: 8 pași
Configurarea furnizorului extern de GPS Bluetooth pentru dispozitive Android: Această instrucțiune vă va explica cum să creați propriul GPS extern cu Bluetooth pentru telefonul dvs., aprindeți orice la doar aproximativ 10 USD. interfață Blutooth Module cu consum redus de energie Ardui
Dispozitive Arduino Connect multiple I2C: 6 pași
Arduino Connect Multiple I2C Devices: În acest tutorial vom învăța cum să conectăm mai multe module cu o conexiune I2C la arduino. Urmăriți videoclipul! În cazul nostru vom folosi 4 afișaje OLED ca exemplu, dar puteți utiliza orice alte module I2C / senzori dacă doriți. Notă: 4 afișaje OLED co
Este posibil să transferați fotografii utilizând dispozitive IoT bazate pe LPWAN ?: 6 pași
Este posibil să transferați fotografii utilizând dispozitive IoT bazate pe LPWAN? Tehnologiile reprezentative sunt Sigfox, LoRa NB-IoT și LTE Cat.M1. Acestea sunt toate tehnologii de comunicare la distanță lungă de putere redusă. În ge
Hardware și software Hack dispozitive inteligente, Tuya și Broadlink LEDbulb, Sonoff, BSD33 Smart Plug: 7 pași
Hardware și software Hack Smart Devices, Tuya și Broadlink LEDbulb, Sonoff, BSD33 Smart Plug: În acest instructable vă arăt cum am intermitent mai multe dispozitive inteligente cu propriul meu firmware, astfel încât să le pot controla prin MQTT prin intermediul configurării mele Openhab. dispozitive noi când le-am piratat. Desigur, există alte metode bazate pe software pentru a bloca f personalizate
Tutorial: Cum Arduino controlează mai multe dispozitive cu aceeași adresă utilizând multiplexorul TCA9548A I2C: 3 pași
Tutorial: Cum Arduino controlează mai multe dispozitive cu aceeași adresă utilizând multiplexorul TCA9548A I2C: Descriere: Modulul multiplexor TCA9548A I2C permite conectarea dispozitivelor cu aceeași adresă I2C (până la 8 aceeași adresă I2C) conectate la un microcontroler. Multiplexorul acționează ca un gatekeeper, transferând comenzile la setul selectat o