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

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