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 15 ■ Leitura e escrita de dados em um cartão SD<br />

363<br />

Em seguida, temos as funções para captura de erro, para escrita de um CR e de um<br />

LF no arquivo, e também para as operações de escrita dos números e strings:<br />

void error_P(const char* str) {<br />

PgmPrint("error: ");<br />

SerialPrintln_P(str);<br />

if (card.errorCode()) {<br />

PgmPrint("SD error: ");<br />

Serial.print(card.errorCode(), HEX);<br />

Serial.print(',');<br />

Serial.println(card.errorData(), HEX);<br />

}<br />

while(1);<br />

}<br />

void writeCRLF(SdFile& f) {<br />

f.write((uint8_t*)"\r\n", 2);<br />

}<br />

// Escreve um número não sinalizado no arquivo<br />

void writeNumber(SdFile& f, uint32_t n) {<br />

uint8_t buf[10];<br />

uint8_t i = 0;<br />

do {<br />

i++;<br />

buf[sizeof(buf) - i] = n%10 + '0';<br />

n /= 10;<br />

} while (n);<br />

f.write(&buf[sizeof(buf) - i], i);<br />

}<br />

// Escreve uma string no arquivo<br />

void writeString(SdFile& f, char *str) {<br />

uint8_t n;<br />

for (n = 0; str[n]; n++);<br />

f.write((uint8_t *)str, n);<br />

}<br />

Agora, você cria uma nova função para obter as temperaturas do sensor. O endereço<br />

do dispositivo é informado como parâmetro.<br />

void getTemperature(DeviceAddress deviceAddress) {<br />

sensors.requestTemperatures();<br />

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

tempF = DallasTemperature::toFahrenheit(tempC);<br />

}

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

Saved successfully!

Ooh no, something went wrong!