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.

362<br />

Arduino Básico<br />

Projeto 43 – Registrador de dados de temperatura em um cartão SD – Análise do código<br />

Como muito deste código foi abordado nos projetos 37 e 42, falaremos apenas dos<br />

novos elementos.<br />

Primeiramente, as bibliotecas apropriadas são incluídas:<br />

#include <br />

#include <br />

#include <br />

#include <br />

#include <br />

#include <br />

#include <br />

As três últimas bibliotecas são novas e necessárias para executar o código do DS1307.<br />

As bibliotecas WProgram.h e Wire.h acompanham o programa principal do Arduino.<br />

Depois, as definições para captura de erro e o barramento do dispositivo 1-Wire são<br />

criados:<br />

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

#define ONE_WIRE_BUS 3<br />

#define TEMPERATURE_PRECISION 12<br />

Então, criamos objetos para o cartão SD:<br />

Sd2Card card;<br />

SdVolume volume;<br />

SdFile root;<br />

SdFile file;<br />

Você também cria instâncias para o dispositivo 1-Wire e para o sensor de temperatura<br />

Dallas:<br />

OneWire oneWire(ONE_WIRE_BUS);<br />

DallasTemperature sensors(&oneWire);<br />

Então, você define os endereços para os sensores DS18B20. Utilize o projeto 37, parte<br />

1, para descobrir os endereços de seus sensores.<br />

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

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

Agora, você cria algumas variáveis que armazenarão as leituras de temperatura e de<br />

data e hora obtidas do RTC, além do array que armazenará o nome do arquivo em<br />

que você registrará os dados:<br />

float tempC, tempF;<br />

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

char name[] = "TEMPLOG.TXT";

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

Saved successfully!

Ooh no, something went wrong!