2nd year embedded systems project

Dependencies:   mbed C12832

Committer:
nwabiam
Date:
Tue Dec 15 18:15:48 2020 +0000
Revision:
1:9d7c34bfe43e
Simple Electronic Lock (Solenoid) code

Who changed what in which revision?

UserRevisionLine numberNew contents of line
nwabiam 1:9d7c34bfe43e 1 #include "hcsr04.h"
nwabiam 1:9d7c34bfe43e 2 #include "mbed.h"
nwabiam 1:9d7c34bfe43e 3 /*
nwabiam 1:9d7c34bfe43e 4 *HCSR04.cpp
nwabiam 1:9d7c34bfe43e 5 */
nwabiam 1:9d7c34bfe43e 6 HCSR04::HCSR04(PinName t, PinName e) : trig(t), echo(e) {}
nwabiam 1:9d7c34bfe43e 7 float HCSR04::echo_duration() {
nwabiam 1:9d7c34bfe43e 8
nwabiam 1:9d7c34bfe43e 9 timer.reset(); //reset timer
nwabiam 1:9d7c34bfe43e 10 trig=0; // trigger low
nwabiam 1:9d7c34bfe43e 11 wait_us(2); // wait
nwabiam 1:9d7c34bfe43e 12 trig=1; // trigger high
nwabiam 1:9d7c34bfe43e 13 wait_us(10);
nwabiam 1:9d7c34bfe43e 14 trig=0; // trigger low
nwabiam 1:9d7c34bfe43e 15 while(!echo); // start pulseIN
nwabiam 1:9d7c34bfe43e 16 timer.start();
nwabiam 1:9d7c34bfe43e 17 while(echo);
nwabiam 1:9d7c34bfe43e 18 timer.stop();
nwabiam 1:9d7c34bfe43e 19 return timer.read_us();
nwabiam 1:9d7c34bfe43e 20
nwabiam 1:9d7c34bfe43e 21 }
nwabiam 1:9d7c34bfe43e 22
nwabiam 1:9d7c34bfe43e 23 //return distance in cm
nwabiam 1:9d7c34bfe43e 24 float HCSR04::distance(){
nwabiam 1:9d7c34bfe43e 25 duration = echo_duration();
nwabiam 1:9d7c34bfe43e 26 distance_cm = (duration/2)/29.1 ;
nwabiam 1:9d7c34bfe43e 27 return distance_cm;
nwabiam 1:9d7c34bfe43e 28
nwabiam 1:9d7c34bfe43e 29 }