Despite your poor written question, I'll reply to you with a code, I used in my temperature logger 2 weeks ago. Includes LCD, temp sensor and SD card.
Delay is set for 9,1s which sums up with the calculation times of Arduino to 10 +/- 0.05 sec.
Lower it down to 100ms, if you want to be written every 1 second.
PS: The lower row, most right: There is a sign in letters, the condition of the sistem.
N = something's wrong, not inserted card/not connected SD card module
O = everything's okay, it's data logging
#include <OneWire.h>
#include <DallasTemperature.h>
#include <LiquidCrystal.h>
#include <SPI.h>
#include <SD.h>
#define ONE_WIRE_BUS 6 OneWire oneWire(ONE_WIRE_BUS); DallasTemperature sensors(&oneWire); LiquidCrystal lcd(8, 7, 5, 4, 3, 2);
const int chipSelect = 10;
void setup() {
Serial.begin(9600); Serial.println("Arduino Digital Temperature // Serial Monitor Version"); sensors.begin();
lcd.begin(16, 2); lcd.setCursor(0, 0); lcd.print("Temperatura:"); //*********************************************
while (!Serial) { } lcd.setCursor(15, 1); lcd.print("??"); Serial.print("??");
if (!SD.begin(chipSelect)) {
Serial.println("NO");
lcd.setCursor(15, 1);
lcd.print("NO");
return; } else { lcd.setCursor(15, 1); lcd.print("OK"); Serial.println("OK"); } //********************************************* }
void loop() {
String dataString = "";
float abc;
sensors.requestTemperatures(); Serial.print("Temperature is: "); Serial.println(sensors.getTempCByIndex(0)); lcd.setCursor(0, 1); lcd.print(sensors.getTempCByIndex(0));
File dataFile = SD.open("datalog.txt", FILE_WRITE);
if (dataFile) {
dataFile.println(sensors.getTempCByIndex(0));
dataFile.close(); Serial.println(sensors.getTempCByIndex(0));
}
else {
Serial.println("error opening datalog.txt"); }
//delay(9100); }