![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
4180
Dependencies: X_NUCLEO_53L0A1 mbed
Fork of HelloWorld_VL53L0X_LPC1768 by
main.cpp@12:6abbf8827c8b, 2018-10-16 (annotated)
- Committer:
- mli396
- Date:
- Tue Oct 16 17:34:57 2018 +0000
- Revision:
- 12:6abbf8827c8b
- Parent:
- 11:5186cc367be0
4180
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
johnAlexander | 0:ce8359133ae6 | 1 | #include "mbed.h" |
Davidroid | 10:891e10d3b4a6 | 2 | #include "XNucleo53L0A1.h" |
johnAlexander | 0:ce8359133ae6 | 3 | #include <stdio.h> |
4180_1 | 11:5186cc367be0 | 4 | Serial pc(USBTX,USBRX); |
4180_1 | 11:5186cc367be0 | 5 | DigitalOut shdn(p26); |
mli396 | 12:6abbf8827c8b | 6 | PwmOut speaker(p21); |
4180_1 | 11:5186cc367be0 | 7 | // This VL53L0X board test application performs a range measurement in polling mode |
4180_1 | 11:5186cc367be0 | 8 | // Use 3.3(Vout) for Vin, p28 for SDA, p27 for SCL, P26 for shdn on mbed LPC1768 |
johnAlexander | 0:ce8359133ae6 | 9 | |
4180_1 | 11:5186cc367be0 | 10 | //I2C sensor pins |
4180_1 | 11:5186cc367be0 | 11 | #define VL53L0_I2C_SDA p28 |
4180_1 | 11:5186cc367be0 | 12 | #define VL53L0_I2C_SCL p27 |
johnAlexander | 0:ce8359133ae6 | 13 | |
Davidroid | 10:891e10d3b4a6 | 14 | static XNucleo53L0A1 *board=NULL; |
johnAlexander | 1:3483e701ec59 | 15 | |
johnAlexander | 0:ce8359133ae6 | 16 | int main() |
4180_1 | 11:5186cc367be0 | 17 | { |
4180_1 | 11:5186cc367be0 | 18 | int status; |
4180_1 | 11:5186cc367be0 | 19 | uint32_t distance; |
johnAlexander | 7:c8087e7333b8 | 20 | DevI2C *device_i2c = new DevI2C(VL53L0_I2C_SDA, VL53L0_I2C_SCL); |
johnAlexander | 7:c8087e7333b8 | 21 | /* creates the 53L0A1 expansion board singleton obj */ |
Davidroid | 10:891e10d3b4a6 | 22 | board = XNucleo53L0A1::instance(device_i2c, A2, D8, D2); |
4180_1 | 11:5186cc367be0 | 23 | shdn = 0; //must reset sensor for an mbed reset to work |
4180_1 | 11:5186cc367be0 | 24 | wait(0.1); |
4180_1 | 11:5186cc367be0 | 25 | shdn = 1; |
4180_1 | 11:5186cc367be0 | 26 | wait(0.1); |
4180_1 | 11:5186cc367be0 | 27 | /* init the 53L0A1 board with default values */ |
johnAlexander | 7:c8087e7333b8 | 28 | status = board->init_board(); |
4180_1 | 11:5186cc367be0 | 29 | while (status) { |
4180_1 | 11:5186cc367be0 | 30 | pc.printf("Failed to init board! \r\n"); |
4180_1 | 11:5186cc367be0 | 31 | status = board->init_board(); |
johnAlexander | 7:c8087e7333b8 | 32 | } |
4180_1 | 11:5186cc367be0 | 33 | //loop taking and printing distance |
mli396 | 12:6abbf8827c8b | 34 | float freq = 0; |
mli396 | 12:6abbf8827c8b | 35 | speaker =0.1; //volume |
4180_1 | 11:5186cc367be0 | 36 | while (1) { |
johnAlexander | 7:c8087e7333b8 | 37 | status = board->sensor_centre->get_distance(&distance); |
johnAlexander | 9:9733cfdb0a18 | 38 | if (status == VL53L0X_ERROR_NONE) { |
mli396 | 12:6abbf8827c8b | 39 | freq = distance * 1.2; |
mli396 | 12:6abbf8827c8b | 40 | speaker.period(1.0/freq); // period |
johnAlexander | 7:c8087e7333b8 | 41 | } |
4180_1 | 11:5186cc367be0 | 42 | } |
johnAlexander | 0:ce8359133ae6 | 43 | } |