Temp Regelaar
Dependencies: TextLCD mbed DS1307
Hoofdprogramma.cpp
- Committer:
- R0375604
- Date:
- 2014-11-27
- Revision:
- 0:f99036b05ce9
- Child:
- 1:386b4ee674e3
File content as of revision 0:f99036b05ce9:
#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 } } }