PING Library
PING.h@0:ae8d48256ff1, 2010-02-11 (annotated)
- Committer:
- mshoemaker
- Date:
- Thu Feb 11 03:47:41 2010 +0000
- Revision:
- 0:ae8d48256ff1
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
mshoemaker | 0:ae8d48256ff1 | 1 | #ifndef MBED_PING_H |
mshoemaker | 0:ae8d48256ff1 | 2 | #define MBED_PING_H |
mshoemaker | 0:ae8d48256ff1 | 3 | #include "mbed.h" |
mshoemaker | 0:ae8d48256ff1 | 4 | |
mshoemaker | 0:ae8d48256ff1 | 5 | /* Class: PING |
mshoemaker | 0:ae8d48256ff1 | 6 | * Abstraction for the PING Ultrasonic range finder |
mshoemaker | 0:ae8d48256ff1 | 7 | * |
mshoemaker | 0:ae8d48256ff1 | 8 | * Example: |
mshoemaker | 0:ae8d48256ff1 | 9 | * > // Print measured distance |
mshoemaker | 0:ae8d48256ff1 | 10 | * > |
mshoemaker | 0:ae8d48256ff1 | 11 | * > #include "mbed.h" |
mshoemaker | 0:ae8d48256ff1 | 12 | * > #include "PING.h" |
mshoemaker | 0:ae8d48256ff1 | 13 | * > |
mshoemaker | 0:ae8d48256ff1 | 14 | * > PING ping(p9); |
mshoemaker | 0:ae8d48256ff1 | 15 | * > |
mshoemaker | 0:ae8d48256ff1 | 16 | * > int main() { |
mshoemaker | 0:ae8d48256ff1 | 17 | * > while(1) { |
mshoemaker | 0:ae8d48256ff1 | 18 | * > printf("Measured : %.1f\n", ping.read()); |
mshoemaker | 0:ae8d48256ff1 | 19 | * > wait(0.2); |
mshoemaker | 0:ae8d48256ff1 | 20 | * > } |
mshoemaker | 0:ae8d48256ff1 | 21 | * > } |
mshoemaker | 0:ae8d48256ff1 | 22 | */ |
mshoemaker | 0:ae8d48256ff1 | 23 | class PING |
mshoemaker | 0:ae8d48256ff1 | 24 | { |
mshoemaker | 0:ae8d48256ff1 | 25 | // Public functions |
mshoemaker | 0:ae8d48256ff1 | 26 | public: |
mshoemaker | 0:ae8d48256ff1 | 27 | /* Constructor: PING |
mshoemaker | 0:ae8d48256ff1 | 28 | * Create a PING object, connected to the specified pins |
mshoemaker | 0:ae8d48256ff1 | 29 | * |
mshoemaker | 0:ae8d48256ff1 | 30 | * Variables: |
mshoemaker | 0:ae8d48256ff1 | 31 | * trigger - Output to trigger the PING |
mshoemaker | 0:ae8d48256ff1 | 32 | */ |
mshoemaker | 0:ae8d48256ff1 | 33 | PING(PinName trigger); |
mshoemaker | 0:ae8d48256ff1 | 34 | |
mshoemaker | 0:ae8d48256ff1 | 35 | /* Function: read |
mshoemaker | 0:ae8d48256ff1 | 36 | * A non-blocking function that will return the last measurement |
mshoemaker | 0:ae8d48256ff1 | 37 | * |
mshoemaker | 0:ae8d48256ff1 | 38 | * Variables: |
mshoemaker | 0:ae8d48256ff1 | 39 | * returns - floating point representation in cm. |
mshoemaker | 0:ae8d48256ff1 | 40 | */ |
mshoemaker | 0:ae8d48256ff1 | 41 | float read(void); |
mshoemaker | 0:ae8d48256ff1 | 42 | |
mshoemaker | 0:ae8d48256ff1 | 43 | /* Function: read_in |
mshoemaker | 0:ae8d48256ff1 | 44 | * A non-blocking function that will return the last measurement |
mshoemaker | 0:ae8d48256ff1 | 45 | * |
mshoemaker | 0:ae8d48256ff1 | 46 | * Variables: |
mshoemaker | 0:ae8d48256ff1 | 47 | * returns - floating point representation in in. |
mshoemaker | 0:ae8d48256ff1 | 48 | */ |
mshoemaker | 0:ae8d48256ff1 | 49 | float read_in(void); |
mshoemaker | 0:ae8d48256ff1 | 50 | |
mshoemaker | 0:ae8d48256ff1 | 51 | /* Function: operator float |
mshoemaker | 0:ae8d48256ff1 | 52 | * A short hand way of using the read function |
mshoemaker | 0:ae8d48256ff1 | 53 | * |
mshoemaker | 0:ae8d48256ff1 | 54 | * Example: |
mshoemaker | 0:ae8d48256ff1 | 55 | * > float range = ping.read(); |
mshoemaker | 0:ae8d48256ff1 | 56 | * > float range = ping; |
mshoemaker | 0:ae8d48256ff1 | 57 | * > |
mshoemaker | 0:ae8d48256ff1 | 58 | * > if(ping.read() > 0.25) { ... } |
mshoemaker | 0:ae8d48256ff1 | 59 | * > if(ping > 0.25) { ... } |
mshoemaker | 0:ae8d48256ff1 | 60 | */ |
mshoemaker | 0:ae8d48256ff1 | 61 | operator float(); |
mshoemaker | 0:ae8d48256ff1 | 62 | |
mshoemaker | 0:ae8d48256ff1 | 63 | private : |
mshoemaker | 0:ae8d48256ff1 | 64 | DigitalInOut _trigger; |
mshoemaker | 0:ae8d48256ff1 | 65 | Timer _timer; |
mshoemaker | 0:ae8d48256ff1 | 66 | Ticker _ticker; |
mshoemaker | 0:ae8d48256ff1 | 67 | void _startRange(void); |
mshoemaker | 0:ae8d48256ff1 | 68 | float _dist; |
mshoemaker | 0:ae8d48256ff1 | 69 | }; |
mshoemaker | 0:ae8d48256ff1 | 70 | |
mshoemaker | 0:ae8d48256ff1 | 71 | #endif |