Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed Servo mbed-rtos X_NUCLEO_53L0A1
Diff: main.cpp
- Revision:
- 11:5186cc367be0
- Parent:
- 10:891e10d3b4a6
- Child:
- 12:dd53c18e9cf2
--- a/main.cpp Tue Aug 22 14:42:10 2017 +0000
+++ b/main.cpp Thu Sep 07 00:01:45 2017 +0000
@@ -1,39 +1,39 @@
#include "mbed.h"
#include "XNucleo53L0A1.h"
#include <stdio.h>
+Serial pc(USBTX,USBRX);
+DigitalOut shdn(p26);
+// This VL53L0X board test application performs a range measurement in polling mode
+// Use 3.3(Vout) for Vin, p28 for SDA, p27 for SCL, P26 for shdn on mbed LPC1768
-/* This VL53L0X Expansion board test application performs a range measurement in polling mode
- on the onboard embedded top sensor. */
-
-#define VL53L0_I2C_SDA D14
-#define VL53L0_I2C_SCL D15
+//I2C sensor pins
+#define VL53L0_I2C_SDA p28
+#define VL53L0_I2C_SCL p27
static XNucleo53L0A1 *board=NULL;
-
-/*=================================== Main ==================================
-=============================================================================*/
int main()
-{
- int status;
- uint32_t distance;
-
+{
+ int status;
+ uint32_t distance;
DevI2C *device_i2c = new DevI2C(VL53L0_I2C_SDA, VL53L0_I2C_SCL);
-
/* creates the 53L0A1 expansion board singleton obj */
board = XNucleo53L0A1::instance(device_i2c, A2, D8, D2);
-
- /* init the 53L0A1 expansion board with default values */
+ shdn = 0; //must reset sensor for an mbed reset to work
+ wait(0.1);
+ shdn = 1;
+ wait(0.1);
+ /* init the 53L0A1 board with default values */
status = board->init_board();
- if (status) {
- printf("Failed to init board!\r\n");
- return 0;
+ while (status) {
+ pc.printf("Failed to init board! \r\n");
+ status = board->init_board();
}
-
- while (1) {
+ //loop taking and printing distance
+ while (1) {
status = board->sensor_centre->get_distance(&distance);
if (status == VL53L0X_ERROR_NONE) {
- printf("Distance : %ld\r\n", distance);
+ pc.printf("D=%ld mm\r\n", distance);
}
- }
+ }
}