Child Monitor system
Dependencies: HC_SR04_Ultrasonic_proximity_sensor mbed
Fork of ultrasonic_sensor_trial by
main.cpp
- Committer:
- Niranjan_ravi
- Date:
- 2017-12-06
- Revision:
- 0:59d1b681f30e
File content as of revision 0:59d1b681f30e:
#include "mbed.h" DigitalOut trigger(PTC3); DigitalOut myled(LED1); //monitor trigger DigitalOut myled2(LED2); //monitor echo DigitalIn echo(PTC2); int distance = 0; int correction = 0; Timer sonar; Serial pc(USBTX, USBRX); Serial xbee(PTC17, PTC16); char bufchar; int main() { sonar.reset(); // measure actual software polling timer delays // delay used later in time correction // start timer sonar.start(); xbee.baud(9600); // min software polling delay to read echo pin while (echo==2) {}; myled2 = 0; // stop timer sonar.stop(); // read timer correction = sonar.read_us(); printf("Approximate software overhead timer delay is %d uS\n\r",correction); //Loop to read Sonar distance values, scale, and print while(1) { // trigger sonar to send a ping trigger = 1; myled = 1; myled2 = 0; sonar.reset(); wait_us(10.0); trigger = 0; myled = 0; //wait for echo high while (echo==0) {}; myled2=echo; //echo high, so start timer sonar.start(); //wait for echo low while (echo==1) {}; //stop timer and read value sonar.stop(); //subtract software overhead timer delay and scale to cm distance = (sonar.read_us()-correction)/58.0; myled2 = 0; if(distance<=300) { xbee.printf("%d \n\r", distance); printf(" The baby is at %d cm from the Proximity sensor \n\r", distance); } //wait so that any echo(s) return before sending another ping wait(0.15); } }