08.11.2017 Views

arduino_básico_Michael_McRoberts

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Capítulo 15 ■ Leitura e escrita de dados em um cartão SD<br />

357<br />

Listagem 15.2 – Código para o projeto 43<br />

// Projeto 43<br />

// Com base nos exemplos da SD Fat, criada por Bill Greiman da sdfatlib<br />

// Biblioteca DS1307, de Matt Joyce, com melhorias criadas por D. Sjunnesson<br />

#include <br />

#include <br />

#include <br />

#include <br />

#include <br />

#include <br />

#include // escrita por mattt, no forum do Arduino, e modificada por D. Sjunnesson<br />

// armazena as strings de erro em memória flash, para economizar a RAM<br />

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

// O fio de dados está conectado ao pino 3 do Arduino<br />

#define ONE_WIRE_BUS 3<br />

#define TEMPERATURE_PRECISION 12<br />

Sd2Card card;<br />

SdVolume volume;<br />

SdFile root;<br />

SdFile file;<br />

// Prepara uma instância de OneWire para se comunicar com qualquer dispositivo OneWire (não<br />

// apenas CIs de temperatura Maxim/Dallas)<br />

OneWire oneWire(ONE_WIRE_BUS);<br />

// Passa uma referência à instância oneWire para Dallas Temperature.<br />

DallasTemperature sensors(&oneWire);<br />

// arrays para armazenar os endereços do dispositivo<br />

DeviceAddress insideThermometer = { 0x10, 0x20, 0x2C, 0xA9, 0x01, 0x08, 0x00, 0x73 };<br />

DeviceAddress outsideThermometer = { 0x10, 0x22, 0x5B, 0xA9, 0x01, 0x08, 0x00, 0x21 };<br />

float tempC, tempF;<br />

int hour, minute, seconds, day, month, year;<br />

// cria um novo nome de arquivo<br />

char name[] = "TEMPLOG.TXT";<br />

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

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

SerialPrintln_P(str);<br />

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

PgmPrint("SD error: ");

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

Saved successfully!

Ooh no, something went wrong!