Table des matières:
- Étape 1: Quelques commandes Shell
- Étape 2: Premier cas: les appareils I2c ont la même adresse
- Étape 3: Cas 2: Différentes adresses I2c
Vidéo: Périphériques I2C multiples Raspberry PI : 3 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:07
Frustré parce que vous ne pouvez pas utiliser plusieurs des mêmes appareils I2C dans votre projet. Pas besoin d'utiliser des multiplexeurs lents. Le dernier noyau Raspbian prend en charge la création de plusieurs bus I2C à l'aide de broches GPIO. Cette solution est ultra rapide.
Étape 1: Quelques commandes Shell
Connectez un de vos appareils i2c pendant que votre raspberry pi est éteint, démarrez votre raspberry pi et lancez
sudo i2cdetect -y 1
Vous verrez un tableau comme dans la figure ci-jointe. J'ai attaché un capteur de température et de pression barométrique BMP280. L'adresse i2c est 0x76 selon le tableau. Notez cette adresse.
Faites cela pour tous vos appareils i2c.
Étape 2: Premier cas: les appareils I2c ont la même adresse
Ce fut toujours le cas problématique. Un bus i2c peut gérer plusieurs périphériques, mais ils doivent avoir des adresses i2c différentes. Certains appareils i2c ont des cavaliers pour définir d'autres adresses i2c, mais beaucoup n'en ont pas. Dans ce cas, vous pouvez utiliser un multiplexeur i2c (matériel) pour faire pivoter l'i2c SDA (données) et SCL (horloge) ou vous pouvez créer un bus i2c supplémentaire ou plus.
Je vais créer deux bus supplémentaires, nl bus 3 et 4
Ouvrez le cli et exécutez
cd/démarrage
sudo nano config.txt
Ajoutez la ligne de code suivante, de préférence dans la section où spi et i2c sont activés.
dtoverlay=i2c-gpio, bus=4, i2c_gpio_delay_us=1, i2c_gpio_sda=23, i2c_gpio_scl=24
Cette ligne créera un bus i2c supplémentaire (bus 4) sur GPIO 23 en tant que SDA et GPIO 24 en tant que SCL (GPIO 23 et 24 sont les valeurs par défaut)
Ajoutez également la ligne suivante pour créer le bus i2c 3
dtoverlay=i2c-gpio, bus=3, i2c_gpio_delay_us=1, i2c_gpio_sda=17, i2c_gpio_scl=27
GPIO 17 sera le SDA et GPIO 27 sera le SCL pour le bus i2c 4.
Tipe contrôle X pour sortir.
Remarque sur la numérotation et la commande des bus:
N'utilisez jamais les bus 0 et 2, il est utilisé pour d'autres choses dans la carte comme l'eprom sur les chapeaux, etc.
Pour la version raspbian d'avril 2019:
Vous devez toujours commencer par le bus le plus élevé (Bus 4 dans ce cas) dans votre config.txt et continuer jusqu'au bus le plus bas (bus 3).
Le bus le plus bas doit toujours être le bus 3
Si vous avez besoin de 5 bus supplémentaires, les bus doivent bi dans l'ordre de 7, 6, 5, 4, 3
Ce problème sur la commande de bus n'était pas là lorsque ce Instructable a été écrit à l'origine. Il semble que des modifications aient été apportées au noyau.
Éteignez votre PI, éteignez-le. Connectez vos appareils i2c au bus 4 (SDA à GPIO 23 et SCL à GPIO 24) et l'autre au bus i2c 3 (SDA à GPIO 17 et SCL à GPIO 27).
Allumez le pi.
Courir:
sudo i2cdetect -l (L minuscule)
Vous verrez maintenant que les bus i2c 3 et 4 sont également répertoriés. Exécutez également:
sudo i2cdetect -y 3
sudo i2cdetect -y 4
Vous pouvez maintenant utiliser votre capteur dans votre langage de programmation. N'oubliez pas de spécifier les bus i2c corrects.
Attach est un exemple du populaire capteur de température et de pression BMP280. Aucun multiplexeur ne peut lire 2 BMP280 aussi rapidement.
Un exemple de 2 capteurs Sensirion SDP 810 est également joint. Fonctionne à nouveau beaucoup plus rapidement que le multiplexeur que j'ai utilisé dans le passé
J'ai créé du code python pour lire deux nouveaux BMP388 d'adafruit.
Je pourrais également ajouter d'autres capteurs à l'avenir à
Étape 3: Cas 2: Différentes adresses I2c
Simple. i2c est un bus. Un bus a pour but de communiquer avec plusieurs appareils. Connectez les appareils en parallèle sur le même bus i2c. Vous pouvez utiliser le bus un.
Courir:
sudo i2cdetect -y 1
Vous verrez les appareils répertoriés.
Conseillé:
Tutoriel : Comment Arduino contrôle plusieurs périphériques à la même adresse en utilisant le multiplexeur TCA9548A I2C : 3 étapes
Tutoriel : Comment Arduino contrôle plusieurs périphériques à la même adresse à l'aide du multiplexeur TCA9548A I2C : Description : Le module multiplexeur TCA9548A I2C permet de connecter des périphériques avec la même adresse I2C (jusqu'à 8 mêmes adresses I2C) connectés à un microcontrôleur. Le multiplexeur agit comme un garde-porte, transférant les commandes vers l'ensemble sélectionné o
Comment trouver les adresses IP des périphériques Ethernet ? : 4 étapes
Comment trouver les adresses IP des périphériques Ethernet ?: Dans cette opportunité, nous aborderons un problème qui nous est arrivé lorsque nous devons obtenir l'adresse IP d'un périphérique Ethernet, il peut s'agir d'un PC, d'un smartphone, d'un automate dans notre cas. être un Arduino avec shield ethernet, ESP8266 ou ESP32.Si nous ne le faisons pas h
Contrôle de l'alimentation des périphériques avec économiseur d'écran : 3 étapes (avec photos)
Contrôle de l'alimentation des périphériques avec économiseur d'écran : Premièrement : ce projet se branche sur le port d'imprimante d'un ordinateur. Je ne serai pas tenu responsable si quelqu'un a incendié sa carte mère. S'il vous plaît, s'il vous plaît, soyez prudent et vérifiez trois fois toutes vos connexions si vous allez essayer quelque chose comme
Contrôler les périphériques et économiser l'électricité : 5 étapes
Contrôle des périphériques et économie d'électricité : Nous l'avons tous entendu, éteignez les appareils lorsqu'ils ne sont pas utilisés, mais avez-vous déjà essayé d'éteindre tous vos périphériques à 1 heure du matin avant de vous coucher ? Pas une tâche facile. Plus maintenant
Organiser les périphériques USB avec l'apparence de l'utilitaire pour ordinateur portable : 5 étapes
Organisez les périphériques USB avec l'habillage utilitaire pour ordinateur portable : l'habillage utilitaire pour ordinateur portable organise facilement les périphériques USB légers à l'aide de velcro. En tant que membre de la génération mobile, je voulais résoudre les problèmes d'emplacement et d'espace pour les périphériques USB. Journalisme professionnel et étudiant, photographie, vidéo et autres m