Projeto 48 - Testando cartão microSD com arduino

  • Janeiro 30, 2017
  • Comentários

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

- Se você gostou do post, por favor comente! Nos dê um feedback, isto nos incentiva a continuar! :)

- Curta nossa fan page!



Deixe seu comentário abaixo