Ultrasonic

Dependents:   2014_Ensoul_Capstone Thrower_KRAI ECE4180Finalproject 4180Lab3Part2

Committer:
leejong87
Date:
Tue Nov 04 02:30:41 2014 +0000
Revision:
1:d8a93321fc01
Parent:
0:4a3021604777
Delay 10us -> 5us

Who changed what in which revision?

UserRevisionLine numberNew contents of line
leejong87 0:4a3021604777 1 #include "Ultrasonic.h"
leejong87 0:4a3021604777 2 #include "mbed.h"
leejong87 0:4a3021604777 3
leejong87 0:4a3021604777 4 Ultrasonic::Ultrasonic(PinName tx, PinName rx) : _tx(tx),_rx(rx)
leejong87 0:4a3021604777 5 {
leejong87 0:4a3021604777 6 _tx.input();
leejong87 0:4a3021604777 7 t.reset();
leejong87 0:4a3021604777 8 triger.attach(this, &Ultrasonic::triger_func, 0.1);
leejong87 0:4a3021604777 9 _rx.rise(this, &Ultrasonic::start_func);
leejong87 0:4a3021604777 10 _rx.fall(this, &Ultrasonic::end_func);
leejong87 0:4a3021604777 11 }
leejong87 0:4a3021604777 12
leejong87 0:4a3021604777 13 void Ultrasonic::triger_func()
leejong87 0:4a3021604777 14 {
leejong87 0:4a3021604777 15 _tx.output();
leejong87 0:4a3021604777 16 _tx = 1;
leejong87 1:d8a93321fc01 17 wait_us(5);
leejong87 0:4a3021604777 18 _tx = 0;
leejong87 0:4a3021604777 19 _tx.input();
leejong87 0:4a3021604777 20
leejong87 0:4a3021604777 21 }
leejong87 0:4a3021604777 22
leejong87 0:4a3021604777 23 void Ultrasonic::start_func()
leejong87 0:4a3021604777 24 {
leejong87 0:4a3021604777 25 t.reset();
leejong87 0:4a3021604777 26 t.start();
leejong87 0:4a3021604777 27 }
leejong87 0:4a3021604777 28
leejong87 0:4a3021604777 29 void Ultrasonic::end_func()
leejong87 0:4a3021604777 30 {
leejong87 0:4a3021604777 31 t.stop();
leejong87 0:4a3021604777 32 if (( t > 0.00012 ) & ( t < 0.0187)) {
leejong87 0:4a3021604777 33 eco = 331.5*(t/2.0)*1000; // 30mm ~ 3000mm
leejong87 0:4a3021604777 34 }
leejong87 0:4a3021604777 35 }
leejong87 0:4a3021604777 36
leejong87 0:4a3021604777 37 float Ultrasonic::read()
leejong87 0:4a3021604777 38 {
leejong87 0:4a3021604777 39 return eco;
leejong87 0:4a3021604777 40 }