Componentes Eletronicos

Tutorial Definitivo: Módulo SD Card

Eletrogate 12 de março de 2021

Introdução

Cartões de segurança digital, ou “Secure Digital Cards” (SD) são usados ​​em uma variedade de aplicações. Provavelmente, você tem vários deles em seus dispositivos eletrônicos, pois são usados ​​em telefones, tablets, câmeras e reprodutores de música. Onde quer que você precise de uma grande quantidade de memória não volátil e barata, um cartão SD (ou microSD) é uma boa escolha. E, como você está prestes a ver, esses cartões são muito fáceis de usar em seus projetos Arduino. E, para utilizar esta tecnologia em seus projetos, o Módulo SD Card se torna necessário, e é sobre ele que este post será baseado. Este Módulo serve para leitura e escrita em cartão SD, com suporte para a biblioteca oficial do Arduino. Ele é compatível com cartões formatados em FAT32 com capacidade de até 4GB. Pode ser utilizado para guardar histórico de valor de entradas ou data logging, valores de módulos GPS, sensores de temperaturas, distância, humidade e luminiosidade e etc.


Hardware

O Módulo SD Card é bastante básico e possui apenas um único chip, um regulador de dropout ultrabaixo integrado que converterá tensões de 3,3 V – 6 V em ~ 3,3 V, já que a tensão de operação de qualquer cartão micro SD padrão é 3,3 V.

Crédito da imagem: DroneBot Workshop

Diferentemente do Módulo Micro SD Card, o módulo acima não possui conversão de tensão para todos os sinais lógicos, portanto, na montagem do projeto, será necessário aplicar uma divisão de tensão nas entradas para convertermos a tensão de 5 V para 3,3 V.

Ele também possui uma entrada para um cartão SD formatado em FAT32.


Pinout e Especificações

O Pinout do Módulo SD Card está especificado em seus próprios pinos, e a função de cada um está descrita abaixo:

  • GND – deve ser conectado ao GND do Arduino.
  • 5 V/3.3 V – pino que fornece energia para o módulo e deve ser conectado ao 5 V/3.3 V no Arduino.
  • SDCS – pino que é usado pelo Arduino (Master) para habilitar e desabilitar dispositivos específicos no barramento SPI.
  • MOSI (Master OUT Slave IN) – é a entrada SPI do Módulo SD Card.
  • SCK (Serial Clock) – pino que aceita pulsos de clock que sincronizam a transmissão de dados gerados pelo Arduino.
  • MISO (Master IN Slave OUT) – é a saída SPI do Módulo SD Card.

As especificações do Módulo estão descritas a seguir:

  • Comunicação SPI;
  • Lê e Grava em FAT32;
  • Tensão de Alimentação: 3,3V / 5V;
  • Aplicável a plataformas como Arduino / PIC / AVR / ARM;

Projeto Exemplo

O projeto realizado aqui é um exemplo simples de como o módulo SD Card funciona. Ele consiste em escrever alguns dados no cartão SD e, logo em seguido, lê-los de volta.


Materiais Necessários para o Projeto de Exemplo com Módulo de Cartão USB

Os materiais utilizados nesta prática são:

cta_cart


Diagrama

O diagrama abaixo representa a montagem do projeto exemplo:


Código

O código que será utilizado aqui pertence a uma biblioteca da própria IDE. Para acessa-lo, basta abrir sua IDE e clicar em Arquivo->Exemplos->SD->ReadWrite, como mostrado abaixo:

Feito isso, o código a seguir será aberto. Os seus comentários foram traduzidos para que o leitor possa entender melhor como essa implementação funciona.

/*
  SD card read/write

  Esse exemplo mostra como ler e escrever dados no cartão SD
  O circuito:
   cartão SD conectado ao SPI da seguinte maneira:
 ** MOSI - pino 11
 ** MISO - pino 12
 ** CLK - pino 13
 ** SDCS - pino 4

  created   Nov 2010
  by David A. Mellis
  modified 9 Apr 2012
  by Tom Igoe

  This example code is in the public domain.

*/

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

File myFile;

void setup() {
  Serial.begin(9600);
  while (!Serial) {
    ; // Espera a porta serial conectar
  }


  Serial.print("Inicializando cartão SD...");

  if (!SD.begin(4)) {
    Serial.println("Falha na inicialização!");
    while (1);
  }
  Serial.println("Inicialização feita.");

  // Abre o arquivo. Perceba que apenas um arquivo pode ser aberto nesse momento,
  // portanto você terá que fechar este antes de abrir outro
  myFile = SD.open("test.txt", FILE_WRITE);

  // Se este arquivo abriu corretamente, escreva nele:
  if (myFile) {
    Serial.print("Escrevendo para test.txt...");
    myFile.println("testando 1, 2, 3.");
    // fecha o arquivo:
    myFile.close();
    Serial.println("feito.");
  } else {
    // Se este arquivo não abriu, imprima um erro:
    Serial.println("Erro ao abrir test.txt");
  }

  // Abre novamente o arquivo para leitura:
  myFile = SD.open("test.txt");
  if (myFile) {
    Serial.println("test.txt:");

    // Lê do arquivo até não ter mais nada nele:
    while (myFile.available()) {
      Serial.write(myFile.read());
    }
    // fecha o arquivo:
    myFile.close();
  } else {
    // Se este arquivo não abriu, imprima um erro:
    Serial.println("Erro ao abrir test.txt");
  }
}

void loop() {
  // nada acontece depois do setup
}

Resultados

Os resultados encontrados são os seguintes. A cada vez que o botão de reset é apertado no Arduino, o cartão é lido novamente e uma nova linha é adicionada ao texto.


Considerações Finais

A partir do post acima, foi possível compreender um pouco mais sobre a aplicação do Módulo SD Card, bem como seu funcionamento e as vantagens de sua utilização. Se o leitor se interessou pela implementação prática do projeto, acredito que gostará do nosso post sobre o Módulo Micro SD Card, que está destacado abaixo:

Gravação de Cartão Micro SD com Arduino – Datalogger

Curtiu o post? Avalie e deixe um comentário!

Siga-nos também no Instagram e nos marque quando fizer algum projeto nosso: @eletrogate.

Até a próxima!


Sobre o Autor


Ricardo Lousada
@ricardo_lousada

Graduando em Engenharia de Controle e Automação pela UFMG. Ocupo meu tempo aprendendo cada vez mais sobre eletrônica e programação, áreas que mais gosto. Meus hobbies são cinema e livros.


Eletrogate

12 de março de 2021

A Eletrogate é uma loja virtual de componentes eletrônicos do Brasil e possui diversos produtos relacionados à Arduino, Automação, Robótica e Eletrônica em geral.

Tenha a Metodologia Eletrogate dentro da sua Escola! Conheça nosso Programa de Robótica nas Escolas!

Eletrogate Robô

Cadastre-se e fique por
dentro de novidades!