【求助】为什么SD卡总是初始化失败
arduino吧
全部回复
仅看楼主
level 11
1602+SD+BMP085+DHT11+arduino nano
帮忙看一下程序,谢谢
#include <Wire.h>
#include <Adafruit_BMP085.h>
Adafruit_BMP085 bmp;
#include <dht11.h>
dht11 DHT11;
#define DHT11PIN 2
#include <SD.h>
const int chipSelect = 9;
#include <LiquidCrystal.h>
LiquidCrystal lcd(8, 7, 6, 5, 4, 3);
void setup()
{
Serial.begin(9600);
pinMode(10, OUTPUT);
Wire.begin();
bmp.begin();
lcd.begin(16, 2);
lcd.print("biao");
Serial.println("Initializing SD card");
if (!SD.begin(chipSelect))
{
Serial.println("initialization failed!");
return;
}
Serial.println("initialization done.");
delay(3000);
lcd.clear();
}
void loop()
{
int a=0;
for(a=0;a<15;a++)
{
int b=0;
for(b=0;b<3;b++)
{
lcd.setCursor(0, 0);
lcd.print("Temp=");
lcd.print(bmp.readTemperature());
lcd.write(0xdf);
lcd.write('C');
lcd.setCursor(0, 1);
lcd.print("Atmos=");
lcd.print(bmp.readPressure());
lcd.print("Pa");
delay(5000);
}
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Alt=");
lcd.print(bmp.readAltitude());
lcd.print("m");
lcd.setCursor(0, 1);
lcd.print("RAlt=");
lcd.print(bmp.readAltitude(101500));
lcd.print("m");
delay(12500);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("HR=");
lcd.print(DHT11.humidity);
lcd.print("%");
delay(12500);
}
File dataFile = SD.open("datalog.txt", FILE_WRITE);
dataFile.print(bmp.readTemperature());
dataFile.print("℃");
dataFile.print(",");
dataFile.print(bmp.readPressure());
dataFile.print("Pa");
dataFile.print(",");
dataFile.println(DHT11.humidity);
dataFile.print("%");
dataFile.close();
}
2014年05月02日 08点05分 1
1