Development and testing of ultrasonic distance measurement library for device HC-SR04.

Dependencies:   TextLCD_improved mbed Distance_HC_SR04

main.cpp

Committer:
dzoni
Date:
2015-12-21
Branch:
CLASS_IMPLEMENTATION
Revision:
7:cdde5cc8b2b3
Parent:
5:1a69f40177b0

File content as of revision 7:cdde5cc8b2b3:

/*
 * MAIN.CPP
 */
#include "mbed.h"

#include "TextLCD.h"
#include "Distance_HC_SR04.h"


int main() {

    TextLCD lcd(PA_8, PA_7, PA_9, PA_1, PB_5, PA_10, TextLCD::LCD16x2);
    
    wait_ms(250);
    lcd.cls();

    Distance_HC_SR04 distFront(PB_9, PA_6);
    uint32_t ticks_us;
    float distance;

    while (true) {
        ticks_us = distFront.measureTicks();
        distance = distFront.getDistance();

        lcd.cls();

        switch (distFront.getState()) {
            case COMPLETED:
                lcd.printf("Dist.: %u", ticks_us);
                lcd.locate(0, 1);
                lcd.printf("Dist.: %.3f", distance);

                break;

            case TIMEOUT:
                lcd.printf("Dist.: ---");
                lcd.locate(0, 1);
                lcd.printf("TIMEOUT");

                break;

            case ERROR_SIG:
                lcd.printf("Dist.: ---");
                lcd.locate(0, 1);
                lcd.printf("ERROR_SIG");

                break;

            case OUT_OF_RANGE_MIN:
                lcd.printf("Dist.: ---");
                lcd.locate(0, 1);
                lcd.printf("OUT_OF_RANGE_MIN");

                break;

            case OUT_OF_RANGE_MAX:
                lcd.printf("Dist.: ---");
                lcd.locate(0, 1);
                lcd.printf("OUT_OF_RANGE_MAX");

                break;

            default:
                lcd.printf("Dist.: ---");
                lcd.locate(0, 1);
                lcd.printf("OTHER");

                break;
        }
        wait_ms(100);
    }
}