Para escrever no cartão SD é necessário utilizarmos a biblioteca SdFat e a placa SD Card Module. Como exemplo de dados a serem escritos no cartão utilizamos as informações colhidas pelo DHT11.
Componentes utilizados
1x placa arduino UNO 1x cabo USB A/B 1x protoboard 22x fios jumpers (aproximadamente) 1x placa SD Card Module 1x sensor dht11 6x resistores 100~200 Ohms
Esquema de montagem SD Card
Código Fonte
#include <dht.h>
#include <SdFat.h>
SdFat sdCard;
SdFile meuArq;
//Aqui definimos o nome da variavel arquivo;
const int chipSelect = 4;
// Pino ligado ao CS do modulo
#define dht_dpin A1
//Pino DATA do Sensor ligado na porta Analogica A1
dht DHT;
//Inicializa o sensor
void setup()
{
Serial.begin(9600);
// Inicialização da porta serial do Arduino
Serial.println("Aguardando dados...");
}
void loop(){
delay(1000);
//Aguardamos 1 segundo para a inicialização e estabilização do sensor
int teste = DHT.read11(dht_dpin);
//Lê as informações do sensor
//Aqui começamos a mostrar as informações no monitor serial
Serial.print("Umidade = ");
Serial.print(DHT.humidity);
Serial.print(" % ");
Serial.print("Temperatura = ");
Serial.print(DHT.temperature);
Serial.println(" Celsius ");
if(!sdCard.begin(chipSelect,SPI_HALF_SPEED))sdCard.initErrorHalt();
// Inicializa o modulo SD
Serial.println("Escrevendo no cartão SD...");
//Aqui começamos a escrever no cartão SD as informações coletadas
if (!meuArq.open("Dados.txt", O_RDWR | O_CREAT | O_AT_END))
{
sdCard.errorHalt("Erro na abertura do arquivo Dados.txt!");
}
//Caso ocorra um erro no Cartão SD é mostrada a frase acima
meuArq.print("Temperatura: ");
meuArq.print(DHT.temperature, 2);
// Recebe a temperatura com duas casas decimais.
meuArq.println(" ºC ");
meuArq.print(" Umidade: ");
meuArq.print(DHT.humidity, 2);
// Recebe a temperatura com duas casas decimais.
meuArq.println(" % ");
meuArq.close();
delay(2000);
// Colocamos um atraso de 2 segundos para obtermos com certeza, uma leitura de ciclos diferentes.
}
Page last modified on October 25, 2018, at 02:24 PM
