terça-feira, 22 de janeiro de 2013

Review Micro SD Module for Arduino

Introdução:


Esse modulo de cartão micro SD é muito útil  pode ser usado de varias formas, o legal desse modulo é que pode ser incorporado a todos projetos facilmente, pode salvar logs e informações gerais, é compacto e fácil de instalar em caixas de suporte, pode ser usado em todas versões do Arduino e uma grande variedade de microcontroladores disponíveis no mercado.



A biblioteca e exemplos do Arduino é bem rica quando falamos de leitores de cartão, isso se deve ao fato de vários outros módulos necessitarem de ter isso incorporado, como GSM, ethernet e por ai vai...




Características:


Pinos: 9
Cor: Azul
Compatível com SDIO
Leitura/Escrita em alta velocidade



Código de exemplo:


Vale lembrar que:

Vcc: 3.3V
Terra: GND
Pin11: MISO(DO)
Pin12: MISO(D1)
Pin13: SCLK
Pin4: CS




#include <SD.h>


Sd2Card card;
SdVolume volume;
SdFile root;

const int chipSelect = 4;    

void setup()
{
  Serial.begin(9600);
}

  Serial.print("\nIniciando cartao SD...");
  pinMode(10, OUTPUT);   

  if (!card.init(SPI_HALF_SPEED, chipSelect)) 
  {
    Serial.println("falhou ao iniciar:");
    Serial.println("* o cartao esta inserido?");
    Serial.println("* os fios estao corretos?");
    Serial.println("* voce mudou o chipSelect para ficar compativel com seu modulo?");
    return;
  } 
  else 
  {
   Serial.println("Ligacoes estao corretas e feitura foi feita."); 
  }

  Serial.print("\nTipo de 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");
  }

  if (!volume.init(card)) 
  {
    Serial.println("Nao foi possivel encontrar particoes FAT16/FAT32.\nTenha certeza que formatou o cartao");
    return;
  }
  uint32_t volumesize;
  Serial.print("\nVolume é do tipo FAT");
  Serial.println(volume.fatType(), DEC);
  Serial.println();
  volumesize = volume.blocksPerCluster();    
  volumesize *= volume.clusterCount();       
  volumesize *= 512;                            
  Serial.print("Tamanho (bytes): ");
  Serial.println(volumesize);
  Serial.print("Tamanho (Kbytes): ");
  volumesize /= 1024;
  Serial.println(volumesize);
  Serial.print("Tamanho (Mbytes): ");
  volumesize /= 1024;
  Serial.println(volumesize);
  Serial.println("\nInfo dos arquivos encontrados no cartao: ");
  root.openRoot(volume);
  root.ls(LS_R | LS_DATE | LS_SIZE);
}

void loop(void) 
{
  
}



Nenhum comentário:

Postar um comentário