![](/media/cache/profiles/ae9962652ca72b43b47d23ca1a088f74.jpg.50x50_q85.jpg)
Program using a HC-SR04 Ultrasonic sensor.
Revision 0:34f7d9ef2f4b, committed 2014-11-12
- 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 |
diff -r 000000000000 -r 34f7d9ef2f4b main.cpp --- /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
diff -r 000000000000 -r 34f7d9ef2f4b mbed.bld --- /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