Advertisement
sanjiro

Maquina_Cafe_v_18.05.26_beta.ino

May 26th, 2018
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.80 KB | None | 0 0
  1. int ThermistorPin = A0;
  2. int Vo;
  3. float R1 = 5000; // 5000 47Kohms
  4. float logR2, R2, T, Tc;
  5. float c1 = 1.009249522e-03, c2 = 2.378405444e-04, c3 = 2.019202697e-07;
  6. const int ButtonCoffee = 12; // pushbutton
  7. const int RelayCoffee = 10; // green led
  8. const int RelayBoiler = 11; // red led
  9. const int LedError = 9; // yellow led
  10. int buttonState = 0; // current state of the button
  11. int lastButtonState = 0; // previous state of the button
  12. int ledState = 0; // remember current led state
  13.  
  14. void setup() {
  15. pinMode(ButtonCoffee, INPUT); // button coffee
  16. pinMode(RelayCoffee, OUTPUT); // green led
  17. pinMode(RelayBoiler, OUTPUT); // red led
  18. pinMode(LedError, OUTPUT); // yellow led
  19. pinMode(LedPower, OUTPUT); // white led
  20. digitalWrite (RelayBoiler, LOW);
  21. digitalWrite (RelayCoffee, LOW);
  22. digitalWrite (LedError, LOW);
  23. }
  24.  
  25. void loop() {
  26. Boiler();
  27. Coffee();
  28. }
  29.  
  30. void Boiler() {
  31. Vo = analogRead(ThermistorPin);
  32. R2 = R1 * (1023.0 / (float)Vo - 1.0);
  33. logR2 = log(R2);
  34. T = (1.0 / (c1 + c2*logR2 + c3*logR2*logR2*logR2));
  35. Tc = T - 273.15;
  36. if ( Tc > 0 && Tc < 78 ) // cold
  37. {
  38. digitalWrite (RelayBoiler, HIGH);
  39. digitalWrite (LedError, LOW);
  40. }
  41. else if ( Tc > 80 ) // hot
  42. {
  43. digitalWrite (RelayBoiler, LOW);
  44. digitalWrite (LedError, LOW);
  45. }
  46. else if ( Tc < 0 ) // error
  47. {
  48. digitalWrite (RelayBoiler, LOW);
  49. digitalWrite (LedError, HIGH);
  50. }
  51. delay(200); // delay between ntc readings
  52. }
  53.  
  54. void Coffee() {
  55. buttonState = digitalRead(ButtonCoffee);
  56. if (buttonState != lastButtonState)
  57. {
  58. if (buttonState == 1)
  59. {
  60. if(ledState == 1) ledState=0;
  61. else ledState=1;
  62. }
  63. lastButtonState = buttonState;
  64. }
  65. digitalWrite(RelayCoffee, ledState);
  66. delay(20); //debouncing
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement