//024_02_20_Cartão SD e DB18S20 Copy
#include <SdFat.h>
#include <OneWire.h> //Do sketch 2024_01_23_Lendo_DB18S20_v1
#include <DallasTemperature.h>//Do sketch 2024_01_23_Lendo_DB18S20_v1
SdFat sdCard;
SdFile meuArquivo;
// Pino ligado ao CS do modulo
const int chipSelect = 10;
//********** Parte referente ao sketch 2024_01_23_Lendo_DB18S20_v1
const int PINO_ONEWIRE = 8; // Estou usando o NANO então mudei p 8
OneWire oneWire(PINO_ONEWIRE); // Cria um objeto OneWire
DallasTemperature sensor(&oneWire); // Informa a referencia da biblioteca dallas temperature para Biblioteca onewire
DeviceAddress endereco_temp; // Cria um endereco temporario da leitura do sensor
//**********
void setup()
{
Serial.begin(9600);
//********** Parte referente ao sketch 2024_01_23_Lendo_DB18S20_v1
Serial.println("2024_02_19_Grava_Cartao_SD_V2"); //Inclui para identificar o programa
Serial.println("Medindo Temperatura - DB18S20"); // Imprime a mensagem inicial
sensor.begin(); ; // Inicia o sensor
//**********
pinMode(A5, INPUT); // Define o pino do potenciometro como entrada
// Inicializa o modulo SD
if(!sdCard.begin(chipSelect,SPI_HALF_SPEED))sdCard.initErrorHalt(); // Inicializa o modulo SD
// Abre o arquivo Grava_temperatura.txt
if (!meuArquivo.open("Grava_temperatura.txt", O_RDWR | O_CREAT | O_AT_END)) { // Abre o arquivo LER_POT.TXT
sdCard.errorHalt("Erro na abertura do arquivo Grava_temperatura.txt!");
}
}
void loop()
{
//********** Parte referente ao sketch 2024_01_23_Lendo_DB18S20_v1
sensor.requestTemperatures(); // Envia comando para realizar a conversão de temperatura
if (!sensor.getAddress(endereco_temp,0)) { // Encontra o endereco do sensor no barramento
Serial.println("SENSOR NAO CONECTADO"); // Sensor conectado, imprime mensagem de erro
} else {
Serial.print("Temperatura = "); // Imprime a temperatura no monitor serial
Serial.println(sensor.getTempC(endereco_temp), 1); // Busca temperatura para dispositivo
}
delay(1000);
meuArquivo.println("2024_02_19_Grava_Cartao_SD_V2");
meuArquivo.print("Leitura Temperatura: ");
meuArquivo.println(sensor.getTempC(endereco_temp));
meuArquivo.close();
while (1) {}
delay(1000);
}