Solved: SD/Datalogger shield & Mega

Adafruit Ethernet, Motor, Proto, Wave, Datalogger, GPS Shields - etc!

Moderators: adafruit_support_bill, adafruit

Please be positive and constructive with your questions and comments.
Locked
User avatar
bnmorgan
 
Posts: 5
Joined: Thu Jun 26, 2014 7:28 pm

Solved: SD/Datalogger shield & Mega

Post by bnmorgan »

I am working on getting the datalogger shield working with a mega board, and following the instructions given on https://learn.adafruit.com/adafruit-dat ... d-leonardo , but getting the following compiling errors. I'm pretty new to this stuff, and very new to coding, so I'm not quite comprehending what it's trying to tell me or what to do about it. All help appreciated. Also putting the edited example code at end.

Compile error:

ReadWrite.ino: In function 'void setup()':
ReadWrite.ino:48:29: error: no matching function for call to 'SDClass::begin(int, int, int, int)'
ReadWrite.ino:48:29: note: candidate is:
In file included from ReadWrite.ino:22:0:
C:\Program Files (x86)\Arduino\libraries\SD\src/SD.h:68:11: note: boolean SDClass::begin(uint8_t)
boolean begin(uint8_t csPin = SD_CHIP_SELECT_PIN);
^
C:\Program Files (x86)\Arduino\libraries\SD\src/SD.h:68:11: note: candidate expects 1 argument, 4 provided
Error compiling.


Example code w/ edit:

Code: Select all


/*
  SD card read/write
 
 This example shows how to read and write data to and from an SD card file 	
 The circuit:
 * SD card attached to SPI bus as follows:
 ** UNO:  MOSI - pin 11, MISO - pin 12, CLK - pin 13, CS - pin 4 (CS pin can be changed)
  and pin #10 (SS) must be an output
 ** Mega:  MOSI - pin 51, MISO - pin 50, CLK - pin 52, CS - pin 4 (CS pin can be changed)
  and pin #52 (SS) must be an output
 ** Leonardo: Connect to hardware SPI via the ICSP header

 
 created   Nov 2010  by David A. Mellis
 modified 9 Apr 2012  by Tom Igoe
 
 This example code is in the public domain.
 	 
 */
 
#include <SPI.h>
#include <SD.h>

File myFile;

// change this to match your SD shield or module;
//     Arduino Ethernet shield: pin 4
//     Adafruit SD shields and modules: pin 10
//     Sparkfun SD shield: pin 8
const int chipSelect = 10;

void setup()
{
 // Open serial communications and wait for port to open:
  Serial.begin(9600);
   while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
  }


  Serial.print("Initializing SD card...");
  // On the Ethernet Shield, CS is pin 4. It's set as an output by default.
  // Note that even if it's not used as the CS pin, the hardware SS pin 
  // (10 on most Arduino boards, 53 on the Mega) must be left as an output 
  // or the SD library functions will not work. 
   pinMode(SS, OUTPUT);
   
if (!SD.begin(10, 11, 12, 13)) {
    Serial.println("initialization failed!");
    return;
  }
  Serial.println("initialization done.");
  
  // open the file. note that only one file can be open at a time,
  // so you have to close this one before opening another.
  myFile = SD.open("test.txt", FILE_WRITE);
  
  // if the file opened okay, write to it:
  if (myFile) {
    Serial.print("Writing to test.txt...");
    myFile.println("testing 1, 2, 3.");
	// close the file:
    myFile.close();
    Serial.println("done.");
  } else {
    // if the file didn't open, print an error:
    Serial.println("error opening test.txt");
  }
  
  // re-open the file for reading:
  myFile = SD.open("test.txt");
  if (myFile) {
    Serial.println("test.txt:");
    
    // read from the file until there's nothing else in it:
    while (myFile.available()) {
    	Serial.write(myFile.read());
    }
    // close the file:
    myFile.close();
  } else {
  	// if the file didn't open, print an error:
    Serial.println("error opening test.txt");
  }
}

void loop()
{
	// nothing happens after setup
}
Last edited by bnmorgan on Wed Mar 25, 2015 5:36 pm, edited 1 time in total.

User avatar
adafruit_support_rick
 
Posts: 35092
Joined: Tue Mar 15, 2011 11:42 am

Re: Problem: SD/Datalogger shield & Mega

Post by adafruit_support_rick »

You need to download and install the Adafruit SD library.
https://github.com/adafruit/SD
This tutorial covers Arduino library installation:
https://learn.adafruit.com/adafruit-all ... nstall-use

User avatar
bnmorgan
 
Posts: 5
Joined: Thu Jun 26, 2014 7:28 pm

Re: Problem: SD/Datalogger shield & Mega

Post by bnmorgan »

Possibly, but the sketch compiles and uploads fine until changing the line " while (!card.init(SPI_HALF_SPEED, chipSelect)) { " to the line " while (!card.init(SPI_HALF_SPEED, 10, 11, 12, 13)) { " as specified in the tutorial linked above.

Of course, with the original line in the tutorial, i get the initialization failed message from the example sketch, and with the inserted line for the pin changes, i get the error listed above.

User avatar
adafruit_support_rick
 
Posts: 35092
Joined: Tue Mar 15, 2011 11:42 am

Re: Problem: SD/Datalogger shield & Mega

Post by adafruit_support_rick »

The Adafruit library adds the ability to specify the pins. The Arduino version of the library doesn't allow that. That's how I know you're using the Arduino library and not the adafruit version.

User avatar
bnmorgan
 
Posts: 5
Joined: Thu Jun 26, 2014 7:28 pm

Re: Problem: SD/Datalogger shield & Mega

Post by bnmorgan »

The results are from after following the instructions and downloading from the link. the only libraries I have in C:\Users\bmorgan\Documents\Arduino\libraries are sd-master and rtclib-master. Is there some way i need to go about removing the stock ardu sd library?

User avatar
adafruit_support_bill
 
Posts: 88093
Joined: Sat Feb 07, 2009 10:11 am

Re: Problem: SD/Datalogger shield & Mega

Post by adafruit_support_bill »

Is there some way i need to go about removing the stock ardu sd library?
Yes. This is detailed in the link you posted:

https://learn.adafruit.com/adafruit-dat ... d-leonardo
In the libraries folder, make a new folder called SDbackup. Then drag the SDfolder into SDbackup, this will 'hide' the old SD library without deleting it

User avatar
bnmorgan
 
Posts: 5
Joined: Thu Jun 26, 2014 7:28 pm

Re: Problem: SD/Datalogger shield & Mega

Post by bnmorgan »

ooOOOOhhh . i see it now. I am putting the right thing in the wrong place............*facepalm*

User avatar
bnmorgan
 
Posts: 5
Joined: Thu Jun 26, 2014 7:28 pm

Re: Problem: SD/Datalogger shield & Mega

Post by bnmorgan »

Thanks for your help and patience. Moral of the story: do not ardu with a migraine.

Image

User avatar
adafruit_support_rick
 
Posts: 35092
Joined: Tue Mar 15, 2011 11:42 am

Re: Solved: SD/Datalogger shield & Mega

Post by adafruit_support_rick »

bnmorgan wrote:do not ardu with a migraine.
Sometimes I think the two go together exclusively. ;)

Locked
Please be positive and constructive with your questions and comments.

Return to “Arduino Shields from Adafruit”