123

Dependencies:   TM1638 mbed HCSR04

Committer:
lucem1n
Date:
Mon Apr 08 15:06:22 2019 +0000
Revision:
1:63541cb7c9d0
Parent:
0:6f4090a07409
132

Who changed what in which revision?

UserRevisionLine numberNew 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 }