Go Down

Topic: Problemas con arduino pro mini y modulo sd por medio de iscp (Read 2525 times) previous topic - next topic

ESCALANDUM1

Cordial saludo

me encuentro  en problema ya que he tratado de conectar el  modulo sd a mi arduino pro  mini  de 5v 16MHz por medio de los pines de iscp pero no  me lo permite el código que utilizo es el  de el ejemplo de sd ya lo probé en un arduino uno y  funciona bien reconoce la sd pero en el pro mini no me reconoce la tarjeta .

de antemano gracias por su colaboración  

Lucario448

Dos preguntas:

  • Algún esquema (diagrama de conexión)?
  • Sabes qué es el pin CS (SS)?

ESCALANDUM1

este es el codigo
/*
  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:
 ** MOSI - pin 11
 ** MISO - pin 12
 ** CLK - pin 13
 ** CS - pin 4

 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;

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


  Serial.print("Initializing SD card...");

  if (!SD.begin(10)) {
    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
}


Lucario448

El código va entre tags generados por el botón </>
Edita el post, la imagen debe aparecer en la página, no como adjunto.
Cualquier duda con lo anterior, lee las reglas del foro.

Lo digo por aquello de algún moderador... ::)


Ahora otra pregunta: por qué dices que por ICSP si en el diagrama se ve que todo va a los pines 10, 11, 12 y 13?

ESCALANDUM1

Code: [Select]

/*
  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:
 ** MOSI - pin 11
 ** MISO - pin 12
 ** CLK - pin 13
 ** CS - pin 4

 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;

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


  Serial.print("Initializing SD card...");

  if (!SD.begin(4)) {
    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
}



ESCALANDUM1

el arduino pro mini no tiene puerto icsp soldado  por eso utiliza los pines
MOSI - pin 11
MISO - pin 12
CLK - pin 13
CS - pin 4

adjunto el diagrama de todos los pines  de un arduino pro mini alli dice los pines que se utilizan como icsp

Lucario448

Oh, ahora lo entiendo. Tu llamas "ICSP" al conjunto de pines utilizados para SPI (aunque la disposición no sea la propia).

Ahora te pido que hagas lo siguiente:

  • Postear una imagen del módulo por favor (ya sabes cómo se hace).
  • Verifica si el pin que usas como CS, es capaz de encender un LED (has lo mismo con el 11, 12 y 13).

ESCALANDUM1


El módulo funciona bien en arduino uno


Realice los pasos queme indicó y en todos prende el Led lo probé en varias placas de pro mini pero igual no la reconoce .

Lucario448


carontester

hola tambien estube haciendo esta misma conexion y usando el modulo sd en un arduino mini y me daba problemas, antes lo probe en un arduino uno y si jalo, estubue las primeras veces conectandolo tal cual el lo comentan en el post, pero despues en lugar de conectar el pin cs a el pin 10 del mini lo conecte al pin4 como ponen en el comentario al principio del programa de ejemplo read/write, de esta manera al parecer ya esta escribiendo y leyendose la sd, hay paso el dato


edito modificando un poco el codigo de ejemplo en esta parte:

if (!SD.begin(4)) {
    Serial.println("initialization failed!");
    return;

si en lugar de 4 ponemos el numero de otro pin del arduino mini pro  (2 al 9), en ese pin es donde debemos de concetar el pin CS del modulo sd

Lucario448

Mmmm... será entonces que cambió el código pero no el pin CS físico?
Eso posiblemente pueda ser, aunque omití decirlo ya que era obvio (supuestamente) ::)

También está lo que carontester me acaba de recordar: prueba cambiar el CS con otros pines que no estén ocupados.

Go Up