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

Committer:
triple
Date:
Fri Aug 22 19:24:38 2014 +0000
Revision:
0:153f3254e133
FIN

Who changed what in which revision?

UserRevisionLine numberNew 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 }