Problema con Micro sd

estimado espero puedan ayudarme, estoy usando esta tarjeta http://www.olimex.cl/product_info.php?p … oSD_Shield,

me compre una para probar y funciono in peque sin problema pero ahora compre 5 mas y ninguna funciona.
este codigo use para las pruebas rapidas

// Escribir datos en una tarjeta SD con Arduino - Datalogger http://zygzax.com/

//Incluimos la libreria SD.
#include <SD.h>
// Guardamos en que entrada de Arduino esta conectado el pin CS del modulo.
const int chipSelect = 4;
int grados, decimas;
int lm35read;
int temperatura;

void setup(){
// Configuramos el puerto serie para informar de fallos a traves de el.
Serial.begin(9600);

// El pin CS por defecto de la placa arduino debe ser configurado como salida
// aunque no se use (10 en la mayoria de las placas, 53 en Arduino Mega).
pinMode(10, OUTPUT);

// Si ha habido error al leer la tarjeta informamos por el puerto serie.
if (!SD.begin(chipSelect)){
Serial.println("Error al leer la tarjeta.");
return;
}
}

void loop(){

// Creamos las variable donde vamos a guardar el valor del potenciometro.
int pot=0;

// Leemos los datos del potenciometro.
pot=analogRead(0);

// Abrimos el fichero donde vamos a guardar los datos (Si no existe se crea automaticamente).
File dataFile = SD.open("valorpot.txt", FILE_WRITE);

// Si el fichero es correcto escribimos en el.
if (dataFile) {
// Escribimos en el fichero "POT: "
dataFile.print("POT: ");
// A continuacion escribimos el valor de la variable pot y saltamos a la linea siguiente.
dataFile.println(pot);
dataFile.println("-----5s-----");
dataFile.print("Lectura en bruto ");
dataFile.print(lm35read);
dataFile.print(" temperatura ");
dataFile.print(grados);
dataFile.print(".");
dataFile.println(decimas);


// Cerramos el archivo.
dataFile.close();

// Avisamos de que se ha podido escribir correctamente.
Serial.println("impresion correcta");
Serial.print("Lectura en bruto ");
Serial.print(lm35read);
Serial.print(" temperatura ");
Serial.print(grados);
Serial.print(".");
Serial.println(decimas);

// Si no pudimos escribir en el fichero avisamos por el puerto serie.
}else{
Serial.println("Error al escribir en valorpot.txt");
}

// Esperamos 5s para tomar la siguiente medida.
delay(1000);
}

y no guarda ningun dato y dentra en esto.

if (!SD.begin(chipSelect)){
Serial.println("Error al leer la tarjeta.");

la primera aun funciona pero es raro que 5 tarjetas nuevas estén malas, puede ser que aya muerto algo mas, uso la misma sd en la que funciona y en las que no…

gracias por cualquier info que puedan darme…

EDIT BY MOD: moved to proper language - added code tags

Prueba a ver que tensión le llega a las tarjetas. Debe ser 3.3V

Si, gracias voltajes bien 3,3 volts,

aparentemente el problema esta aquí "const int chipSelect = 4;" debe decir "const int chipSelect = 8;".

aun no lo pruebo pero por la otra oreja me soplan eso...
gracias...

Y aquí también debes moficar:

// El pin CS por defecto de la placa arduino debe ser configurado como salida
// aunque no se use (10 en la mayoria de las placas, 53 en Arduino Mega).
pinMode(10, OUTPUT);

En el ejemplo de prueba con la librería SD, hay dos lineas que modificar, en las que hay que definir el pin digital que corresponde al CS del lector.

Algunas tarjetas micro SD, aunque marcan que funcionan con 3.3V, tienen el típico regulador de 5V a 3.3V, sin ningun puente que soldar para conseguir solo activarlas con 3.3V.

Así que cuando las activas con 3.3V obtendrás errores aunque tu cableado y skecth estén perfectos. Se deben alimentar con 5V, no te preocupes que el regulador solo mandará los 3.3V que necesita para funcionar.

Offtopic:

Aquí me surge la duda, si para un arduino UNO o MEGA será viable solo cambiar el regulador que alimenta con 5V la placa, por uno que regule a 3.3V… he visto or allí alguien que muestra como hacer el cambio…

bueno final mente el problema era esto en mi placa sd:

const int chipSelect = 4; y tenia que decir const int chipSelect = 8;

estimado TFTLCDCyg, si observas el link que deje en el primer comentario veras la placa sd (shield) y esta no cuenta con un regulador de 3,3 volt para la tarjeta sd, por ende los 3,3 volts los saco desde la misma placa arduino uno R3 que los trae.

al hacer el cambio de pin del chipSelect, todo funciona bien y las probe con una minisd de 2, 4 y 32GB

saludos y gracias por su tiempo
nos vemos...

http://www.olimex.cl/product_info.php?products_id=698&product__name=Arduino_microSD_Shield