Eindprogramma met alle functies

Dependencies:   DS1307 EthernetInterface TextLCD WebSocketClient mbed-rtos mbed

Fork of Hoofdprogramma by Pieter Essers

Revision:
0:f99036b05ce9
Child:
1:386b4ee674e3
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Hoofdprogramma.cpp	Thu Nov 27 10:07:39 2014 +0000
@@ -0,0 +1,203 @@
+#include "mbed.h"
+#include "TextLCD.h"
+
+// Declaratie van de Pinnen & variabelen
+AnalogIn Temp1(p20);
+AnalogIn Temp2(p19);
+AnalogIn Temp3(p18);  
+
+DigitalIn Druk1(p11); // temp1
+DigitalIn Druk2(p12); // temp2
+DigitalIn Druk3(p13); // temp3
+DigitalIn Down(p14); // up
+DigitalIn Up(p15); // down
+
+DigtalOut Relais(p29); // pin voor de Relais
+
+PwmOut Servo(p21); // servo motor
+PwmOut R(p22); // RGB => Rood
+PwmOut G(p23); // RGB => Groen
+PwmOut B(p24); // RGB => Blauw
+PwmOut LedB(p25); // Blauwe Led als relais Uit is (Te warm)
+PwmOut LedG(p26); // Groene Led als relais Uit is (Temp GOED)
+
+TextLCD lcd(p5, p6, p7, p8, p9, p10);
+
+float InstelTemp1 = 22; // De Gewenste Temperatuur
+float InstelTemp2 = 22;
+float InstelTemp3 = 22;
+
+float temp1 = 0;
+float temp2 = 0;
+float temp3 = 0;
+
+int main()
+{
+    R.period_ms(20.0f);  // 20 msecond period
+    G.period_ms(20.0f);  // 20 msecond period
+    B.period_ms(20.0f);  // 20 msecond period
+    LedR.period_ms(20.0f);  // 20 msecond period
+    LedG.period_ms(20.0f);  // 20 msecond period
+    
+    lcd.cls(); // LCD Clearen
+    
+     while(1) 
+    {
+        float temp1 = 0;
+        float temp2 = 0;
+        float temp3 = 0;
+        
+        while(Druk1) // Gewenste Temp1 Instellen
+        {
+            lcd.locate(0,0);
+            lcd.printf("Instel Temp1 = ");
+            lcd.locate(0,1);
+            lcd.printf("%4.1f C ",InstelTemp1);  
+            if(Down)
+            {
+                InstelTemp1 += 0.5;
+                lcd.locate(0,0);
+                lcd.printf("Instel Temp1 = ");
+                lcd.locate(0,1);
+                lcd.printf("%4.1f C ",InstelTemp1);
+                wait(0.5);
+            }
+            else if(Up)
+            {
+                InstelTemp1 -= 0.5; 
+                lcd.locate(0,0);
+                lcd.printf("Instel Temp1 = ");
+                lcd.locate(0,1);
+                lcd.printf("%4.1f C ",InstelTemp1);
+                wait(0.5);          
+            }
+        }
+        lcd.cls(); // LCD Clearen
+        while(Druk2) // Gewenste Temp2 Instellen
+        {
+            lcd.locate(0,0);
+            lcd.printf("Instel Temp2 = ");
+            lcd.locate(0,1);
+            lcd.printf("%4.1f C ",InstelTemp2);            
+            if(Down)
+            {
+                InstelTemp2 += 0.5;
+                lcd.locate(0,0);
+                lcd.printf("Instel Temp2 = ");
+                lcd.locate(0,1);
+                lcd.printf("%4.1f C ",InstelTemp2);
+                wait(0.5);
+            }
+            else if(Up)
+            {
+                InstelTemp2 -= 0.5; 
+                lcd.locate(0,0);
+                lcd.printf("Instel Temp2 = ");
+                lcd.locate(0,1);
+                lcd.printf("%4.1f C ",InstelTemp2);
+                wait(0.5);          
+            }
+        }
+        lcd.cls(); // LCD Clearen
+        while(Druk3) // Gewenste Temp3 Instellen
+        {
+            lcd.locate(0,0);
+            lcd.printf("Instel Temp3 = ");
+            lcd.locate(0,1);
+            lcd.printf("%4.1f C ",InstelTemp3);  
+            if(Down)
+            {
+                InstelTemp3 += 0.5;
+                lcd.locate(0,0);
+                lcd.printf("Instel Temp3 = ");
+                lcd.locate(0,1);
+                lcd.printf("%4.1f C ",InstelTemp3);
+                wait(0.5);
+            }
+            else if(Up)
+            {
+                InstelTemp3 -= 0.5; 
+                lcd.locate(0,0);
+                lcd.printf("Instel Temp3 = ");
+                lcd.locate(0,1);
+                lcd.printf("%4.1f C ",InstelTemp3);
+                wait(0.5);           
+            }
+        }
+        lcd.cls(); // LCD Clearen
+        
+        for(int t=0; t<100; t++) // Inlezen van de Temperatuur
+        {
+            temp1 = temp1 +Temp1.read(); // Temp1 inlezen
+            temp2 = temp2 +Temp2.read(); // Temp2 inlezen
+            temp3 = temp3 +Temp3.read(); // Temp3 inlezen
+        }  
+        
+        temp1 = (temp1*3.3) - 3; // Bewerking voor de Temp in graden te bekomen.
+        temp2 *= 3.3;
+        temp3 *= 3.3;
+        
+        lcd.locate(0,0); // De ingelezen Temperatuur op de LCD zetten
+        lcd.printf("Temperatuur 1 = ");
+        lcd.locate(0,1);
+        lcd.printf("%4.1f C ",temp1); 
+        wait(2);
+        lcd.cls();
+        lcd.locate(0,0);
+        lcd.printf("Temperatuur 2 = ");
+        lcd.locate(0,1);
+        lcd.printf("%4.1f C ",temp2); 
+        wait(0.5);
+        lcd.cls();
+        lcd.locate(0,0);
+        lcd.printf("Temperatuur 3 = ");
+        lcd.locate(0,1);
+        lcd.printf("%4.1f C ",temp3); 
+        wait(0.5);
+        
+        // Relais
+        if(temp1 > InstelTemp1 + 2) // Temp is te HOOG => Blauwe led
+        {
+            Relais = 0; // Temp is te HOOG dus moet afkoelen (Niet verwarmen)
+            LedB.write(0.50f);  // 50% duty cycle  
+            LedG.write(0.00f);  // 0% duty cycle
+            
+        }
+        else if (temp1 < InstelTemp1 - 2) // Temp is te LAAG => Blauwe led
+        {
+            Relais = 1; // Temp is te LAAG Dus verwarmen
+        }
+        else // Temp is te GOED => Groene led
+         {
+            Relais = 0; // Tem is GOED dus niets doen
+            LedB.write(0.00f);  // 0% duty cycle  
+            LedG.write(0.50f);  // 50% duty cycle
+        }  
+        
+        // RGB
+        if(temp1 > InstelTemp1 + 2) // Temp is te HOOG => Blauwe led
+        {
+            R.write(0.00f);  // 0% duty cycle  
+            G.write(0.00f);  // 0% duty cycle
+            B.write(0.50f);  // 50% duty cycle
+        }
+        else if (temp1 < InstelTemp1 - 2) // Temp is te LAAG => Rode led
+        {
+            R.write(0.50f);  // 50% duty cycle  
+            G.write(0.00f);  // 0% duty cycle
+            B.write(0.00f);  // 0% duty cycle
+        }
+        else // Temp is te GOED => Groene led
+         {
+            R.write(0.00f);  // 0% duty cycle  
+            G.write(0.50f);  // 50% duty cycle
+            B.write(0.00f);  // 0% duty cycle
+        }               
+    }
+}
+        
+        
+        
+        
+    
+