POUR NUCLEO-F302R8
Dependencies: X_NUCLEO_6180XA1 mbed
Fork of 247-436-M1-S2-LAB-A by
Diff: main.cpp
- Revision:
- 3:b115775ee641
- Parent:
- 1:90cc91745ff7
- Child:
- 4:8c64f7896cbf
--- a/main.cpp Fri Feb 02 10:48:59 2018 +0000 +++ b/main.cpp Fri Feb 02 11:44:13 2018 +0000 @@ -5,6 +5,42 @@ #include <stdio.h> #include <assert.h> +//BRANCHEMENTS: +// Ni le Nucleo ni le vl6180x n'ont de "pullup" pour supporter le I2C. +// Il faut ajouter des résistances de 4.7k +// Le vl6180x contient un microcontôleur qui doit être remis à zéro au démarrage +// Cette remise à zéro se fait en mettant temporairement la broche gpio à la masse. +// Un schéma de connexion sommaire suit: +// __________ +// | VL6180X | +// | | +// scl sda gnd +// nc gpio 3.3v +// |__________| + +// _______________________ +// | | +// | NUCLEO f302r8 | +// | oo oo | +// | oo scl-oo | +// | oo sda-oo | +// | oo oo | +// | oo gnd-oo | +// | oo oo | +// | oo gpio-oo | +// | oo-3.3V oo | + ... +// | oo oo | +// | cn7 cn10 | +// |_______________________| + +// connexions: +// vl6180x.3.3v <------> nucleo.3.3V +// Vl6180x.scl <--------> nucleo.scl <-----> 4.7k <------> 3.3v (pullup requise) +// Vl6180x.sda <--------> nucleo.sda <-----> 4.7k <------> 3.3v (pullup requise) +// VL6180X.gpio <-------> nucleo.gpio (requis pour faire un "reset" du vl6180x au début) + + //options de compilation //#define TEST @@ -128,11 +164,11 @@ static XNucleo6180XA1 *board = NULL; uint32_t dist; - //integration #ifdef TEST Serial pc(USBTX, USBRX, 9600); //SERIAL_TX, SERIAL_RX, 9600); #endif + DigitalOut myled(LED1); uint16_t couleurVariable; uint16_t tableDeCouleur[]= @@ -374,6 +410,7 @@ uint16_t determineLaCouleur(void) { + board->sensor_top->get_distance(&dist); if (dist > 210) //en millimetres { @@ -382,6 +419,7 @@ // board->sensor_top->get_lux(&lux); return tableDeCouleur[(int)(dist/30)]; + return tableDeCouleur[2]; } int main() @@ -396,9 +434,12 @@ uint32_t lux; DevI2C *device_i2c = new DevI2C(VL6180X_I2C_SDA, VL6180X_I2C_SCL); + + //variables locales pour l'integration uint32_t mode; + //initialisation du touchscreen restoreXY();