PROJETO 48 - TESTANDO CARTÃO MICROSD COM ARDUINO

Olá pessoal! Encontrou um cartão microSD e não sabe se ele esta funcionando ou qual o seu tamanho de armazenamento? Com este simples projeto temos certeza que você saberá estes dados entre outros facilmente. Então vamos lá!!

COMPONENTES NECESSÁRIOS

1 Arduino Uno R3

1 Leitor de Cartão microSD

1 Cartão microSD

Fios jumper do tipo macho/fêmea

 

CONECTANDO OS COMPONENTES

Primeiro, certifique-se de que seu Arduino esteja desligado, desconectando-o do cabo USB. Agora, pegue o Arduino, o módulo microSD, o cartão microSD e os fios jumpers e conecte-os assim como mostra a figura abaixo:


Certifique-se de que todos os componentes estejam conectados corretamente. Quando você estiver seguro de que tudo foi conectado corretamente, ligue seu Arduino conectando-o ao cabo USB.

CÓDIGO DO PROJETO

// Projeto 48 - Testando cartao microSD

// Declarando a biblioteca do SD
#include <SPI.h>
#include <SD.h>

// Configurando as variáveis usando as funções da biblioteca
Sd2Card card;
SdVolume volume;
SdFile root;

// Transferindos os dados do módulo SD para o Arduino
const int chipSelect = 4;

void setup() {
// Inicia a comunicação serial e aguarda a abertura da porta
Serial.begin(9600);
while (!Serial) {
; // Aguarda até que a porta serial se conecte.
// Necessário apenas para porta USB nativa
}


Serial.print("\nInicializando SD card...");

// Usaremos o código de inicialização das bibliotecas de utilitários
// para testarmos se o cartão está funcionando!
if (!card.init(SPI_HALF_SPEED, chipSelect)) {
Serial.println("Falha na inicializacao. Verificar:");
Serial.println("* o cartao esta inserido?");
Serial.println("* os jumpers estao conectados corretamente?");
return;
} else {
Serial.println("Conexoes corretas e cartao encontrado.");
}

// print the type of card
Serial.print("\nTipo do cartao: ");
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("Desconhecido");
}

// Agora vamos tentar abrir o 'volume'/'partição' - deve ser FAT16 ou FAT32
if (!volume.init(card)) {
Serial.println("Nao foi possível encontrar a particao FAT16/FAT32.");
return;
}


// Imprimi o tipo e o tamanho do primeiro volume do tipo FAT
uint32_t volumesize;
Serial.print("\nO tipo do volume eh FAT");
Serial.println(volume.fatType(), DEC);
Serial.println();

volumesize = volume.blocksPerCluster(); // Clusters são conjuntos de blocos
volumesize *= volume.clusterCount(); // Teremos muitos clusters
volumesize *= 512; // Os blocos de cartões SD são sempre de 512 bytes
Serial.print("Tamanho do volume (bytes): ");
Serial.println(volumesize);
Serial.print("Tamanho do volume (Kbytes): ");
volumesize /= 1024;
Serial.println(volumesize);
Serial.print("Tamanho do volume (Mbytes): ");
volumesize /= 1024;
Serial.println(volumesize);


Serial.println
("\nArquivos encontrados no cartao (nome, data e tamanho em bytes): ");
root.openRoot(volume);

// Lista todos os arquivos no cartão com data e tamanho
root.ls(LS_R | LS_DATE | LS_SIZE);
}


void loop(void) {

}


Para certificar se o código está correto pressione o botão Verify/Compile. Se tudo estiver correto pressione o botão Upload para fazer o upload do código para seu Arduino. Pronto, agora insira o cartão microSD no módulo e abra o Monitor Serial pressionando simultaneamente as teclas Ctrl+Shift+M. Caso tudo esteja correto irá aparecer os dados conforme imagem abaixo:

 

Caso você esteja visualizando a imagem abaixo, favor revisar os passos acima e tentar novamente.

Fonte: facacomarduino.info