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 11 ■ Sensores de pressão<br />

269<br />

Serial.print("Pressure (Atm): ");<br />

float pAtm = float(pressure)/101325.0;<br />

Serial.println(pAtm, 3);<br />

Na sequência, você tem de ler os dados de temperatura. Isso é feito chamando a função<br />

read_register16 e passando a ela o registro TEMP (endereço 0x21). O valor retornado<br />

dessa função é armazenado na variável temp_in. A temperatura é um valor de 14 bits.<br />

temp_in = read_register16(TEMP);<br />

O valor é convertido em um float e dividido por 20, para que possamos obter a temperatura<br />

em Celsius:<br />

float tempC = float(temp_in)/20.0;<br />

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

Serial.println(tempC);<br />

Depois, você simplesmente multiplica esse valor por 1,8 e adiciona 32 para obter a<br />

temperatura em Fahrenheit, emitindo também esses dados:<br />

float tempF = (tempC*1.8) + 32;<br />

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

Serial.println(tempF);<br />

Agora, você tem quatro funções que permitem a leitura de dados no barramento da<br />

SPI. A primeira é spi_transfer. Como você passará um char (um byte) a essa função<br />

e receberá um char de volta, ela é de tipo char. Os dados passados à função também<br />

são de tipo char.<br />

char spi_transfer(char data)<br />

O byte enviado para essa função é transmitido ao registro de dados da SPI:<br />

SPDR = data;<br />

Então, você espera até que a flag SPIF seja definida, para sinalizar que os dados foram<br />

enviados com êxito:<br />

while (!(SPSR & (1

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

Saved successfully!

Ooh no, something went wrong!