This program demonstrates how to use ultrasonic sensor and how to display measured distance on both 16x2 LCD and seven segment display.
Dependencies: HCSR04 SevenSegmentDisplay TextLCD mbed
main.cpp@0:153f3254e133, 2014-08-22 (annotated)
- Committer:
- triple
- Date:
- Fri Aug 22 19:24:38 2014 +0000
- Revision:
- 0:153f3254e133
FIN
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
triple | 0:153f3254e133 | 1 | /******************************************************************************* |
triple | 0:153f3254e133 | 2 | * This program demonstrates how to use ultrasonic sensor HCSR04 and how * |
triple | 0:153f3254e133 | 3 | * to display measured distance on both 16x2 LCD and seven segment display * * |
triple | 0:153f3254e133 | 4 | *******************************************************************************/ |
triple | 0:153f3254e133 | 5 | #include "mbed.h" |
triple | 0:153f3254e133 | 6 | #include "hcsr04.h" |
triple | 0:153f3254e133 | 7 | #include "TextLCD.h" |
triple | 0:153f3254e133 | 8 | #include "SevenSegmentDisplay.h" |
triple | 0:153f3254e133 | 9 | |
triple | 0:153f3254e133 | 10 | // Options to instantiate SevenSegmentDisplay are... |
triple | 0:153f3254e133 | 11 | // FADE: causes the number changes to fade in smoothly |
triple | 0:153f3254e133 | 12 | // INSTANT: causes the an instant number change |
triple | 0:153f3254e133 | 13 | // + FLASH: causes the display to flash |
triple | 0:153f3254e133 | 14 | SevenSegmentDisplay segmentled( FADE ); |
triple | 0:153f3254e133 | 15 | // p1_27, p1_26 |
triple | 0:153f3254e133 | 16 | HCSR04 usensor(p9,p10);// trigger, echo |
triple | 0:153f3254e133 | 17 | // p0_9, p0_8, p1_29, p1_22, p1_21, p1_20 |
triple | 0:153f3254e133 | 18 | TextLCD lcd(p11, p12, p15, p16, p17, p18, TextLCD::LCD16x2); // rs, e, d4-d7 |
triple | 0:153f3254e133 | 19 | |
triple | 0:153f3254e133 | 20 | unsigned int dist; |
triple | 0:153f3254e133 | 21 | int main() |
triple | 0:153f3254e133 | 22 | { |
triple | 0:153f3254e133 | 23 | while(1) { |
triple | 0:153f3254e133 | 24 | usensor.start(); |
triple | 0:153f3254e133 | 25 | wait_ms(500); |
triple | 0:153f3254e133 | 26 | dist=usensor.get_dist_cm(); |
triple | 0:153f3254e133 | 27 | lcd.cls(); |
triple | 0:153f3254e133 | 28 | lcd.locate(0,0); |
triple | 0:153f3254e133 | 29 | lcd.printf("cm:%ld",dist ); |
triple | 0:153f3254e133 | 30 | if(dist<100){ |
triple | 0:153f3254e133 | 31 | segmentled.DisplayInt(dist); |
triple | 0:153f3254e133 | 32 | } |
triple | 0:153f3254e133 | 33 | else { |
triple | 0:153f3254e133 | 34 | segmentled.DisplayInt(99); |
triple | 0:153f3254e133 | 35 | } |
triple | 0:153f3254e133 | 36 | } |
triple | 0:153f3254e133 | 37 | } |