• COMPONENTE

    LEITOR
    DE CARTÃO

    Leitor de Cartão

O que é um módulo Card SD

O módulo micro SD possibilita a leitura e gravação de cartões de memória. É extremamente útil para projetos que exigem registro de dados. Ideal para gravar arquivos de logs com resultado de leituras de sensores e consequentemente transferir os arquivos gerados no cartão para qualquer computador que possua um leitor de cartão micro SD.

O módulo usa a interface SPI como padrão para a comunicação com o arduino, ela envolve barramentos SPI, MISO, MOSI, SCK e um pino de sinal CS.

A própria IDE do arduino já possui uma biblioteca específica para facilitar a comunicação com este módulo, dessa forma é simplificada ao máximo a programação para utilização de seus recursos.

O módulo se comunica pela interface SPI e seu nível lógico de sinal é de 3.3V, no entanto, além de possuir um regulador de tensão, o módulo também possui um divisor de tensão, o qual permite a ligação direta nos 5V fornecido pelo arduino.

OBS: Observe que o sistema de arquivos do cartão micro SD deve ser FAT16 ou FAT32. Caso contrário, a biblioteca SD do Arduino não poderá ler e escrever no mesmo.

Leitor micro SD arduino
Leitor micro SD arduino

Conexão de comunicação

Estas são as portas padrão de comunicação via SPI do Arduino Uno, as mesmas não devem ser alteradas. Para mais informações, consulte a tabela de pinagem do Arduino Uno.

Montagem dos componentes

Logo abaixo temos a lista de componentes utilizado neste exemplo, e sua ligação com o Arduino.

LISTA DOS COMPONENTES

  • 1 x Arduino Uno SMD
  • 1 x Cabo USB para comunicação
  • 1 x Protoboard 400 pontos
  • 1 x Leitor de Micro Cartão SD
  • 1 x Cartão micro SD *Módulo não acompanha cartão
  • 6 x Jumpers macho/macho
Esquema montagem leitor cartão

Código exemplo

Codigo ...

IDE Arduino
//Incluir as bibliotecas necessárias
#include <SPI.h>
#include <SD.h>

const int chipSelect = 10; //pino utilizado pelo terminal CS do módulo

void setup(){
Serial.begin(9600); //inicializa o monitor Serial
while(!Serial){ //aguarda a conexão da porta serial;
}
//imprime texto no monitor serial
Serial.println("Inicializando o cartão de memória...");
Serial.println("**********************************");
pinMode(SS, OUTPUT); //define pinMode como saída

if(!SD.begin(chipSelect)){ //se o cartão não for reconhecido, faz:
//imprime texto no monitor serial
Serial.println("Cartão de memória falhou ou não está presente!");
return;   //não executa o restante do código
}
//imprime texto no monitor serial
Serial.println("Cartão de memória inicializado com sucesso!");
Serial.println("*************************************");
Serial.println("Mensagem do arquivo de texto que está no cartão de memória:");
Serial.println(); //quebra de linha no serial

SDFile dataFile = SD.open("arquivo.txt"); //dataFile recebe o conteúdo do arquivo
// Caso tenha mais de um arquivo, abre um arquivo por vez

if(dataFile){ //se existirem dados, faz:
while(dataFile.available()){ //enquanto houver conteúdo a ser lido, faz
Serial.write(dataFile.read()); //escreve na serial as informações do arquivo
}
//encerra a leitura, fechar o arquivo atual para poder abrir um outro
dataFile.close();
}
else{     //se não existirem dados, faz
//imprime texto do erro no monitor serial
Serial.println("Erro ao abrir o arquivo!");
} 
}

void loop(){
//não necessita repetir a ação
}
IDE Arduino