Collision Slave for k64f

Dependencies:   mbed HCSR04

Committer:
varza
Date:
Wed Dec 12 22:02:46 2018 +0000
Revision:
0:3d16d51ea46c
Collision slave k64f;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
varza 0:3d16d51ea46c 1 #include "mbed.h"
varza 0:3d16d51ea46c 2 #include "HCSR04.h"
varza 0:3d16d51ea46c 3 #define PIN_TRIGGER D0
varza 0:3d16d51ea46c 4 #define PIN_ECHO D1
varza 0:3d16d51ea46c 5
varza 0:3d16d51ea46c 6 Timeout response;
varza 0:3d16d51ea46c 7
varza 0:3d16d51ea46c 8 DigitalOut green(LED_GREEN);
varza 0:3d16d51ea46c 9 DigitalOut red(LED_RED);
varza 0:3d16d51ea46c 10 DigitalIn sw2(SW2);
varza 0:3d16d51ea46c 11 DigitalIn motion(D7);
varza 0:3d16d51ea46c 12 Serial pc(USBTX, USBRX );
varza 0:3d16d51ea46c 13
varza 0:3d16d51ea46c 14 Serial blue(PTC15, PTC14); //tx, rx
varza 0:3d16d51ea46c 15
varza 0:3d16d51ea46c 16
varza 0:3d16d51ea46c 17 int main()
varza 0:3d16d51ea46c 18 {
varza 0:3d16d51ea46c 19 HCSR04 rangeFinder( PIN_TRIGGER, PIN_ECHO );
varza 0:3d16d51ea46c 20 char send = 'Z';
varza 0:3d16d51ea46c 21 int rangeFeet;
varza 0:3d16d51ea46c 22 float range;
varza 0:3d16d51ea46c 23
varza 0:3d16d51ea46c 24 pc.baud(9600);
varza 0:3d16d51ea46c 25 blue.baud(9600);
varza 0:3d16d51ea46c 26
varza 0:3d16d51ea46c 27 printf("Slave connecting to the master\n");
varza 0:3d16d51ea46c 28
varza 0:3d16d51ea46c 29 //--------------------------------------------------------------------------
varza 0:3d16d51ea46c 30
varza 0:3d16d51ea46c 31 while (true) {
varza 0:3d16d51ea46c 32 rangeFinder.startMeas();
varza 0:3d16d51ea46c 33 wait(0.5f);
varza 0:3d16d51ea46c 34 if ( rangeFinder.getMeas(range) == RANGE_MEAS_VALID )
varza 0:3d16d51ea46c 35 {
varza 0:3d16d51ea46c 36
varza 0:3d16d51ea46c 37 // printf("pre mod range = %f \n\r", range);
varza 0:3d16d51ea46c 38 range = (range * 100);
varza 0:3d16d51ea46c 39 // printf("post mod range = %f \n\r", range);
varza 0:3d16d51ea46c 40 rangeFeet = range;
varza 0:3d16d51ea46c 41 // printf("rangeFeet = %i \n\r", rangeFeet);
varza 0:3d16d51ea46c 42 }
varza 0:3d16d51ea46c 43
varza 0:3d16d51ea46c 44
varza 0:3d16d51ea46c 45 //--------------------------------------------------------------------------
varza 0:3d16d51ea46c 46
varza 0:3d16d51ea46c 47
varza 0:3d16d51ea46c 48 if(blue.readable())//Determine if there is a character available to read.
varza 0:3d16d51ea46c 49 {
varza 0:3d16d51ea46c 50 if(rangeFeet > 2900)
varza 0:3d16d51ea46c 51 {
varza 0:3d16d51ea46c 52 rangeFeet = 0;
varza 0:3d16d51ea46c 53 }
varza 0:3d16d51ea46c 54 char word = (rangeFeet) + '0';
varza 0:3d16d51ea46c 55 //printf("\n word = %c \n\r", word);
varza 0:3d16d51ea46c 56 blue.putc(word);
varza 0:3d16d51ea46c 57 }
varza 0:3d16d51ea46c 58
varza 0:3d16d51ea46c 59
varza 0:3d16d51ea46c 60 //--------------------------------------------------------------------------
varza 0:3d16d51ea46c 61 wait(0.5f); // wait a small period of time
varza 0:3d16d51ea46c 62 green = !green; // toggle a led
varza 0:3d16d51ea46c 63
varza 0:3d16d51ea46c 64 }
varza 0:3d16d51ea46c 65 }