Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <OneWire.h> // Biblioteca de 1Wire
- #include <DallasTemperature.h>
- int TempBoiler = 0; // Variavel onde se ira guardar o valor lido pelo sensor no boiler
- int TempRede = 0; // Variavel onde se ira guardar o valor lido pelo sensor da rede
- int TempAmbiente =0; // Variavel onde se ira guardar o valor lido pelo sensor ambiente
- int BOMBA = 2; // Pino Do LED da Board Do Arduino
- float Delta_T; // Variavel onde vai ser guardada a diferença entre a temperatura do boiler e a temperatura da rede
- #define ONE_WIRE_BUS1 3
- #define ONE_WIRE_BUS2 4
- #define ONE_WIRE_BUS3 5
- OneWire oneWire1(ONE_WIRE_BUS1);
- OneWire oneWire2(ONE_WIRE_BUS2);
- OneWire oneWire3(ONE_WIRE_BUS3);
- DallasTemperature sensor1(&oneWire1);
- DallasTemperature sensor2(&oneWire2);
- DallasTemperature sensor3(&oneWire3);
- // -----------------------------------------------------------------------------
- void setup() {
- Serial.begin(9600);
- pinMode(BOMBA, OUTPUT);
- sensor1.begin();
- sensor2.begin();
- sensor3.begin();
- DeviceAddress deviceAddress;
- if (sensor1.getAddress(deviceAddress, 0))
- sensor1.setResolution(deviceAddress, 12);
- if (sensor2.getAddress(deviceAddress, 0))
- sensor2.setResolution(deviceAddress, 12);
- if (sensor3.getAddress(deviceAddress, 0))
- sensor3.setResolution(deviceAddress, 12);
- }
- //------------------------------------------------------------------------------
- void Le_OneWire() //Função para ler o DS18b20 onewire
- {
- sensor1.requestTemperatures();
- sensor2.requestTemperatures();
- sensor3.requestTemperatures();
- delay(1000);
- TempBoiler = sensor1.getTempCByIndex(0);
- TempRede = sensor2.getTempCByIndex(0);
- TempAmbiente = sensor3.getTempCByIndex(0);
- }
- // -----------------------------------------------------------------------------
- void loop()
- {
- Le_OneWire();
- Delta_T = TempBoiler - TempRede; // Calcula diferença entre temperatura do boiler e da rede
- if(TempBoiler >= TempAmbiente) // Verifica se a temp no boiler é maior ou igual a temp ambiente. se for mantem desligado o relé.
- { // Se for podera' permitir o acionamento da bomba
- if (digitalRead(BOMBA) == HIGH) // Se a bomba estiver ligada
- if(TempRede >= TempBoiler) // Verifica se a temp da rede é igual ou maoior que a do boiler
- digitalWrite(BOMBA, LOW); // Se for desliga o relé(bomba)
- if(Delta_T >=5) // Verifica se a temp da rede é 5 graus mensor que a do boiler
- {
- digitalWrite(BOMBA, HIGH); // Se for aciona o relé (bomba)
- }
- }
- else // Se temp boile for memor que temp ambiente desliga bomba
- digitalWrite(BOMBA, LOW); // desliga o relé (bomba)
- Serial.print("Temperatura BOILER " ); // Imprime no Serial Monitor “Temperatura Actual:”
- Serial.println(TempBoiler); // Imprime no Serial monitor o valor da temperatura no boiler.
- delay(1000); // Espera um segundo.
- Serial.print("Temperatura REDE " ); // Imprime no Serial Monitor “Temperatura Actual:”
- Serial.println(TempRede); // Imprime no Serial monitor o valor da temperatura na rede
- delay(1000); // Espera um segundo
- Serial.print("Temperatura AMBIENTE " ); // Imprime no Serial Monitor “Temperatura Ambiente:”
- Serial.println(TempAmbiente); // Imprime no Serial monitor o valor da temperatura ambiente
- delay(1000); // Espera um segundo
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement