Arduino Nano - Cartão Micro SD

Este tutorial ensina você a usar o Cartão Micro SD com o Arduino Nano. Em detalhes, vamos aprender:

Arduino Nano Cartão Micro SD

Hardware Necessário

1×Official Arduino Nano
1×Alternatively, DIYables Nano V3.0 Development Board
1×Cabo USB A para Mini-B
1×Cartão Micro SD
1×Módulo de Cartão Micro SD
1×Fios Jumper
1×(Opcional) Adaptador de Cartão de Memória MicroSD para SD
1×(Recomendado) Placa de Expansão com Bornes de Parafuso para Arduino Nano
1×(Recomendado) Placa de Expansão Breakout para Arduino Nano
1×(Recomendado) Divisor de Alimentação para Arduino Nano

Or you can buy the following kits:

1×DIYables Sensor Kit (18 sensors/displays)
Divulgação: Alguns dos links desta seção são links de afiliado da Amazon. Podemos receber uma comissão pelas compras feitas por meio desses links, sem custo adicional para você. Agradecemos o seu apoio.

Sobre o Módulo de Cartão Micro SD

O Módulo de Cartão Micro SD é uma conexão entre o Arduino Nano e um Cartão Micro SD. Ele facilita a comunicação entre os dois, permitindo que o Arduino Nano acesse o Cartão Micro SD.

Pinagem do Módulo de Cartão Micro SD

Pinagem do Módulo de Cartão Micro SD

O Módulo de Cartão Micro SD tem 6 pinos:

  • Pino VCC: Deve ser conectado ao pino 5V do Arduino.
  • Pino GND: Deve ser conectado ao GND do Arduino.
  • Pino MISO: (Master In Slave Out) Deve ser conectado ao pino MISO do Arduino.
  • Pino MOSI: (Master Out Slave In) Deve ser conectado ao pino MOSI do Arduino.
  • Pino SCK: Deve ser conectado ao pino SCK do Arduino.
  • Pino SS: (Slave Select) Deve ser conectado ao pino especificado no código do Arduino Nano como pino SS.

Preparação

Certifique-se de que o Cartão Micro SD esteja formatado como FAT16 ou FAT32 (pesquise na internet para obter mais informações).

Diagrama de Ligação

  • Você pode usar fios jumper macho-fêmea para conectar o módulo de Cartão Micro SD ao Arduino Nano
Diagrama de ligação do Módulo de Cartão Micro SD com Arduino Nano

This image is created using Fritzing. Click to enlarge image

  • Ou você pode encaixar o módulo de Cartão Micro SD em uma protoboard e então usar os fios jumper macho-macho
Diagrama de ligação do Módulo de Cartão Micro SD com Arduino Nano

This image is created using Fritzing. Click to enlarge image

Veja A melhor forma de alimentar o Arduino Nano e outros componentes.

Arduino Nano - Como abrir um arquivo no Cartão Micro SD e criá-lo se não existir

Código Arduino Nano

Passos Rápidos

  • Coloque o Cartão Micro SD no módulo de Cartão Micro SD.
  • Siga o diagrama de ligação para conectar o módulo de Cartão Micro SD ao Arduino Nano.
  • Conecte o Arduino Nano a um computador usando um cabo USB.
  • Abra o Arduino IDE e selecione a placa e a porta apropriadas.
  • Abra o Serial Monitor no Arduino IDE.
  • Copie e cole o código abaixo no Arduino IDE.
/* * Este código de Arduino Nano foi desenvolvido por pt.newbiely.com * Este código de Arduino Nano é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino-nano/arduino-nano-micro-sd-card */ #include <SD.h> #define PIN_SPI_CS 4 File myFile; void setup() { Serial.begin(9600); if (!SD.begin(PIN_SPI_CS)) { Serial.println(F("SD CARD FAILED, OR NOT PRESENT!")); while (1); // don't do anything more: } Serial.println(F("SD CARD INITIALIZED.")); if (!SD.exists("arduino.txt")) { Serial.println(F("arduino.txt doesn't exist. Creating arduino.txt file...")); // create a new file by opening a new file and immediately close it myFile = SD.open("arduino.txt", FILE_WRITE); myFile.close(); } // recheck if file is created or not if (SD.exists("arduino.txt")) Serial.println(F("arduino.txt exists on SD Card.")); else Serial.println(F("arduino.txt doesn't exist on SD Card.")); } void loop() { }
  • Clique no botão Upload do Arduino IDE para compilar e fazer o upload do código para o Arduino Nano.
  • Verifique no Serial Monitor a saída da primeira execução.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Nano
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano' on 'COM15')
New Line
9600 baud
SD CARD INITIALIZED. arduino-nano.txt doesn't exist. Creating arduino-nano.txt file... arduino-nano.txt exists on SD Card.
Ln 11, Col 1
Arduino Nano on COM15
2
  • A saída que aparecerá no Serial Monitor nas execuções seguintes
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Nano
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano' on 'COM15')
New Line
9600 baud
SD CARD INITIALIZED. arduino-nano.txt exists on SD Card.
Ln 11, Col 1
Arduino Nano on COM15
2

※ Nota:

Você pode não ver a saída no Serial Monitor se o primeiro upload for feito antes de abrir o Serial Monitor.

  • Remova o Cartão Micro SD do módulo.
  • Coloque o Cartão Micro SD em um leitor de Cartão SD USB.
  • Conecte o leitor de Cartão SD USB ao PC.
  • Verifique se o arquivo está presente ou não.

Arduino Nano - Como gravar/ler dados em/de um arquivo no Cartão Micro SD

O código a seguir:

  • Salva dados em um arquivo
  • Lê o conteúdo do arquivo caractere por caractere e o exibe no Serial Monitor
/* * Este código de Arduino Nano foi desenvolvido por pt.newbiely.com * Este código de Arduino Nano é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino-nano/arduino-nano-micro-sd-card */ #include <SD.h> #define PIN_SPI_CS 4 File myFile; void setup() { Serial.begin(9600); if (!SD.begin(PIN_SPI_CS)) { Serial.println(F("SD CARD FAILED, OR NOT PRESENT!")); while (1); // don't do anything more: } Serial.println(F("SD CARD INITIALIZED.")); // open file for writing myFile = SD.open("arduino.txt", FILE_WRITE); if (myFile) { myFile.println("Created by ArduinoGetStarted.com"); // write a line to Arduino myFile.println("Learn Arduino and SD Card"); // write another line to Arduino myFile.close(); } else { Serial.print(F("SD Card: error on opening file arduino.txt")); } // open file for reading myFile = SD.open("arduino.txt", FILE_READ); if (myFile) { while (myFile.available()) { char ch = myFile.read(); // read characters one by one from Micro SD Card Serial.print(ch); // print the character to Serial Monitor } myFile.close(); } else { Serial.print(F("SD Card: error on opening file arduino.txt")); } } void loop() { }
  • O Serial Monitor exibiu o conteúdo do arquivo.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Nano
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano' on 'COM15')
New Line
9600 baud
Created by ArduinoGetStarted.com Learn Arduino Nano and SD Card
Ln 11, Col 1
Arduino Nano on COM15
2

※ Nota:

Por padrão, os dados serão adicionados ao final do arquivo. Se você reiniciar o Arduino Nano com o código acima, o texto será adicionado ao arquivo novamente. Isso fará com que o Serial Monitor exiba mais linhas, como a seguir:

∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Nano
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano' on 'COM15')
New Line
9600 baud
Created by ArduinoGetStarted.com Learn Arduino Nano and SD Card Created by ArduinoGetStarted.com Learn Arduino Nano and SD Card
Ln 11, Col 1
Arduino Nano on COM15
2

Você pode remover o Cartão Micro SD do módulo e ver o conteúdo dele no seu computador usando um leitor de Cartão SD USB.

Arduino Nano - Como ler um arquivo no Cartão Micro SD linha por linha

