PROJET_DISTANCE_AQUARIUM
Dependencies: mbed BSP_DISCO_F746NG
main.cpp
- Committer:
- rcirier
- Date:
- 2021-06-23
- Revision:
- 0:1a5daf7947bc
File content as of revision 0:1a5daf7947bc:
include "mbed.h" #include "stm32746g_discovery_lcd.h" DigitalOut trig(D2); //pin trig 1er capteur sur D2 DigitalIn echo(D3); //pin echo 1er capteur sur D3 DigitalOut trig2(D4); //pin trig 2eme capteur sur D4 DigitalIn echo2(D5); //pin echo 2eme capteur sur D5 Timer t; //timer 1er capteur Timer t2; //timer 2eme capteur Serial pc(USBTX,USBRX); //liaison #define vitesse_son 343.595*100; int main() { char text[4]; //char distance 1er capteur char text2[4]; //char distance 2eme capteur double time, distance; double time2, distance2; BSP_LCD_Init(); //Affichage de tout le texte sur l'écran BSP_LCD_LayerDefaultInit(LTDC_ACTIVE_LAYER, LCD_FB_START_ADDRESS); BSP_LCD_SelectLayer(LTDC_ACTIVE_LAYER); BSP_LCD_Clear(LCD_COLOR_BLACK); BSP_LCD_SetTextColor(LCD_COLOR_WHITE); BSP_LCD_SetBackColor(LCD_COLOR_BLACK); BSP_LCD_SetFont(&LCD_DEFAULT_FONT); BSP_LCD_DisplayStringAt(0, 1, (uint8_t *)"Capteur de distance", CENTER_MODE); BSP_LCD_SetTextColor(LCD_COLOR_MAGENTA); BSP_LCD_DisplayStringAt(0, 65, (uint8_t *)"en centimetre :", CENTER_MODE); BSP_LCD_SetTextColor(LCD_COLOR_MAGENTA); BSP_LCD_DisplayStringAt(120, 170, (uint8_t *)"Dist:", CENTER_MODE); BSP_LCD_SetTextColor(LCD_COLOR_MAGENTA); BSP_LCD_DisplayStringAt(-120, 170, (uint8_t *)"Dist:", CENTER_MODE); BSP_LCD_SetTextColor(LCD_COLOR_RED); // carré rouge BSP_LCD_DrawRect(300,150,125,120); BSP_LCD_SetTextColor(LCD_COLOR_GREEN); // carré vert BSP_LCD_DrawRect(50,150,125,120); BSP_LCD_SetTextColor(LCD_COLOR_MAGENTA); BSP_LCD_DisplayStringAt(0, 30, (uint8_t *)"Avec pompe d'aquarium", CENTER_MODE); while(1) { t.reset(); trig = 1; time = 0; wait_us(10); trig = 0; if (echo == 1) { t.start(); while(1) { // boucle while entiere 1er capteur if(echo == 0) { t.stop(); time = t.read(); distance = time / 2.0 * vitesse_son; // opération conversion en distance sprintf(text,"%1.1f",distance); BSP_LCD_DisplayStringAt(120, 230, (uint8_t *)&text, CENTER_MODE); //Affichage valeur 1er capteur dans le carré de l'écran LCD t.reset(); wait(1); break; } } } t2.reset(); trig2 = 1; time2 = 0; wait_us(10); trig2 = 0; if(echo2 == 1) { t2.start(); while(1) { // boucle while entiere 2eme capteur if(echo2 == 0) { t2.stop(); time2 = t2.read(); distance2 = time2 / 2.0 * vitesse_son; // opération conversion en distance sprintf(text2,"%1.1f",distance2); BSP_LCD_DisplayStringAt(-120, 230, (uint8_t *)&text2, CENTER_MODE); //Affichage valeur 2eme capteur dans le carré de l'écran LCD t2.reset(); wait(1); break; } } } } }