首页 > 解决方案 > SPI Micro SD 卡 - 打开文本文件时出错 - 为什么它不起作用?

问题描述

首先对我糟糕的英语和我的编程技巧感到抱歉……我还是个初学者。我在将示例代码实施到我的项目中时遇到问题。我的 SD 卡上的数据记录示例代码有效。所以没有接线故障。在我的项目中实现这个工作代码,arduino 找不到文本数据,我不知道为什么。有谁能够帮我 ?

我正在使用 arduino nano V3。和一个SPI读卡器。

以下是串行监视器中发生的情况:

正在初始化 SD 卡...卡已初始化。打开 datalog.txt 时出错

这是我的代码 - 对使用的德语单词感到抱歉......但我认为他们不会打扰。


#include <LiquidCrystal_I2C.h>
#include "RTClib.h"
RTC_DS3231 rtc;
#include <SimpleDHT.h>
#include <Wire.h> 
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
#include <SPI.h>
#include <SD.h>

const int chipSelect = 10;              // SD KARTE


int pinDHT22 = 2;                       // Kombisensor
SimpleDHT22 dht22(pinDHT22);

float temperature = 0;
float humidity = 0;
volatile float windgeschwindigkeit = 0;
unsigned long previousMillis = 0;
volatile int Impulscounter = 0;   // Impulszähler für Windgeschwindigkeit
unsigned long windmillis = 0;
int a = 0;

File Datenlog;


void wind()
{
  Impulscounter = Impulscounter + 1;

  if( Impulscounter == 1)
      {  
        windmillis = millis();
      }

}

void setup() 
{
      pinMode(3, INPUT);
      lcd.begin();
      lcd.backlight();  
      Serial.begin(9600);
      attachInterrupt(1, wind, RISING);

      while (!Serial) {         // wait for serial port to connect. Needed for native USB port only
    ; 
  }


  Serial.print("Initializing SD card...");       


  if (!SD.begin(chipSelect)) {                            // see if the card is present and can be initialized:
    Serial.println("Card failed, or not present");  
                                                           // don't do anything more:
    while (1);
  }
  Serial.println("card initialized.");

 Datenlog = SD.open("test.txt", FILE_WRITE);

 if (Datenlog){

   Datenlog.print("Tag     ");                   // ... und die Textdatei anschließend befüllt werden. 
   Datenlog.print("Datum     ");
   Datenlog.print("Uhrzeit    ");
   Datenlog.print("Aussentemperatur     ");
   Datenlog.print("Aussenfeuchtigkeit     ");
   Datenlog.print("Windgeschwindigkeit     ");
   Datenlog.print("Gehaeusetemperatur     ");


   Datenlog.close();       
   Serial.print ( "it worked");
 }
  else {
     Serial.println("error opening datalog.txt");
  }
}


标签: arduinospicardreader

解决方案


推荐阅读