![](/media/cache/group/Logo_RioBotz.png.50x50_q85.jpg)
Calculo para utilizar o VL53L0X
main.cpp@0:6507f9fee04d, 2020-07-23 (annotated)
- Committer:
- Mateusjesus
- Date:
- Thu Jul 23 22:23:41 2020 +0000
- Revision:
- 0:6507f9fee04d
VL530X
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Mateusjesus | 0:6507f9fee04d | 1 | //Multiple Sensors |
Mateusjesus | 0:6507f9fee04d | 2 | #include"mbed.h" |
Mateusjesus | 0:6507f9fee04d | 3 | #include"VL53L0X.h" |
Mateusjesus | 0:6507f9fee04d | 4 | uint16_t measure[3] = {0,0,0}; |
Mateusjesus | 0:6507f9fee04d | 5 | int zero_um[3] = {0,0,0}; |
Mateusjesus | 0:6507f9fee04d | 6 | int total = 0; |
Mateusjesus | 0:6507f9fee04d | 7 | #define DIS_MAX 500; //Distância maxima a partir da qual o inimigo será detectado |
Mateusjesus | 0:6507f9fee04d | 8 | I2C i2c(p9, p10); |
Mateusjesus | 0:6507f9fee04d | 9 | VL53L0X v1_sensors[3] = {(&i2c),(&i2c),(&i2c)}; |
Mateusjesus | 0:6507f9fee04d | 10 | BusOut v1_shutdown(p11,p12,p13); |
Mateusjesus | 0:6507f9fee04d | 11 | Serial bt(p28, p27); |
Mateusjesus | 0:6507f9fee04d | 12 | void Search() |
Mateusjesus | 0:6507f9fee04d | 13 | { |
Mateusjesus | 0:6507f9fee04d | 14 | int i; |
Mateusjesus | 0:6507f9fee04d | 15 | uint8_t expander_shutdown_mask = 1; |
Mateusjesus | 0:6507f9fee04d | 16 | for(uint8_t i=0;i<3;i++) |
Mateusjesus | 0:6507f9fee04d | 17 | { |
Mateusjesus | 0:6507f9fee04d | 18 | v1_shutdown=expander_shutdown_mask; |
Mateusjesus | 0:6507f9fee04d | 19 | expander_shutdown_mask = (expander_shutdown_mask << 1) + 1; |
Mateusjesus | 0:6507f9fee04d | 20 | v1_sensors[i].init(); |
Mateusjesus | 0:6507f9fee04d | 21 | v1_sensors[i].setDeviceAddress(0x40 + i); |
Mateusjesus | 0:6507f9fee04d | 22 | v1_sensors[i].setModeContinuous(); |
Mateusjesus | 0:6507f9fee04d | 23 | v1_sensors[i].startContinuous(); |
Mateusjesus | 0:6507f9fee04d | 24 | } |
Mateusjesus | 0:6507f9fee04d | 25 | for(uint8_t i = 0; i < 3 ; i++) |
Mateusjesus | 0:6507f9fee04d | 26 | { |
Mateusjesus | 0:6507f9fee04d | 27 | measure[i]=v1_sensors[i].getRangeMillimeters(); |
Mateusjesus | 0:6507f9fee04d | 28 | wait(0.001); |
Mateusjesus | 0:6507f9fee04d | 29 | } |
Mateusjesus | 0:6507f9fee04d | 30 | for (i=0; i<3; i++) |
Mateusjesus | 0:6507f9fee04d | 31 | { |
Mateusjesus | 0:6507f9fee04d | 32 | if (measure[i] < 100) {zero_um[i] = 1;} |
Mateusjesus | 0:6507f9fee04d | 33 | else {zero_um[i] = 0;} |
Mateusjesus | 0:6507f9fee04d | 34 | } |
Mateusjesus | 0:6507f9fee04d | 35 | total = zero_um[0]*100 + zero_um[1]*10 + zero_um[2]; |
Mateusjesus | 0:6507f9fee04d | 36 | } |
Mateusjesus | 0:6507f9fee04d | 37 | int main() |
Mateusjesus | 0:6507f9fee04d | 38 | { |
Mateusjesus | 0:6507f9fee04d | 39 | while(1) |
Mateusjesus | 0:6507f9fee04d | 40 | { |
Mateusjesus | 0:6507f9fee04d | 41 | Search(); |
Mateusjesus | 0:6507f9fee04d | 42 | bt.printf("%i \n\r",total); |
Mateusjesus | 0:6507f9fee04d | 43 | } |
Mateusjesus | 0:6507f9fee04d | 44 | } |