First Distance sensor attempt

Dependencies:   mbed

Fork of frdm_Distance by Flying Monkeys

Committer:
danderson8814
Date:
Sat Jun 27 23:51:34 2015 +0000
Revision:
6:71c9054f905e
Parent:
5:9fcfddb46a8d
Child:
7:48b6ad2fc7cd
Switch up time

Who changed what in which revision?

UserRevisionLine numberNew contents of line
danderson8814 0:cfc5bd6037db 1 #include "mbed.h"
danderson8814 0:cfc5bd6037db 2
danderson8814 2:3e4aa1da40a5 3 // Initializing all ins and outs: Program should get distance in cm when switch 2 is pressed and release
danderson8814 2:3e4aa1da40a5 4 // and change LED from Green to red when Switch 2 is pressed
danderson8814 2:3e4aa1da40a5 5
danderson8814 3:11c70b1b6934 6 DigitalOut led_red(LED_RED);
danderson8814 3:11c70b1b6934 7 DigitalOut led_green(LED_GREEN);
danderson8814 4:f6c0c1f2f5ef 8 DigitalIn Re(D13);
danderson8814 4:f6c0c1f2f5ef 9 DigitalOut Trig(D12);
danderson8814 4:f6c0c1f2f5ef 10 DigitalOut Pwr(D11);
danderson8814 3:11c70b1b6934 11 InterruptIn sw2(SW2);
danderson8814 3:11c70b1b6934 12 Serial pc(USBTX, USBRX);
danderson8814 3:11c70b1b6934 13 Timer timer;
danderson8814 6:71c9054f905e 14 long ReEnd;
danderson8814 0:cfc5bd6037db 15
danderson8814 2:3e4aa1da40a5 16 void sw2_release(void)
danderson8814 0:cfc5bd6037db 17 {
danderson8814 6:71c9054f905e 18 Trig = 0;
danderson8814 6:71c9054f905e 19 timer.reset();
danderson8814 6:71c9054f905e 20 wait_us(2);
danderson8814 1:0b176971be25 21 led_red = 0;
danderson8814 1:0b176971be25 22 led_green = 1;
danderson8814 3:11c70b1b6934 23 Trig = 1;
danderson8814 6:71c9054f905e 24 wait_us(15);
danderson8814 3:11c70b1b6934 25 Trig = 0;
danderson8814 6:71c9054f905e 26 while (!Re) {
danderson8814 6:71c9054f905e 27 timer.start();
danderson8814 6:71c9054f905e 28 }
danderson8814 6:71c9054f905e 29
danderson8814 6:71c9054f905e 30 while (Re){
danderson8814 6:71c9054f905e 31 timer.stop();
danderson8814 6:71c9054f905e 32 }
danderson8814 6:71c9054f905e 33
danderson8814 6:71c9054f905e 34
danderson8814 3:11c70b1b6934 35 ReEnd = timer.read_us();
danderson8814 6:71c9054f905e 36 pc.printf("Distance is %d cm \r\n" , ReEnd );
danderson8814 2:3e4aa1da40a5 37
danderson8814 0:cfc5bd6037db 38 }
danderson8814 0:cfc5bd6037db 39
danderson8814 3:11c70b1b6934 40 void sw2_press(void)
danderson8814 3:11c70b1b6934 41 {
danderson8814 3:11c70b1b6934 42 led_red = 1 ;
danderson8814 3:11c70b1b6934 43 led_green = 0;
danderson8814 3:11c70b1b6934 44
danderson8814 3:11c70b1b6934 45 }
danderson8814 3:11c70b1b6934 46
danderson8814 3:11c70b1b6934 47
danderson8814 3:11c70b1b6934 48
danderson8814 0:cfc5bd6037db 49 int main()
danderson8814 0:cfc5bd6037db 50 {
danderson8814 3:11c70b1b6934 51 Trig = 0;
danderson8814 3:11c70b1b6934 52
danderson8814 4:f6c0c1f2f5ef 53 Pwr=1;
danderson8814 4:f6c0c1f2f5ef 54
danderson8814 4:f6c0c1f2f5ef 55 pc.baud(115200);
danderson8814 4:f6c0c1f2f5ef 56
danderson8814 6:71c9054f905e 57
danderson8814 5:9fcfddb46a8d 58 pc.printf("Board has been reset \r\n");
danderson8814 3:11c70b1b6934 59 while (true) {
danderson8814 6:71c9054f905e 60
danderson8814 6:71c9054f905e 61 sw2.rise(&sw2_release);
danderson8814 6:71c9054f905e 62
danderson8814 6:71c9054f905e 63 sw2.fall(&sw2_press);
danderson8814 0:cfc5bd6037db 64 }
danderson8814 0:cfc5bd6037db 65 }