Go Down

Topic: Arduino Mega+ethernet shield sd-karte auslesen? (Read 1 time) previous topic - next topic

sirewgenij

Guten Tag.
seit 2 stunden versuche ich meine micro SD auslesen. Dafür nehme ich Standard Programm.
Vor dem beginn zeigt mir das er kein SD finden kann, obwohl SD karte da & und funktioniert.
Was mache ich falsch? bitte um schnelleres Antwort. vielen Dank. Mfg Eugen

markbee

Schneller als was? </zynismus off>

Welches Ethernet-Shield, welches "Standard-Programm", welche SD-Karte? </Kristallkugel off>


sirewgenij

danke für schneller antwort
sd karte im ethernet shield
http://www.watterott.com/de/Arduino-Ethernet-Shield
Egal welche exampel von SD library, funktioniert nicht

lgrube96

Hast du den pin 10 zu pin 53 geändert ?
Das musst du unbedingt machen, sonst klappt da gar nichts !

Grüße
Lorenz

sirewgenij

das habe ich als erstes gemacht. problem war das arduino mega hat 50 - MISO (DO), 51 - MOSI (DI), 52 - SCK und nicht wie Arduino Uno 13-11. muss ich 3 Kabel einlöten.Aber sonst funktioniert. UNd Noch SD karte muss in FAT16 formatiert sein!!

michael_x

Was sagt das cardinfo Beispielprogramm ?
Verdrahtungsfehler / Keine Karte oder Formatierung unbekannt oder ...

JSteinacher

Hallo,
ich hatte auch Probleme mit dieser Konfiguration. Ich habe dann durch vieles Probieren folgendes Setup gefunden
das auf meinem Arduino Mega 2560 mit Ethernet-Shield und SD-Card funktioniert:

Code: [Select]

#include <SPI.h>
#include <Ethernet.h>
#include <EthernetUDP.h>
#include <Dns.h>
#include <SD.h>
.
.
.
// Enter a MAC address for your controller below.
// Newer Ethernet shields have a MAC address printed on a sticker on the shield
byte mac[] = {  0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
unsigned int localPort = 8888;               // local port to listen for UDP packets
.
.
.
// Initialize the Ethernet client library
// with the IP address and port of the server
// that you want to connect to (port 80 is default for HTTP):
EthernetServer server(80);

.
.
.

// A UDP instance to let us send and receive packets over UDP
EthernetUDP Udp;
DNSClient Dns;


// On the Ethernet Shield, CS is pin 4. Note that even if it's not
// used as the CS pin, the hardware CS pin (10 on most Arduino boards,
// 53 on the Mega) must be left as an output or the SD library
// functions will not work.
const int chipSelect = 4;


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.println("Start setup");

  // make sure that the default chip select pin is set to
  // output, even if you don't use it:
  pinMode(10, OUTPUT);
  digitalWrite(10, HIGH);
 
  Serial.print("Initializing SD card...");

  // see if SD card is present and can be initialized:
  if (!SD.begin(chipSelect)) {
    Serial.println("Card failed, or not present");
  }else {
    Serial.println("card initialized.");
  }
 
  // start the Ethernet connection:
  if (Ethernet.begin(mac) == 0) {
    Serial.println("Failed to configure Ethernet using DHCP");
  }
 
  // give the Ethernet shield a second to initialize:
  delay(1000);
 
  Udp.begin(localPort);
  Dns.begin(Ethernet.dnsServerIP() );

  Serial.println("waiting for sync");
  setSyncProvider(getNtpTime);
  while(timeStatus()== timeNotSet)
     ; // wait until the time is set by the sync provider
  digitalClockDisplay();
 
  server.begin();
  Serial.print("server is at ");
  Serial.println(Ethernet.localIP());
  Serial.println("End setup");
}


Da sind auch noch ein paar Zeilen aus meinem "Produktiv-Sketch" drinnen, die kannst du ja ignorieren.
Ich weiss auch nicht warum es auf dem Mega (!!) mit genau diesen Werten geht aber es tut es definitiv.

Gruss
Jürgen

Go Up