test multi VL53
Embed:
(wiki syntax)
Show/hide line numbers
main.cpp
00001 //Multiple Sensors 00002 #include"mbed.h" 00003 #include"VL53L0X.h" 00004 uint16_t measure[3] = {0,0,0}; 00005 int zero_um[3] = {0,0,0}; 00006 int total = 0; 00007 #define DIS_MAX 500; //Distância maxima a partir da qual o inimigo será detectado 00008 I2C i2c(p9, p10); 00009 VL53L0X v1_sensors[2] = {(&i2c),(&i2c)}; 00010 DigitalOut v1_shutdown(p8); 00011 //Serial bt(p28, p27); 00012 void Search() 00013 { 00014 00015 v1_shutdown=0; 00016 wait(0.1); 00017 v1_sensors[0].init(); 00018 v1_sensors[0].setDeviceAddress(0x50/2); 00019 v1_sensors[0].setModeContinuous(); 00020 v1_sensors[0].startContinuous(); 00021 v1_shutdown=1; 00022 wait(0.1); 00023 v1_sensors[1].init(); 00024 v1_sensors[1].setModeContinuous(); 00025 v1_sensors[1].startContinuous(); 00026 00027 short addr=0; 00028 char tb[2],ack; 00029 printf("START\r\n"); 00030 while(addr<256) { 00031 ack = i2c.write(addr,tb,1); 00032 wait_us(100); 00033 if(!ack) { 00034 printf("xxxI2C found @ %x\r\n",addr); 00035 } 00036 addr+=2; 00037 } 00038 printf("stop\r\n"); 00039 } 00040 int main() 00041 { 00042 Search(); 00043 while(1){ 00044 for(uint8_t i = 0; i < 2 ; i++){ 00045 measure[i]=v1_sensors[i].getRangeMillimeters(); 00046 wait(0.001); 00047 printf("mesure[%u]= %u ",i&0xFF,measure[i]); 00048 } 00049 printf("\r\n"); 00050 wait(0.25); 00051 // bt.printf("%i \n\r",total); 00052 } 00053 }
Generated on Wed Jul 27 2022 07:48:34 by
1.7.2