Temp Regelaar
Dependencies: TextLCD mbed DS1307
Diff: Hoofdprogramma.cpp
- 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 + } + } +} + + + + + +