4180 Lab 4 Project

Dependencies:   4DGL-uLCD-SE DebounceIn EthernetInterface HTTPClient Motor NTPClient Servo mbed-rtos mbed

Fork of 4180_BLE_Eth by Ari Bleemer

Files at this revision

API Documentation at this revision

Comitter:
vceyssens3
Date:
Thu Mar 16 16:01:29 2017 +0000
Parent:
0:9744f456fe92
Commit message:
Lab 4 ECE 4180 Project;

Changed in this revision

DebounceIn.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
diff -r 9744f456fe92 -r 4ea41c8f9bfb DebounceIn.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/DebounceIn.lib	Thu Mar 16 16:01:29 2017 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/AjK/code/DebounceIn/#91a2e988ba9d
diff -r 9744f456fe92 -r 4ea41c8f9bfb main.cpp
--- a/main.cpp	Wed Mar 15 18:10:35 2017 +0000
+++ b/main.cpp	Thu Mar 16 16:01:29 2017 +0000
@@ -6,10 +6,13 @@
 #include "Servo.h"
 #include "Motor.h"
 
+
+
 Serial blue(p13,p14);
 PwmOut ledRGB(p23);
 Servo myservo(p22);
 Motor m(p21, p17, p16); // pwm, fwd, rev
+//InterruptIn button(p28);
 
 //SET UP ETHERNET & ULCD
 EthernetInterface eth;
@@ -20,16 +23,32 @@
 char httpGetData[200]; //BUFFER TO HOLD DATA FROM HTTP GET REQUEST
 
 BusOut myled(LED1,LED2,LED3,LED4);
- 
+
+
+//
+//void flip(){
+//    setTime = 1+setTime;
+//    if (setTime > 24) {
+//        setTime = 00;
+//        }
+//    } 
+    
+    
 int main() {
+    volatile int lowtime = 0; 
+    volatile int setTime = 0;
+//    button.mode(PullUp);
     char bnum = 0;
     char bhit=0;
     float brightness = 0.5f;
     int hour, prevHour;
+   
+//    button.rise(&flip);
     ledRGB = brightness;
     time_t ctTime; //system time structure
     uLCD.baudrate(2000000); //Crank up Baudrate
     uLCD.cls();    //Clear uLCD screen
+    uLCD.color(BLACK);
     uLCD.background_color(WHITE); //SET BACKGROUND COLOR TO WHITE
     //SETS THE BACKGROUND COLOR OF TEXT TO WHITE ON THE ULCD
     uLCD.textbackground_color(WHITE);
@@ -97,9 +116,9 @@
     char buffer[80]; //BUFFER TO HOLD FORMATTED TIME DATA
     uLCD.color(BLUE);//SET TEXT COLOR TO BLUE
     uLCD.locate(0,8);
-    uLCD.printf("%s, %s %s\n",city,stateAbrv,zip); //PRINT CITY STATE AND ZIP INFORMATION
-    uLCD.printf("%s\nLAT:%s\nLONG:%s\n",countryAbrv,latitude,longitude); //PRINT COUNTRY and LATITUDE AND LONGITUDE 
-    uLCD.printf("Timezone:\n%s",timeZone); //PRINT TIMEZONE
+    uLCD.printf("\n\n\n\n\n\n%s, %s %s\n",city,stateAbrv,zip); //PRINT CITY STATE AND ZIP INFORMATION
+//    uLCD.printf("\nLAT:%s\nLONG:%s\n",latitude,longitude); //PRINT COUNTRY and LATITUDE AND LONGITUDE 
+//    uLCD.printf("Timezone:\n%s",timeZone); //PRINT TIMEZONE
     uLCD.color(RED);
     eth.disconnect(); //DISCONNECT FROM THE NETWORK 
     uLCD.text_height(2); //2x Text Height
@@ -110,18 +129,26 @@
         //FORMAT TIME FOR DISPLAY AND STORE FORMATTED RESULT IN BUFFER
         strftime(buffer,80,"%a %b %d\n%T %p %z\n %Z\n",localtime(&ctTime));
         hour = (*(localtime(&ctTime))).tm_hour;
-        if(hour!=prevHour && hour == 17){
+        if(hour!=prevHour && hour == setTime){
             m.speed(-0.8f);
-            wait(10);
+            wait(5);
             m.speed(0.0f);
+            prevHour = hour;
         }
-        else if(hour!=prevHour && hour == 7){
+        else if(hour!=prevHour && hour == lowtime){
             m.speed(0.8f);
-            wait(10);
+            wait(5);
             m.speed(0.0f);
+            prevHour = hour;
         }
-        prevHour = hour;
+        if(hour == prevHour +1){
+            prevHour = setTime + 1;
+        }
+            
         uLCD.printf("Univ Time Clock\n%s", buffer);
+//        uLCD.text_height(0.5);
+        uLCD.printf("Night Time: %02i\n", setTime);
+        uLCD.printf("Morning Time: %02i", lowtime);
         if(blue.readable()){
             if (blue.getc()=='!') {
             if (blue.getc()=='B') { //button data packet
@@ -132,28 +159,40 @@
                     switch (bnum) {
                         case '1': //number button 1
                             if (bhit=='1') {
-                                //add hit code here
+                                setTime = setTime + 1;
+                                if (setTime > 24) {
+                                  setTime = 0;
+                                } 
                             } else {
                                 //add release code here
                             }
                             break;
                         case '2': //number button 2
                             if (bhit=='1') {
-                                //add hit code here
+                                setTime = setTime - 1;
+                                if (setTime < 0){
+                                    setTime = 24;
+                                    }
                             } else {
                                 //add release code here
                             }
                             break;
                         case '3': //number button 3
                             if (bhit=='1') {
-                                //add hit code here
+                               lowtime = lowtime + 1;
+                               if (lowtime > 24){
+                                   lowtime = 0;
+                                   }
                             } else {
                                 //add release code here
                             }
                             break;
                         case '4': //number button 4
                             if (bhit=='1') {
-                                //add hit code here
+                                lowtime = lowtime - 1;
+                                if (lowtime < 0){
+                                    lowtime = 24;
+                                    }
                             } else {
                                 //add release code here
                             }