Coucou les Maker's, Ben voilà j'étais super content de moi sur le reste de mon code et arrivé au capteur de distance VL53L0x, je me retrouve coincé et je ne comprend pas pourquoi, même si j'ai bien compris le message d'erreur.
Donc voici le souci sur Arduino :
Ceci est le code d'origine d'exemple du VL53L0x qui fonctionne très bien.
/* This example shows how to use continuous mode to take range measurements with the VL53L0X. It is based on vl53l0x_ContinuousRanging_Example.c from the VL53L0X API. The range readings are in units of mm. */ #include <Wire.h> #include <VL53L0X.h> VL53L0X sensor; void setup() { Serial.begin(9600); Wire.begin(); sensor.init(); sensor.setTimeout(500); // Start continuous back-to-back mode (take readings as // fast as possible). To use continuous timed mode // instead, provide a desired inter-measurement period in // ms (e.g. sensor.startContinuous(100)). sensor.startContinuous(); } void loop() { Serial.print(sensor.readRangeContinuousMillimeters()); if (sensor.timeoutOccurred()) { Serial.print(" TIMEOUT"); } Serial.println(); }
#include "CD_VL53L0x.h" #include <VL53L0X.h> VL53L0X sensor; sensor.init(); sensor.setTimeout(300); sensor.startContinuous(0); //Continu unsigned int readVl53l0x () { sensor.readRangeContinuousMillimeters(); if (sensor.timeoutOccurred()) { Serial.print(" TIMEOUT"); } return sensor; }
J'ai placé le Wire.begin(); dans le main au setup (sinon j'avais aussi des erreurs à la compile du au Wire) puisque si je dis pas de bêtise cela permet juste de dire que la carte arduino est en maître pour contrôler VL53L0x, et donc j'ai ça comme erreur :
CD_VL53L0x.cpp:11: error: 'sensor' does not name a type sensor.init(); ^ CD_VL53L0x.cpp:12: error: 'sensor' does not name a type sensor.setTimeout(300); ^ CD_VL53L0x.cpp:13: error: 'sensor' does not name a type sensor.startContinuous(0); //Continu ^ sketch\CD_VL53L0x.cpp: In function 'unsigned int readVl53l0x()': CD_VL53L0x.cpp:42: error: cannot convert 'VL53L0X' to 'unsigned int' in return return sensor; ^ exit status 1 'sensor' does not name a type
Et donc là je ne vois pas trop le pourquoi du comment, pourtant je créer bien l'objet sensor et ensuite je fais appel aux méthodes...
Par contre si je place tout le code dans le main avec le Wire.begin(); ça fonctionne...