Je travaille sur un petit projet pour la récupération du rythme cardiaque en utilisant le module MAX30100 (voir l'image). Ce capteur communique avec la carte Arduino UNO via le protocole I2C. Le problème que j'ai c'est que la carte n'arrive pas à se communiquer avec ce capteur . J'ai bien vérifié ça à l'aide d'un programme qui renvoie l'adresse d'un composant I2C s'il est connecté avec la carte. Le programme utilisé est le suivant : http://playground.arduino.cc/Main/I2cScanner
Dans mon cas, le programme reste bloqué infiniment sur Scanning... alors qu'il est censé donner l'adresse du composant. J'ai bien vérifié avec d'autres modules I2C et ça marche parfaitement sauf pour ce capteur MAX30100 .
le branchement utilisé :
GND (capteur) => GND (ARDUINO)
Vin (capteur) => 3.3V (ARDUINO)
SCL (capteur) => A5 (ARDUINO)
SDA (capteur) => A4 (ARDUINO)
INT (capteur) => Pin 12 (ARDUINO) : pas besoin de faire ce cablage de Pin12 pour le scan I2C
IRD et RD (capteur) => GND de l'ensemble
Quelqu'un peut m'aider svp ?
Je vous remercie par avance!
ça s'achète tout fait en 4 ou 8 ports (cherchez "bi-directional logic level converter" chez votre vendeur favori ou sur internet), vous mettez 5V d'un côté (là où les broches ont un H comme HIGH) et ça ressort en 3.3 de l'autre (là où les broches ont un L comme LOW) et inversement.
Merci de votre réponse !
Si si, mon capteur MAX30100 fonctionne avec une tension de 3.3V. J'ai fait le même test avec un autre capteur I2C qui fonctionne avec 3.3V et c'était bon !
certains capteurs 3.3V vont être tolérants à SCL et SDA à 5V, d'autres non et vous allez griller le composant.
si la spec du capteur dit que SCL et SDA doivent être en 3.3v et que le scan ne fonctionne pas quand vous branchez en 5v c'est qu'il y a de fortes chances que soit vous l'avez déjà grillé soit il est dans les choux...
essayez au moins avec la méthode de base en rajoutant des résistances
For 5V powered micros, the I2C high level should be at least 3.5V to meet specification; using the 3.3V I2C-bus for a 5V Arduino is living on the edge, hoping that the 3.3V will be recognized as a digital high. Since the I2C-bus is rather slow, the 4k7 pull-up resistors will pull the signal fast enough to 3.3V, and with the help of the internal pull-up resistors the Arduino will work with a 3.3V I2C-bus most of the time.
Merci bien J-M-L! ça marche bien maintenant ! Il fallait ajouter les résistances 4k7. Ce que je ne comprends pas c'est qu'il y a déjà des résistances pull-up sur le PCB du capteur !