Projectlab Elektronica-ICT KULeuven

Dependencies:   EthernetInterface TMP102 TextLCD mbed-rtos mbed

werking.pdf

Files at this revision

API Documentation at this revision

Comitter:
seppeduwe
Date:
Sun Mar 16 18:56:08 2014 +0000
Parent:
2:1243006bb879
Child:
4:466d859bfb13
Commit message:
Range Temp en PWM

Changed in this revision

Frame.cpp Show annotated file Show diff for this revision Revisions of this file
Frame.h Show annotated file Show diff for this revision Revisions of this file
Potentiometer.cpp Show annotated file Show diff for this revision Revisions of this file
Potentiometer.h Show annotated file Show diff for this revision Revisions of this file
Temperature.cpp Show annotated file Show diff for this revision Revisions of this file
Temperature.h 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
--- a/Frame.cpp	Sun Mar 16 16:52:27 2014 +0000
+++ b/Frame.cpp	Sun Mar 16 18:56:08 2014 +0000
@@ -44,7 +44,6 @@
     if ( frame[0]==0xAA && frame[1]==0xBB && frame[length-2]==0xCC && frame[length-1]==0xDD) {
 
         IdDestinationMbed = (int) frame[3];
-        //temperature = (int) (0.026862*((frame[4]<<8) | frame[5])-25)  ;
         temperature = (int) ((frame[4]<<8) | frame[5])  ;
         pWMDutycycle = (int)frame[6];
         tune = (int) frame [7];
@@ -71,9 +70,9 @@
     encode[1]=0xBB;
     encode[2]= (char) length;
     encode[3]= (char) IdDestinationMbed;
-    encode[4]= (char) (((int)(37.227*temperature+930.68))>>8);
-    encode[5]= (int) (37.227*temperature+930.68);
-    encode[6]= (char) pWMDutycycle*2.55;
+    encode[4]= (char) (temperature>>8);
+    encode[5]= (char) temperature;
+    encode[6]= (char) pWMDutycycle;
     encode[7]= (char) tune;
 
     for (int i=0; i<lengthIDs; i++) {
@@ -167,13 +166,13 @@
 {
     return IdDestinationMbed;
 }
-void Frame::setTemperature(int temperature)
+void Frame::setTemperature(float temperature)
 {
-    this->temperature=temperature;
+    this->temperature=(int) (37.227*(temperature+25));
 }
 int Frame::getTemperature(void)
 {
-    return temperature;
+    return (int) (0.026862*temperature-25);
 }
 void Frame::setPWMDutycycle(int pWMDutycycle)
 {
--- a/Frame.h	Sun Mar 16 16:52:27 2014 +0000
+++ b/Frame.h	Sun Mar 16 18:56:08 2014 +0000
@@ -28,7 +28,7 @@
     //int Length(char* frame);
     void setIdDestinationMbed(int IdDestinationMbed);
     int getIdDestinationMbed(void);
-    void setTemperature(int temperature);
+    void setTemperature(float temperature);
     int getTemperature(void);
     void setPWMDutycycle(int pWMDutycycle);
     void setTune(int tune);
--- a/Potentiometer.cpp	Sun Mar 16 16:52:27 2014 +0000
+++ b/Potentiometer.cpp	Sun Mar 16 18:56:08 2014 +0000
@@ -6,8 +6,12 @@
     potentiometer = new AnalogIn(p15);
 }
 
-int Potentiometer::getPotentiometer()
+float Potentiometer::getPotentiometer()
 {
-    int returnvalue = (int) (potentiometer->read()*100);
-    return returnvalue;
+    return potentiometer->read();
+}
+//Legacy code
+int Potentiometer::getPotentiometer255()
+{
+    return (int) potentiometer->read()*255;
 }
\ No newline at end of file
--- a/Potentiometer.h	Sun Mar 16 16:52:27 2014 +0000
+++ b/Potentiometer.h	Sun Mar 16 18:56:08 2014 +0000
@@ -7,6 +7,7 @@
     AnalogIn* potentiometer;
 public:
     Potentiometer();
-    int getPotentiometer();
+    float getPotentiometer();
+    int getPotentiometer255();
 };
 #endif
\ No newline at end of file
--- a/Temperature.cpp	Sun Mar 16 16:52:27 2014 +0000
+++ b/Temperature.cpp	Sun Mar 16 18:56:08 2014 +0000
@@ -7,7 +7,13 @@
 }
 
 //set the text on the display
