Code for sensor nodes connected by radio receiver with gateway

Dependencies:   mbed WakeUp coapRadioClient DHT11

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers distanceMeter.cpp Source File

distanceMeter.cpp

00001 #include "distanceMeter.h"
00002 #include "mbed.h"
00003 
00004 void DistanceMeter::echoUp() {
00005     timer.start();
00006 }
00007 
00008 void DistanceMeter::echoDown() {
00009     timer.stop();
00010     timeUs = timer.read_us();
00011     timer.reset();
00012     timeReady = true;
00013 }
00014 
00015 DistanceMeter::DistanceMeter(PinName echoPin, PinName triggerPin): timeReady(false), echo(echoPin), trigger(triggerPin) {
00016     trigger = 0;
00017 }
00018 
00019 void DistanceMeter::initialize() {
00020     echo.rise(this, &DistanceMeter::echoUp);
00021     echo.fall(this, &DistanceMeter::echoDown);
00022 }
00023 
00024 int DistanceMeter::read() {
00025     trigger = 1;
00026     wait_us(10);
00027     trigger = 0;
00028 
00029     while(!timeReady)
00030         wait_us(100);
00031 
00032     timeReady = false;
00033     return timeUs * 17 / 1000; // dist in cm, (time * 340) / (2 * 10000)
00034 
00035 }
00036 
00037 int DistanceMeter::getSensorId() {
00038     return 0;
00039 }