08.11.2017 Views

arduino_básico_Michael_McRoberts

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Capítulo 13 ■ Sensores de temperatura<br />

319<br />

Depois, você define a resolução de cada sensor utilizando o comando .setResolution,<br />

que exige dois parâmetros: o primeiro é o endereço do dispositivo, o segundo, sua<br />

resolução. Você já definiu a resolução no início do programa como 12 bits.<br />

sensors.setResolution(insideThermometer, TEMPERATURE_PRECISION);<br />

sensors.setResolution(outsideThermometer, TEMPERATURE_PRECISION);<br />

Em seguida, você cria uma função, printTemperature(), para imprimir a temperatura,<br />

tanto em graus Celsius quanto em kelvin, a partir do endereço do sensor definido<br />

em seu parâmetro individual:<br />

void printTemperature(DeviceAddress deviceAddress)<br />

Então, você utiliza o comando .getTemp() para obter a temperatura, em graus Celsius,<br />

a partir do endereço de dispositivo especificado. Armazenamos o resultado em uma<br />

variável de ponto flutuante, tempC.<br />

float tempC = sensors.getTempC(deviceAddress);<br />

Agora, você imprime essa temperatura:<br />

Serial.print(" Temp C: ");<br />

Serial.print(tempC);<br />

Seguida pela temperatura em graus Fahrenheit:<br />

Serial.print(" Temp F: ");<br />

Serial.println(DallasTemperature::toFahrenheit(tempC));<br />

Você utiliza :: para acessar a função toFahrenheit, que se encontra dentro da biblioteca<br />

DallasTemperature. Isso converte o valor em tempC para Fahrenheit.<br />

No loop principal, você simplesmente chama duas vezes a função printTemperature(),<br />

passando a cada iteração o endereço do sensor interno e, depois, o endereço do sensor<br />

externo, seguidos por uma espera de três segundos:<br />

Serial.print("Inside Temp:");<br />

printTemperature(insideThermometer);<br />

Serial.print("Outside Temp:");<br />

printTemperature(outsideThermometer);<br />

Serial.println();<br />

delay(3000);<br />

Recomendo que você experimente os vários exemplos que acompanham a biblioteca<br />

DallasTemperature, para entender melhor suas diversas funções disponíveis. Também<br />

aconselho que você leia o datasheet do DS18B20. Esse sensor também pode ter alarmes<br />

internos ajustados para que disparem ao atingir determinadas condições de temperatura,<br />

o que pode ser útil para avaliar se as condições estão quentes ou frias demais.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!