21/02/18 definitivo

Dependencies:   X_NUCLEO_6180XA1 mbed

Fork of HelloWorld_6180XA1 by ST

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