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
--- /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
--- 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
                             }