-double Temperature::getTemperature()
+float Temperature::getTemperature()
 {
-    return (double) temperature->read();
+    return temperature->read();
+}
+//Legacy code
+int Temperature::getTemperature4095()
+{
+    return (int) (37.227*(temperature->read()+25));
+
 }
\ No newline at end of file
--- a/Temperature.h	Sun Mar 16 16:52:27 2014 +0000
+++ b/Temperature.h	Sun Mar 16 18:56:08 2014 +0000
@@ -7,6 +7,7 @@
     TMP102* temperature;
 public:
     Temperature();
-    double getTemperature();
+    float getTemperature();
+    int getTemperature4095();
 };
 #endif
\ No newline at end of file
--- a/main.cpp	Sun Mar 16 16:52:27 2014 +0000
+++ b/main.cpp	Sun Mar 16 18:56:08 2014 +0000
@@ -30,7 +30,7 @@
     buttonDestinationIpUp.rise(&DestinationIpUp);  // attach the address of the flip function to the rising edge
 
     char buf[256];
-    Frame testFrame;
+    Frame dataFrame;
     Server server("192.168.0.107");
     server.printStatus();
     Display display;
@@ -41,22 +41,23 @@
 
     while(1) {
         if(server.read(buf)) {
-            if(!testFrame.Decode(buf))
+            if(!dataFrame.Decode(buf))
                 printf("Frame CRC Error \n\r");
-            if(testFrame.getIdDestinationMbed()==7) {
+            if(dataFrame.getIdDestinationMbed()==7) {
                 printf("Voor mij\n\r");
-                PWMout=potentiometer.getPotentiometer()/100;
-                tune.play(testFrame.getTune());
-                //display.setText("Temp: %d",(0.026862*(testFrame.getTemperature()-25)));
-                display.setText("Temp: %d",testFrame.getTemperature());
-                testFrame.setIdDestinationMbed(IpDestination);
-                testFrame.setTemperature(temp.getTemperature());
-                testFrame.setPWMDutycycle(potentiometer.getPotentiometer());
-                testFrame.setTune(testFrame.getTune()+1);
-                testFrame.AddID(7);
-                testFrame.Encode(buf);
+                PWMout=potentiometer.getPotentiometer();
+                PWMout.period(0.010);// set PWM period to 10 ms
+                tune.play(dataFrame.getTune());
+                display.setText("Temp: %d °C",dataFrame.getTemperature());
+                //display.setText("Temp: %d",dataFrame.getTemperature());
+                dataFrame.setIdDestinationMbed(IpDestination);
+                dataFrame.setTemperature(temp.getTemperature());
+                dataFrame.setPWMDutycycle(potentiometer.getPotentiometer());
+                dataFrame.setTune(dataFrame.getTune()+1);
+                dataFrame.AddID(7);
+                dataFrame.Encode(buf);
             }
-            if(!testFrame.CheckMyID(7)) {
+            if(!dataFrame.CheckMyID(7)) {
                 server.connect(destIp);
                 server.send(buf);
             }
@@ -67,20 +68,20 @@
             else
                 IpDestination=1;
             sprintf(destIp,"192.168.0.1%02i",IpDestination);
-            display.setText("192.168.0.1%02i",IpDestination);
+            display.setText("IP: 192.168.0.1%02i",IpDestination);
             BoolIpDestination=0;
             wait(0.5);
         }
         if(Send) {
-            testFrame.setIdDestinationMbed(IpDestination);
-            testFrame.setTemperature(temp.getTemperature());
-            testFrame.setPWMDutycycle(potentiometer.getPotentiometer());
-            testFrame.setTune(1);
-            testFrame.AddID(7);
+            dataFrame.setIdDestinationMbed(IpDestination);
+            dataFrame.setTemperature(temp.getTemperature());
+            dataFrame.setPWMDutycycle(potentiometer.getPotentiometer());
+            dataFrame.setTune(1);
+            dataFrame.AddID(7);
             //char testIDs[]= {0x08,0x09,0x0A};
-            //testFrame->setLengthIDs(3);
-            //testFrame->setIDs(testIDs);
-            testFrame.Encode(buf);
+            //dataFrame->setLengthIDs(3);
+            //dataFrame->setIDs(testIDs);
+            dataFrame.Encode(buf);
 
             server.connect(destIp);
             server.send(buf);