Program using a HC-SR04 Ultrasonic sensor.

Dependencies:   mbed

Files at this revision

API Documentation at this revision

Comitter:
icarobrito
Date:
Wed Nov 12 17:53:57 2014 +0000
Commit message:
Program using a HC-SR04 Ultrasonic Sensor

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Wed Nov 12 17:53:57 2014 +0000
@@ -0,0 +1,50 @@
+/* Programa para utilização do sensor Ultrasom
+*/
+/*Interrupções de pinos,só são possíveis nas portas A e D*/
+
+#include "mbed.h"
+
+ Serial pc(USBTX,USBRX);  //Configuração da comunicação serial para enviar o valor do sensor
+ DigitalOut trig(PTE5,0);  //Configuração do pino de Trigger
+ InterruptIn echo(PTA16);   //Configuração da interrupção por pino de Echo 
+ Timer tempo;
+ float tdist=0, distcm=0, distin=0, dist0=0;
+
+    void iniP(){            //Rotina para receber o pulso inicial do pino Echo
+        tempo.start();      //Rotina para iniciar o contador
+        return;
+        }
+        
+    void finP(){ //Rotina para pegar o tempo final do pulso
+    
+        tdist = tempo.read_us();  //Leitura do tempo transcorrido
+        distcm = tdist/58;         //Cálculo da distância detectada em "cm"
+        distin = tdist/148;        //Cálculo da distância detectada em "in"
+        
+        tempo.stop();           //Páro o temporizador
+        tempo.reset();          //Reset para o próximo ciclo
+        return;
+        }
+        
+        
+        
+    int main(){
+        
+        while(1){
+            
+            trig=1;             //Inicio do trigger
+            wait_us(10);        // 10us de pulso
+            trig=0;             //Fim do trigger
+            
+            echo.rise(&iniP);   //leitura do inicio do pulso de retorno
+            echo.fall(&finP);   //Leitura do final do pulso de retorno
+            
+            if(distcm != dist0){ //rotina para evitar que se envie muitos valores
+                dist0 = distcm;
+                printf("Distancia detectada pelo sensor %.2f cm \n",distcm); 
+            }
+           wait_ms(60);     //rotina para evitar que o pulso de "trigger" seja confundido com o "echo"           
+        }
+             
+         
+    }
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Wed Nov 12 17:53:57 2014 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed/builds/552587b429a1
\ No newline at end of file