Store in GIT
This commit is contained in:
@@ -0,0 +1,146 @@
|
||||
/*
|
||||
Verwarming.cpp
|
||||
Copyright (c) 2014 Kenneth van Ewijk. All right reserved.
|
||||
*/
|
||||
|
||||
// include this library's description file
|
||||
#include "Verwarming.h"
|
||||
#include "Arduino.h"
|
||||
#include "Wire.h"
|
||||
|
||||
Verwarming::Verwarming(void)
|
||||
{
|
||||
// initialize this instance's variables
|
||||
temp = 0;
|
||||
wattage = 0;
|
||||
state = false;
|
||||
volume = 0;
|
||||
led = 0;
|
||||
}
|
||||
|
||||
|
||||
//Set Heater Properties
|
||||
void Verwarming::setTemp(double givenTemp)
|
||||
{
|
||||
temp = givenTemp;
|
||||
}
|
||||
|
||||
void Verwarming::setState(bool givenState){
|
||||
state = givenState;
|
||||
}
|
||||
|
||||
void Verwarming::setWattage(int givenWattage){
|
||||
wattage = givenWattage;
|
||||
deltaTemp = (wattage / ( (volume * 1.293) * 1000) ) * 60;
|
||||
}
|
||||
|
||||
void Verwarming::setVolume(int givenVolume){
|
||||
volume = givenVolume;
|
||||
deltaTemp = (wattage / ( (volume * 1.293) * 1000) ) * 60;
|
||||
}
|
||||
|
||||
void Verwarming::setLed(int givenLed){
|
||||
led = givenLed;
|
||||
pinMode(led, OUTPUT);
|
||||
}
|
||||
|
||||
|
||||
//Calc Heater Properties
|
||||
void Verwarming::toggleLed(void)
|
||||
{
|
||||
if(state){
|
||||
analogWrite(led, 255);
|
||||
}
|
||||
else {
|
||||
analogWrite(led, 0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//Calc Heater Properties
|
||||
double Verwarming::calcTemp(void)
|
||||
{
|
||||
if(state){
|
||||
double newTemp = temp + deltaTemp;
|
||||
|
||||
return newTemp;
|
||||
}
|
||||
else {
|
||||
return temp;
|
||||
}
|
||||
}
|
||||
|
||||
void Verwarming::keepTemp(double givenTemp)
|
||||
{
|
||||
|
||||
if(temp >= givenTemp){
|
||||
state = false;
|
||||
}
|
||||
else if(temp < givenTemp){
|
||||
state = true;
|
||||
}
|
||||
|
||||
toggleLed();
|
||||
temp = calcTemp();
|
||||
}
|
||||
|
||||
void Verwarming::gotoTemp(double givenTemp)
|
||||
{
|
||||
|
||||
if(temp >= givenTemp){
|
||||
state = false;
|
||||
}
|
||||
|
||||
double newTemp = calcTemp();
|
||||
|
||||
if(newTemp <= givenTemp){
|
||||
temp = newTemp;
|
||||
}
|
||||
else {
|
||||
state = false;
|
||||
}
|
||||
|
||||
toggleLed();
|
||||
}
|
||||
|
||||
|
||||
//Get Heater Properties
|
||||
double Verwarming::getTemp(void)
|
||||
{
|
||||
return temp;
|
||||
}
|
||||
|
||||
int Verwarming::getWattage(void)
|
||||
{
|
||||
return wattage;
|
||||
}
|
||||
|
||||
bool Verwarming::getState(void){
|
||||
return state;
|
||||
}
|
||||
|
||||
double Verwarming::getDeltaTemp(void){
|
||||
return deltaTemp;
|
||||
}
|
||||
|
||||
int Verwarming::getTimeToTemp(double givenHeatFlow, double givenToTemp){
|
||||
int timer = 0;
|
||||
|
||||
if(state){
|
||||
double deltaTemp2 = givenToTemp - temp;
|
||||
double neededHeat = (volume * 1.293) * 1000 * deltaTemp2;
|
||||
|
||||
double heatFlow = wattage - givenHeatFlow;
|
||||
timer = neededHeat / heatFlow;
|
||||
timer = timer / 60;
|
||||
|
||||
if(timer < 0){
|
||||
timer = 0;
|
||||
}
|
||||
}
|
||||
else{
|
||||
timer = 0;
|
||||
}
|
||||
|
||||
return timer;
|
||||
}
|
||||
Reference in New Issue
Block a user