a
HCSR04.h@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 | #ifndef HCSR04_H |
AlexisCollin | 0:586f8f975b8c | 2 | #define HCSR04_H |
AlexisCollin | 0:586f8f975b8c | 3 | |
AlexisCollin | 0:586f8f975b8c | 4 | #include "mbed.h" |
AlexisCollin | 0:586f8f975b8c | 5 | |
AlexisCollin | 0:586f8f975b8c | 6 | |
AlexisCollin | 0:586f8f975b8c | 7 | |
AlexisCollin | 0:586f8f975b8c | 8 | /** |
AlexisCollin | 0:586f8f975b8c | 9 | * Sonar HC-SR04 example. |
AlexisCollin | 0:586f8f975b8c | 10 | * @code |
AlexisCollin | 0:586f8f975b8c | 11 | * #include "mbed.h" |
AlexisCollin | 0:586f8f975b8c | 12 | * #include "HCSR04.h" |
AlexisCollin | 0:586f8f975b8c | 13 | * |
AlexisCollin | 0:586f8f975b8c | 14 | * DigitalOut myled(LED1); |
AlexisCollin | 0:586f8f975b8c | 15 | * Serial pc(USBTX,USBRX); |
AlexisCollin | 0:586f8f975b8c | 16 | * |
AlexisCollin | 0:586f8f975b8c | 17 | * HCSR04 sonar(PTD5, PTA13); |
AlexisCollin | 0:586f8f975b8c | 18 | * |
AlexisCollin | 0:586f8f975b8c | 19 | * int main() { |
AlexisCollin | 0:586f8f975b8c | 20 | * while(1) { |
AlexisCollin | 0:586f8f975b8c | 21 | * printf("Distancia detectada pelo sensor Frente %.2f cm \n", sonar.getCm()); |
AlexisCollin | 0:586f8f975b8c | 22 | * wait_ms(1000); |
AlexisCollin | 0:586f8f975b8c | 23 | * } |
AlexisCollin | 0:586f8f975b8c | 24 | * } |
AlexisCollin | 0:586f8f975b8c | 25 | * |
AlexisCollin | 0:586f8f975b8c | 26 | * @endcode |
AlexisCollin | 0:586f8f975b8c | 27 | */ |
AlexisCollin | 0:586f8f975b8c | 28 | |
AlexisCollin | 0:586f8f975b8c | 29 | class HCSR04 { |
AlexisCollin | 0:586f8f975b8c | 30 | public: |
AlexisCollin | 0:586f8f975b8c | 31 | /** Constructor, create HCSR04 instance |
AlexisCollin | 0:586f8f975b8c | 32 | * |
AlexisCollin | 0:586f8f975b8c | 33 | * @param trigger TRIG pin |
AlexisCollin | 0:586f8f975b8c | 34 | * @param echo ECHO pin |
AlexisCollin | 0:586f8f975b8c | 35 | */ |
AlexisCollin | 0:586f8f975b8c | 36 | HCSR04(PinName trigger, PinName echo); |
AlexisCollin | 0:586f8f975b8c | 37 | |
AlexisCollin | 0:586f8f975b8c | 38 | /** It make a reading of the sonar Faz uma leitura do sonar |
AlexisCollin | 0:586f8f975b8c | 39 | * |
AlexisCollin | 0:586f8f975b8c | 40 | * @returns Tempo do pulso echo em microsegundos*/ |
AlexisCollin | 0:586f8f975b8c | 41 | float readEcho(void); |
AlexisCollin | 0:586f8f975b8c | 42 | |
AlexisCollin | 0:586f8f975b8c | 43 | /** It messures the distance in centimeter "cm" |
AlexisCollin | 0:586f8f975b8c | 44 | * |
AlexisCollin | 0:586f8f975b8c | 45 | *@returns Distance in centimeter |
AlexisCollin | 0:586f8f975b8c | 46 | */ |
AlexisCollin | 0:586f8f975b8c | 47 | float getCm(void); |
AlexisCollin | 0:586f8f975b8c | 48 | |
AlexisCollin | 0:586f8f975b8c | 49 | /** Mede a distência em polegadas "in" |
AlexisCollin | 0:586f8f975b8c | 50 | * |
AlexisCollin | 0:586f8f975b8c | 51 | *@returns Distência em in*/ |
AlexisCollin | 0:586f8f975b8c | 52 | float getIn(void); |
AlexisCollin | 0:586f8f975b8c | 53 | |
AlexisCollin | 0:586f8f975b8c | 54 | private: |
AlexisCollin | 0:586f8f975b8c | 55 | float tdist; //Leitura do tempo transcorrido |
AlexisCollin | 0:586f8f975b8c | 56 | float distcm; //Guarda o valor da distanciância em centímetros |
AlexisCollin | 0:586f8f975b8c | 57 | float distin; //Guarda o valor da distência em polegadas |
AlexisCollin | 0:586f8f975b8c | 58 | |
AlexisCollin | 0:586f8f975b8c | 59 | DigitalOut _t; //Configuração do pino de Trigger |
AlexisCollin | 0:586f8f975b8c | 60 | DigitalIn _e; //Configuração do pino de Echo |
AlexisCollin | 0:586f8f975b8c | 61 | Timer _tempo; //Cria um objeto timer |
AlexisCollin | 0:586f8f975b8c | 62 | |
AlexisCollin | 0:586f8f975b8c | 63 | }; |
AlexisCollin | 0:586f8f975b8c | 64 | |
AlexisCollin | 0:586f8f975b8c | 65 | #endif |