Amber Tang
/
Nucleo_Us_ticker_20160803
US
Embed:
(wiki syntax)
Show/hide line numbers
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
Generated on Sun Jul 17 2022 11:17:00 by 1.7.2