/* * Este código de Arduino Nano foi desenvolvido por pt.newbiely.com * Este código de Arduino Nano é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino-nano/arduino-nano-micro-sd-card */ #include <SD.h> #define PIN_SPI_CS 4 File myFile; void setup() { Serial.begin(9600); if (!SD.begin(PIN_SPI_CS)) { Serial.println(F("SD CARD FAILED, OR NOT PRESENT!")); while (1); // don't do anything more: } Serial.println(F("SD CARD INITIALIZED.")); // open file for writing myFile = SD.open("arduino.txt", FILE_WRITE); if (myFile) { myFile.println("Created by ArduinoGetStarted.com"); // write a line to Arduino myFile.println("Learn Arduino and SD Card"); // write another line to Arduino myFile.close(); } else { Serial.print(F("SD Card: error on opening file arduino.txt")); } // open file for reading myFile = SD.open("arduino.txt", FILE_READ); if (myFile) { int line_count = 0; while (myFile.available()) { char line[100]; // maximum is 100 characters, change it if needed int line_length = myFile.readBytesUntil('\n', line, 100); // read line-by-line from Micro SD Card line_count++; Serial.print(F("Line ")); Serial.print(line_count); Serial.print(F(": ")); Serial.write(line, line_length); // print the character to Serial Monitor // \n character is escaped by readBytesUntil function Serial.write('\n'); // print a new line charactor } myFile.close(); } else { Serial.print(F("SD Card: error on opening file arduino.txt")); } } void loop() { }
  • O resultado exibido no Serial Monitor.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Nano
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano' on 'COM15')
New Line
9600 baud
SD CARD INITIALIZED. Line 1: Created by ArduinoGetStarted.com Line 2: Learn Arduino Nano and SD Card
Ln 11, Col 1
Arduino Nano on COM15
2

※ Nota:

Você pode ver linhas adicionais no Serial Monitor se o conteúdo do arquivo não for apagado antes.

Arduino Nano - Como sobrescrever um arquivo no Cartão Micro SD

Por padrão, o conteúdo será adicionado ao final do arquivo. A maneira mais fácil de sobrescrever um arquivo é excluir o arquivo existente e criar um novo com o mesmo nome.

/* * Este código de Arduino Nano foi desenvolvido por pt.newbiely.com * Este código de Arduino Nano é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino-nano/arduino-nano-micro-sd-card */ #include <SD.h> #define PIN_SPI_CS 4 File myFile; void setup() { Serial.begin(9600); if (!SD.begin(PIN_SPI_CS)) { Serial.println(F("SD CARD FAILED, OR NOT PRESENT!")); while (1); // don't do anything more: } Serial.println(F("SD CARD INITIALIZED.")); SD.remove("arduino.txt"); // delete the file if existed // create new file by opening file for writing myFile = SD.open("arduino.txt", FILE_WRITE); if (myFile) { myFile.println("Created by ArduinoGetStarted.com"); // write a line to Arduino myFile.println("Learn Arduino and SD Card"); // write another line to Arduino myFile.close(); } else { Serial.print(F("SD Card: error on opening file arduino.txt")); } // open file for reading myFile = SD.open("arduino.txt", FILE_READ); if (myFile) { while (myFile.available()) { char ch = myFile.read(); // read characters one by one from Micro SD Card Serial.print(ch); // print the character to Serial Monitor } myFile.close(); } else { Serial.print(F("SD Card: error on opening file arduino.txt")); } } void loop() { }
  • O resultado exibido no Serial Monitor.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Nano
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano' on 'COM15')
New Line
9600 baud
SD CARD INITIALIZED. Created by ArduinoGetStarted.com Learn Arduino Nano and SD Card
Ln 11, Col 1
Arduino Nano on COM15
2
  • Reinicie o Arduino Nano
  • Verifique se o material no arquivo é adicionado ao Serial Monitor ou não.

Você pode remover o Cartão Micro SD do módulo e ver o conteúdo dele no seu PC. Um leitor de Cartão SD USB é necessário para isso.

Vídeo

※ NOSSAS MENSAGENS

  • Fique à vontade para compartilhar o link deste tutorial. Porém, por favor, não use nosso conteúdo em outros sites. Investimos muito esforço e tempo para criar este conteúdo, por favor respeite nosso trabalho!