![](/media/cache/group/default_image.jpg.50x50_q85.jpg)
First Draft, serial print change based on distance
Diff: main.cpp
- Revision:
- 9:ada61082bbaa
- Parent:
- 8:7e48229d678c
- Child:
- 10:be53044119d1
--- a/main.cpp Fri Jan 28 13:01:19 2022 +0000 +++ b/main.cpp Fri Jan 28 17:12:01 2022 +0000 @@ -155,7 +155,8 @@ // check which state we are in and see which the next state should be switch(state) { - case 0: + case 0:{ + int sense = 1; lcd.clear(); lcd.printString(" object at 0'",0,0); lcd.printString(" R + 60'",0,2); @@ -163,11 +164,15 @@ lcd.refresh(); if (R == 1){ state = 1;} - else if (L == 1){ - state = 5;} else state = 0; - break; - case 1: + + if (Start_flag == 1) { + Start_flag = 0; + object_sense1(); + } + + break;} + case 1:{ lcd.clear(); lcd.printString(" object at 60'",0,0); lcd.printString(" R + 60'",0,2); @@ -175,11 +180,14 @@ lcd.refresh(); if (R == 1){ state = 2;} - else if (L == 1){ - state = 0;} else state = 1; - break; - case 2: + break;} + + if (Start_flag == 1) { + Start_flag = 0; + object_sense2(); + } + case 2:{ lcd.clear(); lcd.printString(" object at 120'",0,0); lcd.printString(" R + 60'",0,2); @@ -187,11 +195,14 @@ lcd.refresh(); if (R == 1){ state = 3;} - else if (L == 1){ - state = 1;} else state = 2; - break; - case 3: + break;} + + if (Start_flag == 1) { + Start_flag = 0; + object_sense3(); + } + case 3:{ lcd.clear(); lcd.printString(" object at 180'",0,0); lcd.printString(" R + 60'",0,2); @@ -199,11 +210,14 @@ lcd.refresh(); if (R == 1){ state = 4;} - else if (L == 1){ - state = 2;} else state = 3; - break; - case 4: + break;} + + if (Start_flag == 1) { + Start_flag = 0; + object_sense4(); + } + case 4:{ lcd.clear(); lcd.printString(" object at 240'",0,0); lcd.printString(" R + 60'",0,2); @@ -211,26 +225,39 @@ lcd.refresh(); if (R == 1){ state = 5;} - else if (L == 1){ - state = 3;} else state = 4; - break; - case 5: + break;} + + if (Start_flag == 1) { + Start_flag = 0; + object_sense5(); + } + case 5:{ lcd.clear(); lcd.printString(" object at 300'",0,0); lcd.printString(" R + 60'",0,2); lcd.printString(" L - 60'",0,4); lcd.refresh(); if (R == 1){ - state = 0;} - else if (L == 1){ - state = 4;} + state = 6;} else state = 5; - break; - default: + break;} + if (Start_flag == 1) { + Start_flag = 0; + object_sense6(); + } + case 6:{ + if (buffer1 - 10 <= glass[1] >= buffer1 + 10 and buffer2 - 10 <= glass[2] >= buffer2 + 10 and buffer3 - 10 <= glass[3] >= buffer3 + 10 and buffer4 - 10 <= glass[4] >= buffer4 + 10 and buffer5 - 10 <= glass[5] >= buffer5 + 10 and buffer6 - 10 <= glass[6] >= buffer6 + 10){ + printf("glass");} + else{ + printf("nothing");} + } + + + default:{ error("Invalid state"); //invalid state - call error routine // or could jump to starting state i.e. state = 0 - break; + break;} } if (Back_flag == 1) { Back_flag = 0; @@ -258,9 +285,11 @@ void calibrate_object(){ + sense = 0; + while(1) { - mu.checkDistance(); + mu.checkDistance(); if (Back_flag == 1) { Back_flag = 0; @@ -270,21 +299,133 @@ } } +void object_sense1(){ + + sense = 1; + + mu.checkDistance(); + + } + +void object_sense2(){ + + sense = 2; + + mu.checkDistance(); + + } + +void object_sense3(){ + + sense = 3; + + mu.checkDistance(); + + } + +void object_sense4(){ + + sense = 4; + + mu.checkDistance(); + + } + +void object_sense5(){ + + sense = 5; + + mu.checkDistance(); + + } + +void object_sense6(){ + + sense = 6; + + mu.checkDistance(); + + } + void dist(int distance) - { + printf("sense = %d", sense); // printf("Distance changed to %dmm\r\n", distance); - - lcd.clear(); + switch(sense){ + case 0:{ + + lcd.clear(); - char buffer[14]; - int length = sprintf(buffer,"%dmm", distance); - if (length <= 14) + char buffer[14]; + int length = sprintf(buffer,"%dmm", distance); + if (length <= 14) - lcd.printString("set object to",0,0); - lcd.printString(" 1000mm",0,1); - lcd.printString( buffer,0,3); - lcd.refresh(); + lcd.printString("set object to",0,0); + lcd.printString(" 200mm",0,1); + lcd.printString(buffer,24,3); + lcd.refresh(); + + break;} + + case 1:{ + + printf("sens1"); + char buffer1[14]; + int length1 = sprintf(buffer1,"%dmm", distance); + if (length1 <= 14) + //printf("distance = %d", distance); + + break;} + case 2:{ + + printf("sens2"); + char buffer2[14]; + int length2 = sprintf(buffer2,"%dmm", distance); + if (length2 <= 14) + //printf("distance = %d", distance); + + break;} + case 3:{ + + printf("sens3"); + char buffer3[14]; + int length3 = sprintf(buffer3,"%dmm", distance); + if (length3 <= 14) + //printf("distance = %d", distance); + + break;} + + case 4:{ + + printf("sens4"); + char buffer4[14]; + int length4 = sprintf(buffer4,"%dmm", distance); + if (length4 <= 14) + //printf("distance = %d", distance); + + break;} + + case 5:{ + + printf("sens5"); + char buffer5[14]; + int length5 = sprintf(buffer5,"%dmm", distance); + if (length5 <= 14) + //printf("distance = %d", distance); + + break;} + + case 6:{ + + printf("sens6"); + char buffer6[14]; + int length6 = sprintf(buffer6,"%dmm", distance); + if (length6 <= 14) + //printf("distance = %d", distance); + + break;} + + } } /***************************************************************************//**