Ik probeer wat gegevens op te slaan op de SD-kaart met behulp van de geheugenschildmodule die ik heb gelezen van de HC-SR04 Ultrasone module. De gegevens die worden afgedrukt, duiden op een fout. Dit is hoe mijn SD-kaartmodule is verbonden.
SD-kaart als bijlage toegevoegd aan SPI-bus
VCC -Arduino 5v
GND- Arduino GND
MOSI - pin 11
MISO - pin 12
CLK - pin 13
CS - pin 4
Toch klaagt Arduino dat er een fout was opgetreden bij het openen van het bestand op de SD-kaart. Mijn schets is dit:
#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;
}
Output:
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
Hoe los ik dit op om de meetwaarden op de SD-kaart op te slaan?