![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
Collision Slave for k64f
Slave_Main_Collision.cpp@0:3d16d51ea46c, 2018-12-12 (annotated)
- Committer:
- varza
- Date:
- Wed Dec 12 22:02:46 2018 +0000
- Revision:
- 0:3d16d51ea46c
Collision slave k64f;
Who changed what in which revision?
User | Revision | Line number | New 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 | } |