Lector de tarjetas SD
Compre el lector de tarjetas en uno de esos sitios chinos, de donde suelo comprar la mayoría de componentes que utilizo para mis proyectos y a un precio de USD$3.20 (a MXN$13.30 el tipo de cambio son aproximadamente MXN$42.56) es bastante barato.
Obvio tiene sus desventajas el comprar algo desde China y es que el envío puede tardar hasta 60 días, pero la mayoría de las veces solo toma dos semanas y por lo regular el envío es gratuito. En Mercado Libre el precio mas barato que he visto es de alrededor de MXN$60.00 + el envío que no baja de MXN$50.00.
Obvio tiene sus desventajas el comprar algo desde China y es que el envío puede tardar hasta 60 días, pero la mayoría de las veces solo toma dos semanas y por lo regular el envío es gratuito. En Mercado Libre el precio mas barato que he visto es de alrededor de MXN$60.00 + el envío que no baja de MXN$50.00.
Cuando me llego lo primero que quise fue conectarlo, pero oh sorpresa, no tiene manual entonces me puse a investigar, encontré un par de cosas en como conectarlo, no del todo claro. Así que por eso motivo hago esto.
Así que a lo que nos interesa.
Como conectar el lector de tarjeta SD a Arduino Mega 2560
La conexión que se ve en la foto de la derecha esta hecha por medio del conector ICSP, que la mayoría de las placas arduino ya tienen incluidas y esto facilita mucho la conexión de este tipo de dispositivos.
Los pines del conector ICSP estan configurados de la siguiente forma:
Por lo cual, conectar el lector de tarjeta SD se da casi de forma natural.

Los pines del conector del lector de tarjetas SD viene de la siguiente manera:
Por lo cual se puede ver a primera vista los pines que hay que conectar en común, quedando solamente el pin "CS" que hay que conectar al pin 53 de nuestro Arduino Mega 2560.
Conexiones
Lector tarjetas SD | Arduino |
---|---|
GND | GND |
+3.3v | ICSP +VCC |
+5v | NC |
CS | Pin 53 |
MOSI | ICSP MOSI |
SCK | ICSP SCK |
MISO | ICSP MISO |
GND | NC |
*NC = No conectar
Ahora el código para tu proyecto.
Básicamente utilizaremos el mismo código que viene en el IDE de Arduino, que es el ejemplo Cardinfo.Aquí solamente cambiaremos un parámetro y eso es todo lo necesario para poder inicializar el lector de tarjeta y poder comenzar a trabajar con ella.
#include
#include
// set up variables using the SD utility library functions:
Sd2Card card;
SdVolume volume;
SdFile root;
// Pin 53 en mega 2560
const int chipSelect = 53;
void setup()
{
// Open serial communications and wait for port to open:
Serial.begin(9600);
Serial.print("\nInitializing SD card...");
pinMode(53, OUTPUT);// Pin 53 en Arduino mega 2560
// we'll use the initialization code from the utility libraries
// since we're just testing if the card is working!
if (!card.init(SPI_HALF_SPEED, chipSelect)) {
Serial.println("initialization failed. Things to check:");
Serial.println("* is a card is inserted?");
Serial.println("* Is your wiring correct?");
Serial.println("* did you change the chipSelect pin to match your shield or module?");
return;
} else {
Serial.println("Wiring is correct and a card is present.");
}
// print the type of card
Serial.print("\nCard type: ");
switch(card.type()) {
case SD_CARD_TYPE_SD1:
Serial.println("SD1");
break;
case SD_CARD_TYPE_SD2:
Serial.println("SD2");
break;
case SD_CARD_TYPE_SDHC:
Serial.println("SDHC");
break;
default:
Serial.println("Unknown");
}
if (!volume.init(card)) {
Serial.println("Could not find FAT16/FAT32 partition.\nMake sure you've formatted the card");
return;
}
// print the type and size of the first FAT-type volume
uint32_t volumesize;
Serial.print("\nVolume type is FAT");
Serial.println(volume.fatType(), DEC);
Serial.println();
volumesize = volume.blocksPerCluster();
volumesize *= volume.clusterCount();
volumesize *= 512;
Serial.print("Volume size (bytes): ");
Serial.println(volumesize);
Serial.print("Volume size (Kbytes): ");
volumesize /= 1024;
Serial.println(volumesize);
Serial.print("Volume size (Mbytes): ");
volumesize /= 1024;
Serial.println(volumesize);
Serial.println("\nFiles found on the card (name, date and size in bytes): ");
root.openRoot(volume);
// list all files in the card with date and size
root.ls(LS_R | LS_DATE | LS_SIZE);
}
void loop(void) {
}
Y con esto esta listo para empezar a utilizar tu lector de tarjetas SD!!
Espero que te sirva de algo y si así fue, pues que bueno!
Desde ya Muchas gracias vamos a probar!!!!
ResponderEliminarAmigo disculpa, como puedo activar un sonido especifico al activar un sensor dentro del mismisimo arduino mega 2560?
Hola! pues si quieres reproducir un sonido especifico puedes usar el tono o melody, por ejemplo para una sirena simple, http://arduino.cc/en/Tutorial/tone, espero te sirva.
Eliminarhola, un cordial saludo,,, por favor me podrías ayudar con la siguiente pregunta, estoy realizando un proyecto y en la Arduino 2560 que estoy trabajando el puerto 53 ya esta en uso, pero quiero conectar un dispositivo de tarjeta SD,¿ puedo seleccionar otro pin o puerto diferente al 53?,, y si es así como podría hacerlo?,,, por tu atención muchas gracias..
ResponderEliminarCual es el otro dispositivo que tienes en el puerto 53?
EliminarMuchisimas gracias por tu explicacion. Me ayudo mucho despues de semanas de star batallando resolvi el problema para mi micro estacion meteorologica
ResponderEliminarVint Ceramic Art | TITNIA & TECHNOLOGY
ResponderEliminarExplore jancasino.com an all new “Vint Ceramic Art” project on TITNIA & TECHNOLOGY. Our team of sculptors and artists septcasino have https://septcasino.com/review/merit-casino/ created new ford escape titanium and