This program allows user to measure distance with SRF02 distance sensor and display the result on a Nokia LCD Display
Dependencies: N5110 PowerControl SRF02 mbed
Diff: main.cpp
- Revision:
- 2:272d9de9f37e
- Parent:
- 1:c720fcb68396
- Child:
- 3:012cdc8e0f75
--- a/main.cpp Fri Apr 10 14:14:52 2015 +0000 +++ b/main.cpp Fri Apr 10 14:38:27 2015 +0000 @@ -74,6 +74,9 @@ timer5.attach(&timer5Expired,0.1); // 2s timer serial.attach(&serialISR); // attach serial ISR char buffer[30]; // buffer used to store information + char buffer1[14]; // buffer used to store distance for LCD + char buffer2[14]; // buffer used to store time for LCD + char buffer3[14]; // buffer used to store month/date for LCD set_time(0); // initialise time to 1st January 1970 led1 = 1; @@ -87,6 +90,8 @@ time_t seconds = time(NULL); // get current time // format time into a string (time and date) strftime(buffer, 30 , "%b %d, %X", localtime(&seconds)); + strftime(buffer2, 14 , "%X", localtime(&seconds)); + strftime(buffer3, 14 , "%b %d", localtime(&seconds)); /*if (dFlag) { writeDataToFile(buffer, distance); // write current value to disk }*/ @@ -102,20 +107,36 @@ if (uFlag) { float mdistance = distance/100; serial.printf("%s, %.2f m\n",buffer, mdistance); - float length = sprintf(buffer,"D = %.2f m",mdistance); + float length = sprintf(buffer1,"D = %.2f m",mdistance); + float length1 = sprintf(buffer2,"%s",buffer2); + float length2 = sprintf(buffer3,"%s",buffer3); if (dFlag) { if (length <= 14) { - lcd.printString(buffer,7,1); + if (length1 <= 14) { + if (length2 <= 14) { + lcd.printString(buffer1,3,1); + lcd.printString(buffer2,18,4); + lcd.printString(buffer3,24,3); + } + } } } else { lcd.drawRect(1,1,84,48,1); // filled black rectangle } } else { serial.printf("%s, %.0f cm\n",buffer, distance); - float length = sprintf(buffer,"D = %.2f cm",distance); + float length = sprintf(buffer1,"D = %.2f cm",distance); + float length1 = sprintf(buffer2,"%s",buffer2); + float length2 = sprintf(buffer3,"%s",buffer3); if (dFlag) { if (length <= 14) { - lcd.printString(buffer,7,1); + if (length1 <= 14) { + if (length2 <= 14) { + lcd.printString(buffer1,3,1); + lcd.printString(buffer2,18,4); + lcd.printString(buffer3,24,3); + } + } } } else { lcd.drawRect(1,1,84,48,1); // filled black rectangle @@ -134,20 +155,36 @@ if (uFlag) { float mdistance = distance/100; serial.printf("%s, %.2f m\n",buffer, mdistance); - float length = sprintf(buffer,"D = %.2f m",mdistance); + float length = sprintf(buffer1,"D = %.2f m",mdistance); + float length1 = sprintf(buffer2,"%s",buffer2); + float length2 = sprintf(buffer3,"%s",buffer3); if (dFlag) { if (length <= 14) { - lcd.printString(buffer,7,1); + if (length1 <= 14) { + if (length2 <= 14) { + lcd.printString(buffer1,3,1); + lcd.printString(buffer2,18,4); + lcd.printString(buffer3,24,3); + } + } } } else { lcd.drawRect(1,1,64,48,1); // filled black rectangle } } else { serial.printf("%s, %.0f cm\n",buffer, distance); - float length = sprintf(buffer,"D = %.2f cm",distance); + float length = sprintf(buffer1,"D = %.2f cm",distance); + float length1 = sprintf(buffer2,"%s",buffer2); + float length2 = sprintf(buffer3,"%s",buffer3); if (dFlag) { if (length <= 14) { - lcd.printString(buffer,7,1); + if (length1 <= 14) { + if (length2 <= 14) { + lcd.printString(buffer1,3,1); + lcd.printString(buffer2,18,4); + lcd.printString(buffer3,24,3); + } + } } } else { lcd.drawRect(1,1,64,48,1); // filled black rectangle @@ -166,20 +203,36 @@ if (uFlag) { float mdistance = distance/100; serial.printf("%s, %.2f m\n",buffer, mdistance); - float length = sprintf(buffer,"D = %.2f m",mdistance); + float length = sprintf(buffer1,"D = %.2f m",mdistance); + float length1 = sprintf(buffer2,"%s",buffer2); + float length2 = sprintf(buffer3,"%s",buffer3); if (dFlag) { if (length <= 14) { - lcd.printString(buffer,7,1); + if (length1 <= 14) { + if (length2 <= 14) { + lcd.printString(buffer1,3,1); + lcd.printString(buffer2,18,4); + lcd.printString(buffer3,24,3); + } + } } } else { lcd.drawRect(1,1,44,48,1); // filled black rectangle } } else { serial.printf("%s, %.0f cm\n",buffer, distance); - float length = sprintf(buffer,"D = %.2f cm",distance); + float length = sprintf(buffer1,"D = %.2f cm",distance); + float length1 = sprintf(buffer2,"%s",buffer2); + float length2 = sprintf(buffer3,"%s",buffer3); if (dFlag) { if (length <= 14) { - lcd.printString(buffer,7,1); + if (length1 <= 14) { + if (length2 <= 14) { + lcd.printString(buffer1,3,1); + lcd.printString(buffer2,18,4); + lcd.printString(buffer3,24,3); + } + } } } else { lcd.drawRect(1,1,44,48,1); // filled black rectangle @@ -197,21 +250,37 @@ timer1Flag = 0; if (uFlag) { float mdistance = distance/100; - serial.printf("%s, %.2f m\n",buffer, mdistance); + serial.printf("%s, %.2f m\n",buffer1, mdistance); float length = sprintf(buffer,"D = %.2f m",mdistance); + float length1 = sprintf(buffer2,"%s",buffer2); + float length2 = sprintf(buffer3,"%s",buffer3); if (dFlag) { if (length <= 14) { - lcd.printString(buffer,7,1); + if (length1 <= 14) { + if (length2 <= 14) { + lcd.printString(buffer1,3,1); + lcd.printString(buffer2,18,4); + lcd.printString(buffer3,24,3); + } + } } } else { lcd.drawRect(1,1,24,48,1); // filled black rectangle } } else { serial.printf("%s, %.0f cm\n",buffer, distance); - float length = sprintf(buffer,"D = %.2f cm",distance); + float length = sprintf(buffer1,"D = %.2f cm",distance); + float length1 = sprintf(buffer2,"%s",buffer2); + float length2 = sprintf(buffer3,"%s",buffer3); if (dFlag) { if (length <= 14) { - lcd.printString(buffer,7,1); + if (length1 <= 14) { + if (length2 <= 14) { + lcd.printString(buffer1,3,1); + lcd.printString(buffer2,18,4); + lcd.printString(buffer3,24,3); + } + } } } else { lcd.drawRect(1,1,24,48,1); // filled black rectangle @@ -230,20 +299,36 @@ if (uFlag) { float mdistance = distance/100; serial.printf("%s, %.2f m\n",buffer, mdistance); - float length = sprintf(buffer,"D = %.2f m",mdistance); + float length = sprintf(buffer1,"D = %.2f m",mdistance); + float length1 = sprintf(buffer2,"%s",buffer2); + float length2 = sprintf(buffer3,"%s",buffer3); if (dFlag) { if (length <= 14) { - lcd.printString(buffer,7,1); + if (length1 <= 14) { + if (length2 <= 14) { + lcd.printString(buffer1,3,1); + lcd.printString(buffer2,18,4); + lcd.printString(buffer3,24,3); + } + } } } else { lcd.drawRect(1,1,4,48,1); // filled black rectangle } } else { serial.printf("%s, %.0f cm\n",buffer, distance); - float length = sprintf(buffer,"D = %.2f cm",distance); + float length = sprintf(buffer1,"D = %.2f cm",distance); + float length1 = sprintf(buffer2,"%s",buffer2); + float length2 = sprintf(buffer3,"%s",buffer3); if (dFlag) { if (length <= 14) { - lcd.printString(buffer,7,1); + if (length1 <= 14) { + if (length2 <= 14) { + lcd.printString(buffer1,3,1); + lcd.printString(buffer2,18,4); + lcd.printString(buffer3,24,3); + } + } } } else { lcd.drawRect(1,1,4,48,1); // filled black rectangle