0

Can anyone assist me with read/write to a SD shield. I am using a arduino along with a SD shield (POD uSD) I am using a ultrasonic sensor to measure a distance, it has a safety factor in it. It also measures the time a measurement was taken, I now need to save the data from the serial monitor to a file and send that file to a SD card. I cannot seem to solve the saving a file part along with the SD shield

I have wrote my code but can seem to implement the shield along with my code, I want to store my data onto a file on the SD card. I've reviewed the example provided in the library's but it won't work for me

My code is;

#define redled 10
#define greenled 11
#define echoPin 12
#define trigPin 13
unsigned long interval=60000; //interval = 60 seconds
unsigned long previoustime=0;
int minutes = 0; //global variables
void setup() {
 Serial.begin (9600); //Set Baud rate to 9600 to match serial monitor
 pinMode(trigPin, OUTPUT);
 pinMode(echoPin, INPUT);
 pinMode(greenled, OUTPUT);
 pinMode(redled, OUTPUT);
}
void loop() { 
 //----------------------------------------------------------- 
 unsigned long currenttime = millis(); //counts time in milliseconds and puts it into current time
 if ((currenttime-previoustime) >= interval) { //When time is greater 60 seconds
 previoustime = currenttime; //Make the previous time equalled to the minute to take away in the next if statement **Time since start section**
 minutes = minutes + 1; //Add 1 minute
 }
 unsigned long time = (currenttime-previoustime) / 1000; //converts the milliseconds to seconds
 //-----------------------------------------------------------
 long distance = ultra_sensor(); //call function that now returns the distance
 //-----------------------------------------------------------
 if (distance < 4) { // If distance is less than 4cm
 digitalWrite(redled,HIGH); // Turn on Red LED
 digitalWrite(greenled,LOW); // Turn off Green LED
 }
 else { //If distance is greater than 4cm
 digitalWrite(redled,LOW); // Turn off Red LED
 digitalWrite(greenled,HIGH); // Turn on Green LED
 }
 //----------------------------------------------------------- 
 if (distance >= 200 || distance <= 0){
 Serial.println("Out of range");
 }
 else {
 Serial.print(distance);
 Serial.print("cm");
 Serial.print(" after ");
 Serial.print(minutes); //Printing distance and time to serial monitor
 Serial.print(" minutes ");
 Serial.print("and "); 
 Serial.print(time);
 Serial.println(" seconds");
 }
 //-----------------------------------------------------------
 delay(2000); //Get reading every 2 seconds
}
long ultra_sensor() { //Ultrasonic sensor reading is now a function. More efficient
 digitalWrite(trigPin, LOW); //Set Trigger to idle
 delayMicroseconds(2); //Wait 2 microseconds
 digitalWrite(trigPin, HIGH); //Set Trigger to high which sends out a wave
 delayMicroseconds(10); //Send the wave for 10 microseconds
 digitalWrite(trigPin, LOW); //Turn the trigger to idle
 long duration = pulseIn(echoPin, HIGH); //make duration the wave that echo recieves back
 long dis = (duration/2) / 29.1; //divide by 2 for going there and back. ***Speed of sound***
 return dis; //Send the distance to function call
}
asked Dec 6, 2015 at 23:31

1 Answer 1

1

Looks like your sketch (pin usage) is in conflict with the SD shield (SPI pins). Try using other pins.

answered Dec 7, 2015 at 9:44

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.