RuiViana

Sensores.ino

Apr 7th, 2021
474
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2. #include <OneWire.h>
  3. #include <DallasTemperature.h>
  4.  
  5. #include <max6675.h>
  6.  
  7. // Definições: GPIOs do Arduino max6675
  8. #define GPIO_SO       8
  9. #define GPIO_CS       9
  10. #define GPIO_CLK      10
  11. // Porta do pino de sinal do DS18B20
  12. #define ONE_WIRE_BUS 3
  13.  
  14. MAX6675 termopar(GPIO_CLK, GPIO_CS, GPIO_SO);
  15.  
  16. OneWire oneWire(ONE_WIRE_BUS);
  17.  
  18. float tempMin = 999;
  19. float tempMax = 0;
  20.  
  21. DallasTemperature sensors(&oneWire);
  22. DeviceAddress sensor1;
  23. //--------------------------------------------------------------------------
  24. void setup(void)
  25. {
  26.   Serial.begin(115200);
  27.   sensors.begin();
  28.   // Localiza e mostra enderecos dos sensores
  29.   Serial.println("Localizando sensores DS18B20...");
  30.   Serial.print("Foram encontrados ");
  31.   Serial.print(sensors.getDeviceCount(), DEC);
  32.   Serial.println(" sensores.");
  33.   if (!sensors.getAddress(sensor1, 0))
  34.     Serial.println("Sensores nao encontrados !");
  35.   // Mostra o endereco do sensor encontrado no barramento
  36.   Serial.print("Endereco sensor: ");
  37.   mostra_endereco_sensor(sensor1);
  38.   Serial.println();
  39.   Serial.println();
  40. }
  41. //--------------------------------------------------------------------------
  42. void mostra_endereco_sensor(DeviceAddress deviceAddress)
  43. {
  44.   for (uint8_t i = 0; i < 8; i++)
  45.   {
  46.     // Adiciona zeros se necessário
  47.     if (deviceAddress[i] < 16) Serial.print("0");
  48.     Serial.print(deviceAddress[i], HEX);
  49.   }
  50. }
  51. //--------------------------------------------------------------------------
  52. void loop()
  53. {
  54.   // rotina max6675
  55.   Serial.print("Temperatura max6675:  ");
  56.   Serial.print(termopar.readCelsius());
  57.   Serial.println("C");
  58.   delay(1000);
  59.  
  60.   // rotina DS18B20
  61.   sensors.requestTemperatures();
  62.   float tempC = sensors.getTempC(sensor1);
  63.   // Atualiza temperaturas minima e maxima
  64.   if (tempC < tempMin)
  65.   {
  66.     tempMin = tempC;
  67.   }
  68.   if (tempC > tempMax)
  69.   {
  70.     tempMax = tempC;
  71.   }
  72.   // Mostra dados no serial monitor
  73.   Serial.print("Temp 18b20 C: ");
  74.   Serial.print(tempC);
  75.   Serial.print(" Min 18b20: ");
  76.   Serial.print(tempMin);
  77.   Serial.print(" Max 18b20: ");
  78.   Serial.println(tempMax);
  79.  
  80.   Serial.print("Temp. 18b20:       ");
  81.   Serial.print("C 18b20");
  82.   Serial.println(tempC);
  83.   Serial.print("L: 18b20");
  84.   Serial.print(tempMin, 1);
  85.   Serial.print("H: 18b20");
  86.   Serial.println(tempMax, 1);
  87.   delay(3000);
  88. }
RAW Paste Data

Adblocker detected! Please consider disabling it...

We've detected AdBlock Plus or some other adblocking software preventing Pastebin.com from fully loading.

We don't have any obnoxious sound, or popup ads, we actively block these annoying types of ads!

Please add Pastebin.com to your ad blocker whitelist or disable your adblocking software.

×