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 />

349<br />

Projeto 42 – Operação simples de leitura/escrita em um cartão SD – Análise do código<br />

Você inicia incluindo as duas bibliotecas do pacote da biblioteca sdfatlib que permitirão<br />

ao código funcionar:<br />

#include <br />

#include <br />

Na sequência, você tem de criar as instâncias de Sd2Card, SdVolume e SdFile, e nomeá-las:<br />

Sd2Card card;<br />

SdVolume volume;<br />

SdFile root;<br />

SdFile file;<br />

O objeto Sd2Card oferece acesso a cartões SD e SDHC comuns. O objeto SdVolume oferece<br />

suporte a partições FAT16 e FAT32. O objeto SdFile oferece funções de acesso ao<br />

arquivo, como open(), read(), remove(), write(), close() e sync(). Esse objeto lhe fornece<br />

acesso ao diretório raiz e aos seus subdiretórios.<br />

Em seguida, temos uma diretiva de definição para captura de erros. Você define<br />

error(s), fazendo uma referência à função error_P:<br />

#define error(s) error_P(PSTR(s))<br />

Depois, você cria uma função error_P, cujo propósito é simplesmente imprimir mensagens<br />

de erros transmitidas a ela, assim como códigos de erros relevantes gerados.<br />

O parâmetro para a função é uma referência a uma string de caracteres. A string de<br />

caracteres é precedida por const. Isso é conhecido como um qualificador de variável, e<br />

serve para modificar o comportamento da variável. Nesse caso, ele qualifica a variável<br />

como somente leitura. Ela poderá ser utilizada da mesma forma que qualquer outra<br />

variável, mas seu valor não poderá ser alterado.<br />

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

Em seguida, temos um comando PGMPrint(), parte da biblioteca sdfatlib, que armazena<br />

em memória flash, e imprime a string dentro de seus parênteses:<br />

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

Então, temos o comando SerialPrintIn. Uma vez mais, estamos falando de um comando<br />

da biblioteca que imprime uma string da memória flash na porta serial, seguida de<br />

um CR/LF 1 (carriage return, retorno de carro, e line feed, alimentação de linha).<br />

SerialPrintln_P(str);<br />

1 N.T.: Na computação, o carriage return (CR) é um dos caracteres de controle do código ASCII,<br />

Unicode ou EBCDIC que faz com que uma impressora ou dispositivo de saída mova a posição<br />

do cursor para a primeira posição da linha onde se encontra. Esse comando é normalmente utilizado<br />

acompanhado do line feed (avanço de linha): o retorno de carro (carriage return) antecede<br />

o avanço de linha (line feed), de maneira a indicar uma nova linha (Fonte: Wikipédia).

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

Saved successfully!

Ooh no, something went wrong!