123
Dependencies: TM1638 mbed HCSR04
main.cpp@1:63541cb7c9d0, 2019-04-08 (annotated)
- Committer:
- lucem1n
- Date:
- Mon Apr 08 15:06:22 2019 +0000
- Revision:
- 1:63541cb7c9d0
- Parent:
- 0:6f4090a07409
132
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
lucem1n | 0:6f4090a07409 | 1 | #include "mbed.h" |
lucem1n | 0:6f4090a07409 | 2 | #include "hcsr04.h" |
lucem1n | 1:63541cb7c9d0 | 3 | #include "TM1638.h" |
lucem1n | 0:6f4090a07409 | 4 | |
lucem1n | 0:6f4090a07409 | 5 | Serial pc(SERIAL_TX, SERIAL_RX); |
lucem1n | 1:63541cb7c9d0 | 6 | DigitalOut led1(PC_10); |
lucem1n | 0:6f4090a07409 | 7 | Ticker distancee; |
lucem1n | 0:6f4090a07409 | 8 | AnalogOut Da(PA_5); |
lucem1n | 1:63541cb7c9d0 | 9 | /*********************************************************************************************************************/ |
lucem1n | 1:63541cb7c9d0 | 10 | //Display |
lucem1n | 1:63541cb7c9d0 | 11 | TM1638::KeyData_t keydata; |
lucem1n | 1:63541cb7c9d0 | 12 | TM1638_LEDKEY8 LEDKEY8(PB_5,PB_4,PB_3,PA_10); |
lucem1n | 1:63541cb7c9d0 | 13 | /*********************************************************************************************************************/ |
lucem1n | 1:63541cb7c9d0 | 14 | //PULT |
lucem1n | 1:63541cb7c9d0 | 15 | /*InterruptIn D(PA_14); //D //D1 |
lucem1n | 1:63541cb7c9d0 | 16 | InterruptIn A(PA_13); //A //D2 |
lucem1n | 1:63541cb7c9d0 | 17 | InterruptIn B(PA_15); //B //D0 |
lucem1n | 1:63541cb7c9d0 | 18 | InterruptIn C(PC_12); //C //D3*/ |
lucem1n | 1:63541cb7c9d0 | 19 | /********************************************************************************************************************/ |
lucem1n | 0:6f4090a07409 | 20 | //DigitalOut myled(LED2); |
lucem1n | 0:6f4090a07409 | 21 | |
lucem1n | 0:6f4090a07409 | 22 | //DigitalOut trig(PA_3); |
lucem1n | 0:6f4090a07409 | 23 | //DigitalIn echo(PD_7); |
lucem1n | 0:6f4090a07409 | 24 | HCSR04 usensor(PB_13,PB_14); |
lucem1n | 0:6f4090a07409 | 25 | unsigned int dist=0; |
lucem1n | 0:6f4090a07409 | 26 | int flag1, flag2, flag3 = 0; |
lucem1n | 0:6f4090a07409 | 27 | int i,j,k,m,size=0; |
lucem1n | 1:63541cb7c9d0 | 28 | int a,b,c,d,e,f,g,h = 0; |
lucem1n | 0:6f4090a07409 | 29 | |
lucem1n | 1:63541cb7c9d0 | 30 | /*void BB() { |
lucem1n | 1:63541cb7c9d0 | 31 | led1 = !led1; |
lucem1n | 0:6f4090a07409 | 32 | } |
lucem1n | 1:63541cb7c9d0 | 33 | void DD() { |
lucem1n | 1:63541cb7c9d0 | 34 | led1= !led1; |
lucem1n | 0:6f4090a07409 | 35 | } |
lucem1n | 1:63541cb7c9d0 | 36 | void AA() { |
lucem1n | 1:63541cb7c9d0 | 37 | led1 = !led1; |
lucem1n | 1:63541cb7c9d0 | 38 | } |
lucem1n | 1:63541cb7c9d0 | 39 | void CC() { |
lucem1n | 1:63541cb7c9d0 | 40 | led1 = !led1; |
lucem1n | 1:63541cb7c9d0 | 41 | }*/ |
lucem1n | 1:63541cb7c9d0 | 42 | |
lucem1n | 0:6f4090a07409 | 43 | void ddistance () |
lucem1n | 0:6f4090a07409 | 44 | { |
lucem1n | 0:6f4090a07409 | 45 | usensor.start(); |
lucem1n | 0:6f4090a07409 | 46 | dist=usensor.get_dist_cm(); |
lucem1n | 0:6f4090a07409 | 47 | } |
lucem1n | 0:6f4090a07409 | 48 | |
lucem1n | 1:63541cb7c9d0 | 49 | void sbros () |
lucem1n | 1:63541cb7c9d0 | 50 | { |
lucem1n | 1:63541cb7c9d0 | 51 | a=0; |
lucem1n | 1:63541cb7c9d0 | 52 | b=0; |
lucem1n | 1:63541cb7c9d0 | 53 | c=0; |
lucem1n | 1:63541cb7c9d0 | 54 | d=0; |
lucem1n | 1:63541cb7c9d0 | 55 | e=0; |
lucem1n | 1:63541cb7c9d0 | 56 | f=0; |
lucem1n | 1:63541cb7c9d0 | 57 | g=0; |
lucem1n | 1:63541cb7c9d0 | 58 | h=0; |
lucem1n | 1:63541cb7c9d0 | 59 | } |
lucem1n | 1:63541cb7c9d0 | 60 | void perebros () |
lucem1n | 0:6f4090a07409 | 61 | { |
lucem1n | 1:63541cb7c9d0 | 62 | if(h>9) |
lucem1n | 1:63541cb7c9d0 | 63 | { |
lucem1n | 1:63541cb7c9d0 | 64 | g++; |
lucem1n | 1:63541cb7c9d0 | 65 | h=0; |
lucem1n | 1:63541cb7c9d0 | 66 | if(g>9) |
lucem1n | 1:63541cb7c9d0 | 67 | { |
lucem1n | 1:63541cb7c9d0 | 68 | f++; |
lucem1n | 1:63541cb7c9d0 | 69 | g=0; |
lucem1n | 1:63541cb7c9d0 | 70 | h=0; |
lucem1n | 1:63541cb7c9d0 | 71 | if(f>9) |
lucem1n | 1:63541cb7c9d0 | 72 | { |
lucem1n | 1:63541cb7c9d0 | 73 | sbros(); |
lucem1n | 1:63541cb7c9d0 | 74 | } |
lucem1n | 1:63541cb7c9d0 | 75 | } |
lucem1n | 1:63541cb7c9d0 | 76 | |
lucem1n | 1:63541cb7c9d0 | 77 | } |
lucem1n | 1:63541cb7c9d0 | 78 | } |
lucem1n | 0:6f4090a07409 | 79 | |
lucem1n | 0:6f4090a07409 | 80 | int main() |
lucem1n | 0:6f4090a07409 | 81 | { |
lucem1n | 1:63541cb7c9d0 | 82 | /* B.rise(&BB); |
lucem1n | 1:63541cb7c9d0 | 83 | D.rise(&DD); |
lucem1n | 1:63541cb7c9d0 | 84 | A.rise(&AA); |
lucem1n | 1:63541cb7c9d0 | 85 | C.rise(&CC);*/ |
lucem1n | 0:6f4090a07409 | 86 | int verh; |
lucem1n | 0:6f4090a07409 | 87 | int nij; |
lucem1n | 0:6f4090a07409 | 88 | while(1) { |
lucem1n | 1:63541cb7c9d0 | 89 | ddistance(); |
lucem1n | 1:63541cb7c9d0 | 90 | LEDKEY8.printf ("%d%d%d%d%d%d%d%d", a, b, c, d, e, f, g, h); |
lucem1n | 0:6f4090a07409 | 91 | verh = 80; |
lucem1n | 0:6f4090a07409 | 92 | nij = 10; |
lucem1n | 0:6f4090a07409 | 93 | if(dist >verh) |
lucem1n | 0:6f4090a07409 | 94 | { |
lucem1n | 0:6f4090a07409 | 95 | flag1=1; |
lucem1n | 0:6f4090a07409 | 96 | } |
lucem1n | 0:6f4090a07409 | 97 | if(flag1==1 && dist < nij) |
lucem1n | 0:6f4090a07409 | 98 | { |
lucem1n | 0:6f4090a07409 | 99 | flag2=1; |
lucem1n | 0:6f4090a07409 | 100 | } |
lucem1n | 0:6f4090a07409 | 101 | if (flag1==1 && flag2==1 && dist>verh) |
lucem1n | 0:6f4090a07409 | 102 | { |
lucem1n | 0:6f4090a07409 | 103 | flag3=1; |
lucem1n | 0:6f4090a07409 | 104 | } |
lucem1n | 0:6f4090a07409 | 105 | if( flag1==1 && flag2==1 && flag3==1) |
lucem1n | 0:6f4090a07409 | 106 | { |
lucem1n | 0:6f4090a07409 | 107 | flag1=0; |
lucem1n | 0:6f4090a07409 | 108 | flag2=0; |
lucem1n | 0:6f4090a07409 | 109 | flag3=0; |
lucem1n | 1:63541cb7c9d0 | 110 | h++; |
lucem1n | 1:63541cb7c9d0 | 111 | perebros(); |
lucem1n | 0:6f4090a07409 | 112 | } |
lucem1n | 1:63541cb7c9d0 | 113 | if (LEDKEY8.getKeys(&keydata)) { |
lucem1n | 1:63541cb7c9d0 | 114 | // pc.printf("Keydata 0..3 = 0x%02x 0x%02x 0x%02x 0x%02x\r\n", keydata[0], keydata[1], keydata[2], keydata[3]); |
lucem1n | 1:63541cb7c9d0 | 115 | if (keydata[0] == 0x01) { //sw1 |
lucem1n | 1:63541cb7c9d0 | 116 | int k; |
lucem1n | 1:63541cb7c9d0 | 117 | k=h; |
lucem1n | 1:63541cb7c9d0 | 118 | h++; |
lucem1n | 1:63541cb7c9d0 | 119 | if(h-k==1) |
lucem1n | 1:63541cb7c9d0 | 120 | { |
lucem1n | 1:63541cb7c9d0 | 121 | wait(0.3); |
lucem1n | 1:63541cb7c9d0 | 122 | perebros(); |
lucem1n | 1:63541cb7c9d0 | 123 | } |
lucem1n | 1:63541cb7c9d0 | 124 | } |
lucem1n | 1:63541cb7c9d0 | 125 | if (keydata[1] == 0x01) { //sw1 |
lucem1n | 1:63541cb7c9d0 | 126 | sbros(); |
lucem1n | 1:63541cb7c9d0 | 127 | } |
lucem1n | 1:63541cb7c9d0 | 128 | if (keydata[2] == 0x01) { //sw1 |
lucem1n | 1:63541cb7c9d0 | 129 | if (e<9) |
lucem1n | 0:6f4090a07409 | 130 | { |
lucem1n | 1:63541cb7c9d0 | 131 | e++; |
lucem1n | 1:63541cb7c9d0 | 132 | wait(0.3); |
lucem1n | 1:63541cb7c9d0 | 133 | } |
lucem1n | 1:63541cb7c9d0 | 134 | else e=0; |
lucem1n | 1:63541cb7c9d0 | 135 | } |
lucem1n | 1:63541cb7c9d0 | 136 | if (keydata[3] == 0x01) { |
lucem1n | 1:63541cb7c9d0 | 137 | /*if(h+g+f<e) |
lucem1n | 0:6f4090a07409 | 138 | { |
lucem1n | 1:63541cb7c9d0 | 139 | h=0; |
lucem1n | 1:63541cb7c9d0 | 140 | g=0; |
lucem1n | 1:63541cb7c9d0 | 141 | f=0; |
lucem1n | 1:63541cb7c9d0 | 142 | e=0; |
lucem1n | 1:63541cb7c9d0 | 143 | } */ |
lucem1n | 1:63541cb7c9d0 | 144 | if(h>=e) |
lucem1n | 1:63541cb7c9d0 | 145 | { |
lucem1n | 1:63541cb7c9d0 | 146 | h=h-e; |
lucem1n | 1:63541cb7c9d0 | 147 | } |
lucem1n | 1:63541cb7c9d0 | 148 | else if(h<e) |
lucem1n | 1:63541cb7c9d0 | 149 | { |
lucem1n | 1:63541cb7c9d0 | 150 | if(g==0) |
lucem1n | 1:63541cb7c9d0 | 151 | { |
lucem1n | 1:63541cb7c9d0 | 152 | f=f-1; |
lucem1n | 1:63541cb7c9d0 | 153 | g=g+10-(e-h); |
lucem1n | 1:63541cb7c9d0 | 154 | h=h+10; |
lucem1n | 1:63541cb7c9d0 | 155 | h=h-g; |
lucem1n | 1:63541cb7c9d0 | 156 | } |
lucem1n | 1:63541cb7c9d0 | 157 | else if(g!=0) |
lucem1n | 0:6f4090a07409 | 158 | { |
lucem1n | 1:63541cb7c9d0 | 159 | h=h+10; |
lucem1n | 1:63541cb7c9d0 | 160 | h=h-e; |
lucem1n | 1:63541cb7c9d0 | 161 | g=g-1; |
lucem1n | 0:6f4090a07409 | 162 | } |
lucem1n | 0:6f4090a07409 | 163 | } |
lucem1n | 1:63541cb7c9d0 | 164 | wait(0.3); |
lucem1n | 1:63541cb7c9d0 | 165 | } |
lucem1n | 0:6f4090a07409 | 166 | } |
lucem1n | 0:6f4090a07409 | 167 | } |
lucem1n | 1:63541cb7c9d0 | 168 | } |