a
HCSR04.cpp@0:586f8f975b8c, 2022-06-28 (annotated)
- Committer:
- AlexisCollin
- Date:
- Tue Jun 28 14:00:35 2022 +0000
- Revision:
- 0:586f8f975b8c
efrei;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
AlexisCollin | 0:586f8f975b8c | 1 | #include "HCSR04.h" |
AlexisCollin | 0:586f8f975b8c | 2 | #include "mbed.h" |
AlexisCollin | 0:586f8f975b8c | 3 | |
AlexisCollin | 0:586f8f975b8c | 4 | |
AlexisCollin | 0:586f8f975b8c | 5 | HCSR04::HCSR04(PinName trigger, PinName echo) : _t(trigger), _e(echo) { |
AlexisCollin | 0:586f8f975b8c | 6 | wait(0.1); |
AlexisCollin | 0:586f8f975b8c | 7 | } |
AlexisCollin | 0:586f8f975b8c | 8 | |
AlexisCollin | 0:586f8f975b8c | 9 | float HCSR04::getCm(void){ |
AlexisCollin | 0:586f8f975b8c | 10 | distcm = readEcho()/58; |
AlexisCollin | 0:586f8f975b8c | 11 | return distcm; |
AlexisCollin | 0:586f8f975b8c | 12 | } |
AlexisCollin | 0:586f8f975b8c | 13 | |
AlexisCollin | 0:586f8f975b8c | 14 | float HCSR04::getIn(void){ |
AlexisCollin | 0:586f8f975b8c | 15 | distin = readEcho()/148; |
AlexisCollin | 0:586f8f975b8c | 16 | return distin; |
AlexisCollin | 0:586f8f975b8c | 17 | } |
AlexisCollin | 0:586f8f975b8c | 18 | |
AlexisCollin | 0:586f8f975b8c | 19 | float HCSR04::readEcho(void){ |
AlexisCollin | 0:586f8f975b8c | 20 | _t=1; //Inicio do trigger |
AlexisCollin | 0:586f8f975b8c | 21 | wait_us(10); //10us de pulso |
AlexisCollin | 0:586f8f975b8c | 22 | _t=0; //Fim do trigger |
AlexisCollin | 0:586f8f975b8c | 23 | while(!_e); |
AlexisCollin | 0:586f8f975b8c | 24 | _tempo.start(); |
AlexisCollin | 0:586f8f975b8c | 25 | while(_e); |
AlexisCollin | 0:586f8f975b8c | 26 | tdist = _tempo.read_us(); //Leitura do tempo transcorrido |
AlexisCollin | 0:586f8f975b8c | 27 | _tempo.stop(); //Paro o temporizador |
AlexisCollin | 0:586f8f975b8c | 28 | _tempo.reset(); //Reset para o próximo ciclo |
AlexisCollin | 0:586f8f975b8c | 29 | return tdist; |
AlexisCollin | 0:586f8f975b8c | 30 | } |