21/02/18 definitivo
Dependencies: X_NUCLEO_6180XA1 mbed
Fork of HelloWorld_6180XA1 by
Diff: main.cpp
- Revision:
- 48:256ae4ed9674
- Parent:
- 47:04733a0905ba
--- a/main.cpp Mon Mar 13 19:21:16 2017 +0000 +++ b/main.cpp Wed Feb 21 07:42:34 2018 +0000 @@ -1,14 +1,3 @@ -/* - This VL6180X Expansion board test application performs a range measurement - and als measurement in polling mode on the onboard embedded top sensor. - The result of both the measures are printed on the serial over. - get_distance() and get_lux() are synchronous! They block the caller until the - result will be ready. -*/ - - -/* Includes ------------------------------------------------------------------*/ - #include "mbed.h" #include "XNucleo6180XA1.h" #include <string.h> @@ -16,43 +5,50 @@ #include <stdio.h> #include <assert.h> - -/* Definitions ---------------------------------------------------------------*/ - #define VL6180X_I2C_SDA D14 #define VL6180X_I2C_SCL D15 - -/* Variables -----------------------------------------------------------------*/ - static XNucleo6180XA1 *board = NULL; - -/* Functions -----------------------------------------------------------------*/ +AnalogIn analog_value(A0); +DigitalOut tilt(PA_8); +DigitalOut pros(PB_10); -/*=================================== Main ================================== - Prints on the serial over USB the measured distance and lux. - The measures are run in single shot polling mode. -=============================================================================*/ -int main() -{ - int status; - uint32_t lux, dist; - DevI2C *device_i2c = new DevI2C(VL6180X_I2C_SDA, VL6180X_I2C_SCL); +int main() { + float meas; + + int status; + uint32_t lux, dist; + DevI2C *device_i2c = new DevI2C(VL6180X_I2C_SDA, VL6180X_I2C_SCL); + + /* Creates the 6180XA1 expansion board singleton obj. */ + board = XNucleo6180XA1::instance(device_i2c, A3, A2, D13, D2); - /* Creates the 6180XA1 expansion board singleton obj. */ - board = XNucleo6180XA1::instance(device_i2c, A3, A2, D13, D2); + /* Initializes the 6180XA1 expansion board with default values. */ + status = board->init_board(); + if (status) { + printf("Failed to init board!\n\r"); + return 0; + } + while(1) { + meas = analog_value.read(); // It reads the analog input value (value from 0.0 to 1.0) + meas = meas * 3300; // Change the value to be in the 0 to 3300 range + printf("measure = %.2f mV\r\n", meas); - /* Initializes the 6180XA1 expansion board with default values. */ - status = board->init_board(); - if (status) { - printf("Failed to init board!\n\r"); - return 0; - } - - while (true) { - board->sensor_top->get_distance(&dist); - board->sensor_top->get_lux(&lux); - printf ("Distance: %d, Lux: %d\n\r", dist, lux); - } -} + board->sensor_top->get_distance(&dist); + board->sensor_top->get_lux(&lux); + + printf ("Distance: %d, Lux: %d\n\r", dist, lux); + if (meas < 2800){ + tilt=1; + }else{ + tilt=0; + } + + if (dist <100){ // If the value is greater than 2.5V and distance is minor of 15cm switch led + pros=1; + }else{ + pros=0; + } + } +} \ No newline at end of file