Najbolji program na svijetu. Za stvaranje ultrazvucnih slika novorođenčadi.
HCSR04.cpp@0:0910b24c9da3, 2015-12-09 (annotated)
- Committer:
- ldelinic
- Date:
- Wed Dec 09 12:37:26 2015 +0000
- Revision:
- 0:0910b24c9da3
Najbolji program za mjerenje udaljenosti i dioptrije
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
ldelinic | 0:0910b24c9da3 | 1 | #include "mbed.h" |
ldelinic | 0:0910b24c9da3 | 2 | #include "HCSR04.h" |
ldelinic | 0:0910b24c9da3 | 3 | |
ldelinic | 0:0910b24c9da3 | 4 | HCSR04::HCSR04(PinName echoPin, PinName triggerPin): echo(echoPin), trigger(triggerPin){ |
ldelinic | 0:0910b24c9da3 | 5 | |
ldelinic | 0:0910b24c9da3 | 6 | init(); |
ldelinic | 0:0910b24c9da3 | 7 | |
ldelinic | 0:0910b24c9da3 | 8 | } |
ldelinic | 0:0910b24c9da3 | 9 | |
ldelinic | 0:0910b24c9da3 | 10 | void HCSR04::init(){ |
ldelinic | 0:0910b24c9da3 | 11 | |
ldelinic | 0:0910b24c9da3 | 12 | echo.rise(this, &HCSR04::startTimer); //na rastucem bridu zapocni timer |
ldelinic | 0:0910b24c9da3 | 13 | |
ldelinic | 0:0910b24c9da3 | 14 | echo.fall(this, &HCSR04::stopTimer); //na padajucem bridu zaustavi timer |
ldelinic | 0:0910b24c9da3 | 15 | |
ldelinic | 0:0910b24c9da3 | 16 | distance = -1; //pocetna udaljenost |
ldelinic | 0:0910b24c9da3 | 17 | } |
ldelinic | 0:0910b24c9da3 | 18 | |
ldelinic | 0:0910b24c9da3 | 19 | void HCSR04::startTimer(){ |
ldelinic | 0:0910b24c9da3 | 20 | |
ldelinic | 0:0910b24c9da3 | 21 | timer.start(); //zapocni brojanje |
ldelinic | 0:0910b24c9da3 | 22 | |
ldelinic | 0:0910b24c9da3 | 23 | } |
ldelinic | 0:0910b24c9da3 | 24 | |
ldelinic | 0:0910b24c9da3 | 25 | void HCSR04::stopTimer(){ |
ldelinic | 0:0910b24c9da3 | 26 | |
ldelinic | 0:0910b24c9da3 | 27 | timer.stop(); |
ldelinic | 0:0910b24c9da3 | 28 | } |
ldelinic | 0:0910b24c9da3 | 29 | |
ldelinic | 0:0910b24c9da3 | 30 | void HCSR04::startMeasurement(){ |
ldelinic | 0:0910b24c9da3 | 31 | |
ldelinic | 0:0910b24c9da3 | 32 | trigger=1; |
ldelinic | 0:0910b24c9da3 | 33 | wait_us(10); |
ldelinic | 0:0910b24c9da3 | 34 | trigger=0; |
ldelinic | 0:0910b24c9da3 | 35 | wait_ms(25); |
ldelinic | 0:0910b24c9da3 | 36 | distance=timer.read()*1e6/58; |
ldelinic | 0:0910b24c9da3 | 37 | timer.reset(); |
ldelinic | 0:0910b24c9da3 | 38 | } |
ldelinic | 0:0910b24c9da3 | 39 | |
ldelinic | 0:0910b24c9da3 | 40 | float HCSR04::getDistance_cm(){ |
ldelinic | 0:0910b24c9da3 | 41 | |
ldelinic | 0:0910b24c9da3 | 42 | startMeasurement(); |
ldelinic | 0:0910b24c9da3 | 43 | return distance; |
ldelinic | 0:0910b24c9da3 | 44 | } |
ldelinic | 0:0910b24c9da3 | 45 |