Vl6180x 400 messdaten

Hallo

Ich habe 5 sensoren von VL6180x und habe es sogar 2ms delay programmiert.
warum werden da nicht mehr als 500 Messdaten ausgegeben.

//I²C Biblotheken hochladen
#include <Wire.h>
//Sensor Biblotheken  hochladen
#include <VL6180X.h>

#define address0 0x20
#define address1 0x22
#define address2 0x24
#define address3 0x26
#define address4 0x28


int enablePin0 = 11;
int enablePin1 = 10;
int enablePin2 = 9;
int enablePin3 = 8;
int enablePin4 = 7;


VL6180X sensor0;
VL6180X sensor1;
VL6180X sensor2;
VL6180X sensor3;
VL6180X sensor4;


//einstellungen werden einmal gelesen und fesgelegt
void setup()
{
   //er soll eine Verbindung mit 9600bps aufbauen
Serial.begin(9600);
//Initialisierung der I²C treibers
Wire.begin();
pinMode(enablePin0,OUTPUT);
pinMode(enablePin1,OUTPUT);
pinMode(enablePin2,OUTPUT);
pinMode(enablePin3,OUTPUT);
pinMode(enablePin4,OUTPUT);

  
digitalWrite(enablePin0, LOW);
digitalWrite(enablePin1, LOW);
digitalWrite(enablePin2, LOW);
digitalWrite(enablePin3, LOW);
digitalWrite(enablePin4, LOW);
  
 digitalWrite(enablePin0, HIGH);
  sensor0.init();
  sensor0.configureDefault();
  sensor0.setAddress(address0);
  Serial.println(sensor0.readReg(0x212),HEX); // lese I2C address
 sensor0.setScaling(2); // konfiguration range or precision 1, 2 oder 3 mm


digitalWrite(enablePin1, HIGH);
  sensor1.init();
  sensor1.configureDefault();
  sensor1.setAddress(address1);
  Serial.println(sensor1.readReg(0x212),HEX);
 sensor1.setScaling(2); // konfiguration range or precision 1, 2 oder 3 mm


digitalWrite(enablePin2, HIGH);
  sensor2.init();
  sensor2.configureDefault();
  sensor2.setAddress(address2);
  Serial.println(sensor2.readReg(0x212),HEX); // lese I2C address
 sensor2.setScaling(2); 

digitalWrite(enablePin3, HIGH);
  sensor3.init();
  sensor3.configureDefault();
  sensor3.setAddress(address3);
  Serial.println(sensor3.readReg(0x212),HEX); // lese I2C address
 sensor3.setScaling(2); 
 
digitalWrite(enablePin4, HIGH);
  sensor4.init();
  sensor4.configureDefault();
  sensor4.setAddress(address4);
  Serial.println(sensor4.readReg(0x212),HEX); // lese I2C address
 sensor4.setScaling(2); 
}
//dauerschleife(widerholt sich)
void loop()
{
//Senden des Sensor Signals auf der Seriellen Schnittstelle
Serial.print(sensor0.readRangeSingle());
Serial.print("\t ");
Serial.print(sensor1.readRangeSingle());
Serial.print("\t ");
Serial.print(sensor2.readRangeSingle());
Serial.println("\t ");
Serial.print(sensor3.readRangeSingle());
Serial.print("\t ");
Serial.print(sensor4.readRangeSingle());
Serial.print("\t ");

//Pause von 2 ms = 1 Messung
delay(2);}

danke

Stell einfach mal die baudrate höher..

Ich weiß ja nicht was da ausgegeben wird, aber 9600baud sind weniger als 1000 Zeichen die Sekunde.

Eventuell wartet der MCU zusätzlich zum Delay auf das Übertragungsende..

habe ich auf 115200 funktioniert auch nicht .
mit einen Sensor hat es geklappt.

Ich vermute mal, dass Du mit den enablePins die jeweiligen IC zuschalten willst. Dann solltest Du sie aber nicht nur auf HIGH setzen, sondern auch hinterher wieder auf LOW.

Ein Link zu verwendeten Lib wäre auch nicht schädlich.

Gruß Tommy

Hallo
vielen dank ,alles klappt ja auch er zeigt mir die Messwerte an aber nicht so schnell.

vl6180x von pololu.

Das delay mal rausgenommen?

Das begrenzt es auf 500+ bearbeitungszeit.

ok danke

Crossposting über 2 Foren zur gleichen Zeit gilt als extrem unhöflich gegenüber denen, von denen Du Hilfe erwartest.

Außerdem wäre es sinnvoll, die gestellten Fragen zu beantworten.

Gruß Tommy