US

Dependencies:   HC-SR04 mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 #include "HCSR04.h"
00003 //  https://developer.mbed.org/users/Nestordp/code/HC-SR04/
00004 
00005 Serial pc(USBTX, USBRX);
00006 Ticker Ultrasonic; // Ultrasonic Sensor   https://developer.mbed.org/handbook/Ticker
00007 HCSR04 us(D12, D13); //SRF05(PinName trigger, PinName echo)
00008 DigitalOut selectB(D6);
00009 DigitalOut selectA(D5);
00010 DigitalOut selectb(D4);
00011 DigitalOut selecta(D3);
00012 #define d1 5
00013 #define d2 20
00014 #define d3 35
00015 #define d4 50
00016 int range[12] = {0};
00017 float dis = 0;
00018 
00019 void US()
00020 {   
00021         int i = 0;
00022         for( i = 0; i <= 11; i++)
00023         {
00024             switch(i)
00025             {
00026                 case 0:  //  b=0 a=0 B=0 A=0 Board1
00027                     selectb = 0;
00028                     selecta = 0;
00029                     selectB = 0;
00030                     selectA = 0;
00031                     break;
00032                 case 1:  //  b=0 a=0 B=0 A=1 Board1
00033                     selectb = 0;
00034                     selecta = 0;
00035                     selectB = 0;
00036                     selectA = 1;
00037                     break;
00038                 case 2:  //  b=0 a=0 B=1 A=0 Board1
00039                     selectb = 0;
00040                     selecta = 0;
00041                     selectB = 1;
00042                     selectA = 0;
00043                     break;
00044                 case 3:  //  b=0 a=0 B=1 A=1 Board1
00045                     selectb = 0;
00046                     selecta = 0;
00047                     selectB = 1;
00048                     selectA = 1;
00049                     break;
00050                 case 4:  //  b=0 a=1 B=0 A=0 Board2
00051                     selectb = 0;
00052                     selecta = 1;
00053                     selectB = 0;
00054                     selectA = 0;
00055                     break;
00056                 case 5:  //  b=0 a=1 B=0 A=1 Board2
00057                     selectb = 0;
00058                     selecta = 1;
00059                     selectB = 0;
00060                     selectA = 1;
00061                     break;
00062                 case 6:  //  b=0 a=1 B=1 A=0 Board2
00063                     selectb = 0;
00064                     selecta = 1;
00065                     selectB = 1;
00066                     selectA = 0;
00067                     break;
00068                 case 7:  //  b=0 a=1 B=1 A=1 Board2
00069                     selectb = 0;
00070                     selecta = 1;
00071                     selectB = 1;
00072                     selectA = 1;
00073                     break;
00074                 case 8:  //  b=1 a=0 B=0 A=0 Board3
00075                     selectb = 1;
00076                     selecta = 0;
00077                     selectB = 0;
00078                     selectA = 0;
00079                     break;
00080                 case 9:  //  b=1 a=0 B=0 A=1 Board3
00081                     selectb = 1;
00082                     selecta = 0;
00083                     selectB = 0;
00084                     selectA = 1;
00085                     break;
00086                 case 10:  //  b=1 a=0 B=1 A=0 Board3
00087                     selectb = 1;
00088                     selecta = 0;
00089                     selectB = 1;
00090                     selectA = 0;
00091                     break;
00092                 case 11:  //  b=1 a=0 B=1 A=1 Board3
00093                     selectb = 1;
00094                     selecta = 0;
00095                     selectB = 1;
00096                     selectA = 1;
00097                     break;
00098             }
00099             dis = us.getCm();
00100             if ( dis >= 0 && dis < d1)
00101             {
00102                 range[i] = 0;
00103             }
00104             else if ( dis >= d1 && dis < d2)
00105             {
00106                 range[i] = 1;
00107             }
00108             else if ( dis >= d2 && dis < d3)
00109             {
00110                 range[i] = 2;
00111             }
00112             else if ( dis >= d3 && dis <= d4)
00113             {
00114                 range[i] = 3;
00115             }
00116             else
00117             {
00118                 range[i] = 4;
00119             }
00120         }
00121         //printf(" %d | %d | %d | %d --- %d | %d | %d | %d --- %d | %d | %d | %d \n", range[0], range[1], range[2], range[3], range[4], range[5], range[6], range[7], range[8], range[9], range[10], range[11]);
00122 }
00123 
00124 int main()
00125 {
00126     pc.baud(115200);
00127     Ultrasonic.attach(&US, 0.5); // the address of the function to be attached (US) and the interval (0.4 seconds)
00128     while(1) 
00129     {
00130         printf(" %d | %d | %d | %d --- %d | %d | %d | %d --- %d | %d | %d | %d \n", range[0], range[1], range[2], range[3], range[4], range[5], range[6], range[7], range[8], range[9], range[10], range[11]);
00131         wait(2);
00132     }
00133 }
00134 
00135 
00136 
00137 
00138 
00139