SPI Memory Shield Module арқылы деректерді SD картасына қалай сақтау керек

Мен HC-SR04 ультрадыбыстық модулінен оқып жатқан жад модулін пайдаланып SD картасына кейбір деректерді сақтауға тырысамын. Басып шығарылған деректер қатені көрсетеді. Менің SD-карта модулім осылай қосылған.

SPI шинасына бекітілген SD картасы   VCC-Ардуино 5v
  GND - Arduino GND
  MOSI - pin 11
  MISO - pin 12
  CLK - pin 13
  CS - pin 4

Дегенмен, Arduino файлды SD картасында ашу қатесі болғанына шағымданады. Менің эскизім:

#include 
#include 
#define echoPin 6//Echo Pin
#define trigPin 7//Trigger Pin

int maximumRange = 250;//Maximum range needed
int minimumRange = 1;//Minimum range needed
long duration, distance;//Duration used to calculate distance
const int chipSelect = 4;

void setup() {
  Serial.begin (9600);
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);

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

void loop() {
  readDistance();
  if(distance>minimumRange && distance < maximumRange){
    String string = "distance is" + distance;
   //open the file. note that only one file can be open at a time,
   //so you have to close this one before opening another.
    File dataFile = SD.open("datalog.txt", FILE_WRITE);
   //if the file is available, write to it:
    if( dataFile ){
      dataFile.println(string);
      dataFile.close();
      Serial.println( string );
    }else{
     //if the file isn't open, pop up an error:
      Serial.println("error opening datalog.txt");
      dataFile.close();
    }
  }else{
    Serial.println("Out of range...");
  }
  delay(50);
}

int readDistance(){
  digitalWrite(trigPin, LOW); 
  delayMicroseconds(2); 
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10); 
  digitalWrite(trigPin, LOW);
  duration = pulseIn(echoPin, HIGH);
  distance = duration/58.2;
}  

Шығару:

rror opening datalog.txt
rror opening datalog.txt
error opening datalog.txt
rror opening datalog.txt
error opening datalog.txt
error opening datalog.txt
error opening datalog.txt
error opening datalog.txt
error opening datalog.txt

SD картасына оқуды сақтау үшін оны қалай шешуге болады?

2
Файлды әр жолы цикл арқылы қайтадан ашу жаман идеяға ұқсайды. Өкінішке орай, файлдық жүйенің абстракциялары сіз жасағыңыз келетін нәрсеге өте жақсы сәйкес келмейді. Сіз бірнеше оқылымды жазғыңыз келуі мүмкін, содан кейін файлды қайта ашыңыз, мүмкін, арту үлгілері бойынша басқа атаумен. Немесе файлдық жүйені өткізіп, шикі блоктарға жаза аласыз. Негізінен Arduino негізіндегі USD деректер тіркеушілерімен бірге пайдаланылатын кодты қарап шығыңыз және олармен қалай жұмыс істейтіндігіңіз туралы біле аласыз.
қосылды автор rossp, көзі
Менің ойымша, SD картаңызды қуырдыңыз. Бұл карталар 3,3 В-де жұмыс істейді және 5V-ке төзімді болмауы мүмкін.
қосылды автор Greg Duncan, көзі

Жауап жоқ

0