thread ultrasuoni

Dependencies:   HCSR04 mbed-rtos mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 /****************************************************
00002 *            FAST PROTOTYPING WITH NUCLEO           *
00003 * Example Code 13: Ultrasound HCSR04                *
00004 * Author: Mauro D'Angelo                            *
00005 * Organization: Perlatecnica no-profit organization *  
00006 *****************************************************/
00007 
00008 #include "mbed.h"
00009 #include "hcsr04.h"
00010 #include "rtos.h"
00011 
00012 // Instanzio un oggetto di tipo HCSR04 ed assegno i pin di trigger e di echo 
00013 HCSR04 sensor(PB_8, PB_9);
00014 HCSR04 sensor1(PA_5, PA_6);
00015 
00016 DigitalOut led(D11);
00017 
00018 // Serial
00019 Serial pc(USBTX, USBRX);
00020 
00021 int distanza;
00022 
00023 void thread(void const *args) {
00024     // Main loop
00025     while(1) {
00026         // Avvia un impulso della durata di 10us sul pin di trigger
00027         sensor.start();
00028         
00029         // Aspetta prima della prossima lettura
00030         wait_ms(100); 
00031         
00032         // Stampa sulla seriale la misura della distanza in cm
00033         distanza = sensor.get_dist_cm();
00034         pc.printf("%dcm\r\n", distanza);
00035     }
00036 }
00037  
00038 int main() {
00039     // Fisso il baudrate
00040     pc.baud(9600);
00041     
00042     Thread th(thread); // Threads start here
00043      
00044     while(1){
00045         if(distanza < 20)
00046             led = 1;
00047         else
00048             led = 0;
00049     }
00050 }
00051