|
发表于 2016-6-28 10:38:53
|
显示全部楼层
看看我写的这个,显示正常,存储正常,可以参考看看
#include <LiquidCrystal.h> //LCD显示库 1602LCD屏使用
#include <Wire.h> //i2c总线库 1307时钟使用 占用A4A5
#include <RTClib.h> //RTC时钟芯片库 1307时钟使用
#include <DHT.h> //DHT11 DHT22 通用库
#include <SPI.h> //SPI总线库 SD卡使用
#include <SD.h> //SD卡库 SD卡使用
DHT dht;
RTC_DS1307 rtc;
int a=0;
const int chipSelect = 4; //SD卡使用到引脚4
LiquidCrystal lcd(10,9,8,7,6,5); //LCD使用到引脚10,9,8,7,6,5
void setup() {
Serial.begin(9600); //串口引脚波特率9600
Wire.begin(); //i2c总线启用
rtc.begin(); //RTC时钟启用
dht.setup(2); // data pin 2 //DHT使用到引脚2
pinMode(13, OUTPUT);
lcd.begin(16,2);
lcd.print("hello,World!");
Serial.print("Initializing SD card...");
if (!SD.begin(chipSelect)) {
Serial.println("Card failed, or not present");
return;
}
Serial.println("card initialized.");
}
void loop() {
delay(3000);
float humidity = dht.getHumidity();
float temperature = dht.getTemperature();
String dataString = "";
a= a+1;
DateTime now = rtc.now();
dataString +=String(a)+",";
dataString += String(now.year(), DEC)+"-"+String(now.month(), DEC)+"-"+String(now.day(), DEC)+" ";
dataString += String(now.hour(), DEC)+":"+String(now.minute(), DEC)+":"+String(now.second(), DEC);
dataString +=","+String(dht.getHumidity())+","+String(dht.getTemperature());
lcd.setCursor(0,1);
lcd.print(String(dht.getHumidity())+","+String(dht.getTemperature()));
digitalWrite(13, HIGH);
File dataFile = SD.open("datalog.csv", FILE_WRITE);
if (dataFile) {
dataFile.println(dataString);
dataFile.close();
Serial.println(dataString);
digitalWrite(13, LOW);
}
else {
Serial.println("error opening datalog.txt");
digitalWrite(13, HIGH);
}
}
|
|