Como usar módulo cartão micro SD Arduino

O módulo cartão micro SD

Comparado com o módulo cartão SD tradicional, no módulo cartão micro SD temos apenas os pinos necessários: alimentação e interface SPI, mostrados na imagem abaixo.

Na imagem deste módulo a marcação dos pinos é bem visível na parte da frente, mas em outros essa marcação está somente no verso do módulo.

Módulo cartão micro SD

Uma vantagem óbvia deste módulo é a possibilidade de uso de um cartão micro SD sem nenhum tipo de adaptador. Esse tipo de cartão é extremamente comum hoje em dia em smartphones, por exemplo.

Outra vantagem é a alimentação de 5 V, encontrada na maioria das placas de controle, e também a tensão de nível de sinal, que permite o uso tanto em placas como Arduino Uno e Mega (que usam nível de sinal de 5V) mas também em módulos usando ESP32 ou ESP8266, que trabalham com nível de sinal de 3.3V.

Segundo o fabricante você pode usar cartões de memória micro SD de até 2 GB e cartões micro SDHC (high-speed) até 32 GB.

 

Senti falta apenas de um led na placa para indicar se o cartão está sendo acessado ou simplesmente se a placa está ligada.

Conexão do módulo no Arduino

A conexão do módulo cartão micro SD com o Arduino é feita pela interface SPI, usando os pinos 4 (CS), 11 (MOSI), 12 (MISO) e 13 (SCK).

Circuito Arduino Uno e módulo cartão micro SD

A alimentação utiliza os pinos 5V e GND do Arduino.

Gravando e lendo dados do cartão SD

Para testar esse módulo vamos utilizar uma compilação dos programas de exemplo da biblioteca SD já presente na IDE do Arduino. Antes de começar, verifique se as bibliotecas estão atualizadas, acessando a IDE e o menu Sketch => Incluir Biblioteca => Gerenciar Bibliotecas.

Na janela do Gerenciador de Biblioteca, em Tipo, selecione Atualizável:

Gerenciador de Bibliotecas IDE Arduino

Depois de atualizar a biblioteca, carregue o programa abaixo no Arduino. Ele utiliza a função millis() e grava no cartão, a cada 2 segundos, o tempo que a sua placa está ligada.

//Programa: Teste modulo cartao micro SD Arduino
//Autor: Arduino e Cia

#include <SPI.h>
#include <SD.h>

//Pino de conexão do pino CS do modulo
const int chipSelect = 4;

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

  Serial.println("Arduino e Cia - Teste de Modulo cartao micro SD");
  Serial.println("Inicializando cartao SD...");

  //Inicia a comunicacao com o modulo SD
  if (!SD.begin(chipSelect))
  {
    Serial.println("Falha ao acessar o cartao !");
    Serial.println("Verifique o cartao/conexoes e reinicie o Arduino...");
    return;
  }
  Serial.println("Cartao iniciado corretamente !");
  Serial.println();
}

void loop()
{
  unsigned long currentMillis = millis();
  
  //Mostra os dados no Serial Monitor
  Serial.print("Este arduino esta ligado a ");
  Serial.print(currentMillis / 1000);
  Serial.println(" segundos");

  //Abre o arquivo datalog.txt
  File dataFile = SD.open("datalog.txt", FILE_WRITE);

  //Grava as informacoes no arquivo
  if (dataFile)
  {
    dataFile.print("Este arduino esta ligado a ");
    dataFile.print(currentMillis / 1000);
    dataFile.println(" segundos");

    //Fecha o arquivo
    dataFile.close();
  }

  //Exibe um erro se nao conseguir abrir o arquivo
  else
  {
    Serial.println("Erro ao abrir o arquivo datalog.txt");
  }
  delay(2000);
}

O programa vai gravar no arquivo datalog.txt as informações abaixo, que foram lidas usando o notepad (bloco de notas):

datalog.txt Arduino

Essas mesmas informações são mostradas no Serial Monitor para que você possa acompanhar em tempo real:

É isso! Esperamos ter ajudado