Bonjour à tous,
Il me semble qu'il est possible de changer l'adresse des modules Vl53lxx par logiciel lors de l'initialisation.
Sur le site d'Adafruit, la méthode est expliquée mais en anglais. Il faut refaire ce changement à chaque démarrage du logiciel de commande.
Vous trouverez ci dessous le principe de ce changement (traduction du site Adafruit).
Le lien vers le site est donné en fin de message.
***************************
Connexion de plusieurs capteurs
I2C n’autorise qu’une adresse par périphérique, vous devez donc vous assurer que chaque périphérique I2C a une adresse unique. L’adresse par défaut pour le VL53L0X est 0x29 mais vous pouvez changer cela dans le logiciel.
Pour définir la nouvelle adresse, vous pouvez le faire de deux façons. Pendant l’initialisation, au lieu d’appeler lox.begin(), appelez lox.begin(0x30) pour définir l’adresse sur 0x30. Ou vous pouvez, plus tard, appeler lox.setAddress(0x30) à tout moment.
La bonne nouvelle est qu’il est facile à changer, la partie ennuyeuse est que les autre capteurs doivent être arrêté. Vous pouvez arrêter chaque capteur en connectant la broche XSHUT à une broche de microcontrôleur, puis effectuer quelque chose comme ce pseudo-code :
Réinitialisez tous les capteurs en réglant toutes leurs broches XSHUT bas pour delay(10), puis réglez toutes les XSHUT haut pour sortir de la réinitialisation
Gardez le capteur #1 éveillé en gardant la broche XSHUT haute
Arrêter tous les autres capteurs en tirant les broches XSHUT vers le bas
Initialiser le capteur n° 1 avec lox.begin(new_i2c_address) Choisir n’importe quel nombre mais pas 0x29 . Aller avec 0x30 à 0x3F est probablement correct.
Gardez le capteur #1 éveillé, et sortez le capteur #2 de la réinitialisation en réglant sa broche XSHUT haute.
Initialisez le capteur n° 2 avec lox.begin(new_i2c_address) Choisissez n’importe quel nombre sauf 0x29 et celle déjà définie sur le premier capteur
Répétez l’opération pour chaque capteur, en activant chacun d’eux, en définissant une adresse unique.
Notez que vous devez le faire chaque fois que vous mettez sous tension, les adresses n'étant pas sauvegardées (par défaut 0x29)!
il faut donc inclure cette partie dans l'initialisation de l'application.
***************************
Lien vers le site Adafruit
https://learn.adafruit.com/adafruit-vl53l0x-micro-lidar-distance-sensor-breakout/arduino-codeA+ Remi