mbedbidos / Mbed 2 deprecated ultrasonido_2

Dependencies:   mbed

Committer:
jiuk
Date:
Tue Nov 13 05:44:18 2018 +0000
Revision:
0:c9881f6aef19
Child:
1:a656f3ed73e5
ultrasonido para el park

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jiuk 0:c9881f6aef19 1
jiuk 0:c9881f6aef19 2 #include "mbed.h"
jiuk 0:c9881f6aef19 3
jiuk 0:c9881f6aef19 4 DigitalOut trigger(PC_12);
jiuk 0:c9881f6aef19 5 DigitalOut myled(LED1); //monitor trigger
jiuk 0:c9881f6aef19 6 DigitalOut myled2(LED2); //monitor echo
jiuk 0:c9881f6aef19 7 DigitalIn echo(PC_10);
jiuk 0:c9881f6aef19 8 int distance = 0;
jiuk 0:c9881f6aef19 9 int correction = 0;
jiuk 0:c9881f6aef19 10 Timer sonar;
jiuk 0:c9881f6aef19 11
jiuk 0:c9881f6aef19 12 int main()
jiuk 0:c9881f6aef19 13 {
jiuk 0:c9881f6aef19 14 sonar.reset();
jiuk 0:c9881f6aef19 15 // measure actual software polling timer delays
jiuk 0:c9881f6aef19 16 // delay used later in time correction
jiuk 0:c9881f6aef19 17 // start timer
jiuk 0:c9881f6aef19 18 sonar.start();
jiuk 0:c9881f6aef19 19 // min software polling delay to read echo pin
jiuk 0:c9881f6aef19 20 while (echo==2) {};
jiuk 0:c9881f6aef19 21 myled2 = 0;
jiuk 0:c9881f6aef19 22 // stop timer
jiuk 0:c9881f6aef19 23 sonar.stop();
jiuk 0:c9881f6aef19 24 // read timer
jiuk 0:c9881f6aef19 25 correction = sonar.read_us();
jiuk 0:c9881f6aef19 26 printf("Approximate software overhead timer delay is %d uS\n\r",correction);
jiuk 0:c9881f6aef19 27
jiuk 0:c9881f6aef19 28 //Loop to read Sonar distance values, scale, and print
jiuk 0:c9881f6aef19 29 while(1) {
jiuk 0:c9881f6aef19 30 // trigger sonar to send a ping
jiuk 0:c9881f6aef19 31 trigger = 1;
jiuk 0:c9881f6aef19 32 myled = 1;
jiuk 0:c9881f6aef19 33 myled2 = 0;
jiuk 0:c9881f6aef19 34 sonar.reset();
jiuk 0:c9881f6aef19 35 wait_us(10.0);
jiuk 0:c9881f6aef19 36 trigger = 0;
jiuk 0:c9881f6aef19 37 myled = 0;
jiuk 0:c9881f6aef19 38 //wait for echo high
jiuk 0:c9881f6aef19 39 while (echo==0) {};
jiuk 0:c9881f6aef19 40 myled2=echo;
jiuk 0:c9881f6aef19 41 //echo high, so start timer
jiuk 0:c9881f6aef19 42 sonar.start();
jiuk 0:c9881f6aef19 43 //wait for echo low
jiuk 0:c9881f6aef19 44 while (echo==1) {};
jiuk 0:c9881f6aef19 45 //stop timer and read value
jiuk 0:c9881f6aef19 46 sonar.stop();
jiuk 0:c9881f6aef19 47 //subtract software overhead timer delay and scale to cm
jiuk 0:c9881f6aef19 48 distance = (sonar.read_us()-correction)/58.0;
jiuk 0:c9881f6aef19 49 myled2 = 0;
jiuk 0:c9881f6aef19 50 printf(" %d cm \n\r",distance);
jiuk 0:c9881f6aef19 51 //wait so that any echo(s) return before sending another ping
jiuk 0:c9881f6aef19 52 wait(0.2);
jiuk 0:c9881f6aef19 53 }
jiuk 0:c9881f6aef19 54 }