Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int ThermistorPin = A0;
- int Vo;
- float R1 = 5000; // 5000 47Kohms
- float logR2, R2, T, Tc;
- float c1 = 1.009249522e-03, c2 = 2.378405444e-04, c3 = 2.019202697e-07;
- const int ButtonCoffee = 12; // pushbutton
- const int RelayCoffee = 10; // green led
- const int RelayBoiler = 11; // red led
- const int LedError = 9; // yellow led
- int buttonState = 0; // current state of the button
- int lastButtonState = 0; // previous state of the button
- int ledState = 0; // remember current led state
- void setup() {
- pinMode(ButtonCoffee, INPUT); // button coffee
- pinMode(RelayCoffee, OUTPUT); // green led
- pinMode(RelayBoiler, OUTPUT); // red led
- pinMode(LedError, OUTPUT); // yellow led
- pinMode(LedPower, OUTPUT); // white led
- digitalWrite (RelayBoiler, LOW);
- digitalWrite (RelayCoffee, LOW);
- digitalWrite (LedError, LOW);
- }
- void loop() {
- Boiler();
- Coffee();
- }
- void Boiler() {
- Vo = analogRead(ThermistorPin);
- R2 = R1 * (1023.0 / (float)Vo - 1.0);
- logR2 = log(R2);
- T = (1.0 / (c1 + c2*logR2 + c3*logR2*logR2*logR2));
- Tc = T - 273.15;
- if ( Tc > 0 && Tc < 78 ) // cold
- {
- digitalWrite (RelayBoiler, HIGH);
- digitalWrite (LedError, LOW);
- }
- else if ( Tc > 80 ) // hot
- {
- digitalWrite (RelayBoiler, LOW);
- digitalWrite (LedError, LOW);
- }
- else if ( Tc < 0 ) // error
- {
- digitalWrite (RelayBoiler, LOW);
- digitalWrite (LedError, HIGH);
- }
- delay(200); // delay between ntc readings
- }
- void Coffee() {
- buttonState = digitalRead(ButtonCoffee);
- if (buttonState != lastButtonState)
- {
- if (buttonState == 1)
- {
- if(ledState == 1) ledState=0;
- else ledState=1;
- }
- lastButtonState = buttonState;
- }
- digitalWrite(RelayCoffee, ledState);
- delay(20); //debouncing
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement