SDCard

SD Card

Código de Armazenamento de dados

O módulo SD Card do Arduíno é um dispositivo usado para habilitar a transferência de dados entre o cartão SD e o Arduíno.

Seu hardware é composto por 7 pinos diferentes dispostos em duas colunas iguais, sendo eles:

  • GND (Ground) que deve ser conectado ao GND do Arduíno;
  • 3.3;
  • 5V (por onde será alimentado, logo deve ser conectado ao 5V do Arduíno);
  • CS que deve ser conectado ao pino 10 do Arduíno;
  • MOSI (Master Out Slave In) que deve ser conectado ao pino 11 do Arduíno;
  • SCK (System Clock) que deve ser conectado ao pino 13 do Arduíno;
  • MISO (Master In Slave Out) que deve ser conectado ao pino 12 do Arduíno;

A figura a seguir demonstra as conexões do módulo à placa:

O código-exemplo abaixo tem como fim a leitura e gravação de dados do cartão SD:

/*

  SD card read/write

 This example shows how to read and write data to and from an SD card file
 The circuit:
 * SD card attached to SPI bus as follows:
 ** MOSI - pin 11
 ** MISO - pin 12
 ** CLK - pin 13
 ** CS - pin 4 (for MKRZero? SD: SDCARD_SS_PIN)

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

 This example code is in the public domain.

 */
  1. include <SPI.h>
  2. include <SD.h>

File myFile;

void setup() {

  // Open serial communications and wait for port to open:
  Serial.begin(9600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for native USB port only
  }


  Serial.print("Initializing SD card...");

  if (!SD.begin(4)) {
    Serial.println("initialization failed!");
    return;
  }
  Serial.println("initialization done.");

  // open the file. note that only one file can be open at a time,
  // so you have to close this one before opening another.
  myFile = SD.open("test.txt", FILE_WRITE);

  // if the file opened okay, write to it:
  if (myFile) {
    Serial.print("Writing to test.txt...");
    myFile.println("testing 1, 2, 3.");
    // close the file:
    myFile.close();
    Serial.println("done.");
  } else {
    // if the file didn't open, print an error:
    Serial.println("error opening test.txt");
  }

  // re-open the file for reading:
  myFile = SD.open("test.txt");
  if (myFile) {
    Serial.println("test.txt:");

    // read from the file until there's nothing else in it:
    while (myFile.available()) {
      Serial.write(myFile.read());
    }
    // close the file:
    myFile.close();
  } else {
    // if the file didn't open, print an error:
    Serial.println("error opening test.txt");
  }

}

void loop() {

  // nothing happens after setup

}

Se tudo tiver sido feito corretamente, no Serial Monitor aparecerá a seguinte tela:

Em nossos testes obtivemos o resultado esperado ao alimentar o circuito com 3.3V e conectar o CS no pino 10.


Voltar para Documentação

Page last modified on March 20, 2019, at 06:46 PM