Advertisement
RuiViana

JW Boiler 18b20

Aug 5th, 2015
294
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.65 KB | None | 0 0
  1.  
  2. #include <OneWire.h> // Biblioteca de 1Wire
  3. #include <DallasTemperature.h>
  4.  
  5. int TempBoiler = 0; // Variavel onde se ira guardar o valor lido pelo sensor no boiler
  6. int TempRede = 0; // Variavel onde se ira guardar o valor lido pelo sensor da rede
  7. int TempAmbiente =0; // Variavel onde se ira guardar o valor lido pelo sensor ambiente
  8. int BOMBA = 2; // Pino Do LED da Board Do Arduino
  9. float Delta_T; // Variavel onde vai ser guardada a diferença entre a temperatura do boiler e a temperatura da rede
  10.  
  11. #define ONE_WIRE_BUS1 3
  12. #define ONE_WIRE_BUS2 4
  13. #define ONE_WIRE_BUS3 5
  14.  
  15. OneWire oneWire1(ONE_WIRE_BUS1);
  16. OneWire oneWire2(ONE_WIRE_BUS2);
  17. OneWire oneWire3(ONE_WIRE_BUS3);
  18.  
  19. DallasTemperature sensor1(&oneWire1);
  20. DallasTemperature sensor2(&oneWire2);
  21. DallasTemperature sensor3(&oneWire3);
  22. // -----------------------------------------------------------------------------
  23. void setup() {
  24. Serial.begin(9600);
  25. pinMode(BOMBA, OUTPUT);
  26.  
  27. sensor1.begin();
  28. sensor2.begin();
  29. sensor3.begin();
  30.  
  31. DeviceAddress deviceAddress;
  32. if (sensor1.getAddress(deviceAddress, 0))
  33. sensor1.setResolution(deviceAddress, 12);
  34. if (sensor2.getAddress(deviceAddress, 0))
  35. sensor2.setResolution(deviceAddress, 12);
  36. if (sensor3.getAddress(deviceAddress, 0))
  37. sensor3.setResolution(deviceAddress, 12);
  38. }
  39. //------------------------------------------------------------------------------
  40. void Le_OneWire() //Função para ler o DS18b20 onewire
  41. {
  42. sensor1.requestTemperatures();
  43. sensor2.requestTemperatures();
  44. sensor3.requestTemperatures();
  45.  
  46. delay(1000);
  47. TempBoiler = sensor1.getTempCByIndex(0);
  48. TempRede = sensor2.getTempCByIndex(0);
  49. TempAmbiente = sensor3.getTempCByIndex(0);
  50. }
  51. // -----------------------------------------------------------------------------
  52. void loop()
  53. {
  54. Le_OneWire();
  55. Delta_T = TempBoiler - TempRede; // Calcula diferença entre temperatura do boiler e da rede
  56.  
  57. if(TempBoiler >= TempAmbiente) // Verifica se a temp no boiler é maior ou igual a temp ambiente. se for mantem desligado o relé.
  58. { // Se for podera' permitir o acionamento da bomba
  59. if (digitalRead(BOMBA) == HIGH) // Se a bomba estiver ligada
  60. if(TempRede >= TempBoiler) // Verifica se a temp da rede é igual ou maoior que a do boiler
  61. digitalWrite(BOMBA, LOW); // Se for desliga o relé(bomba)
  62. if(Delta_T >=5) // Verifica se a temp da rede é 5 graus mensor que a do boiler
  63. {
  64. digitalWrite(BOMBA, HIGH); // Se for aciona o relé (bomba)
  65. }
  66. }
  67. else // Se temp boile for memor que temp ambiente desliga bomba
  68. digitalWrite(BOMBA, LOW); // desliga o relé (bomba)
  69.  
  70. Serial.print("Temperatura BOILER " ); // Imprime no Serial Monitor “Temperatura Actual:”
  71. Serial.println(TempBoiler); // Imprime no Serial monitor o valor da temperatura no boiler.
  72. delay(1000); // Espera um segundo.
  73.  
  74. Serial.print("Temperatura REDE " ); // Imprime no Serial Monitor “Temperatura Actual:”
  75. Serial.println(TempRede); // Imprime no Serial monitor o valor da temperatura na rede
  76. delay(1000); // Espera um segundo
  77.  
  78.  
  79. Serial.print("Temperatura AMBIENTE " ); // Imprime no Serial Monitor “Temperatura Ambiente:”
  80. Serial.println(TempAmbiente); // Imprime no Serial monitor o valor da temperatura ambiente
  81. delay(1000); // Espera um segundo
  82.  
  83. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement