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
Se você ainda não conhece o Módulo de Cartão Micro SD (pinagem, como funciona, como programar ...), aprenda sobre ele no tutorial Arduino - Cartão Micro SD.
Diagrama de Ligação
This image is created using Fritzing. Click to enlarge image
※ Nota:
Se você usar um shield Ethernet ou qualquer shield que tenha um slot para Cartão Micro SD, não precisa usar o Módulo de Cartão Micro SD. Basta inserir o Cartão Micro SD no slot de Cartão Micro SD do shield.
Arduino - Como gravar uma variável em um arquivo no Cartão Micro SD
O código abaixo faz o seguinte:
Grava uma variável int no Cartão Micro SD
Grava uma variável float no Cartão Micro SD
Grava uma variável string no Cartão Micro SD
Grava um array de char no Cartão Micro SD
Grava um array de bytes no Cartão Micro SD
/* * Este código de Arduino foi desenvolvido por pt.newbiely.com * Este código de Arduino é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino/arduino-write-variable-to-sd-card*/#include <SD.h>#define PIN_SPI_CS 4File myFile;int myInt = -52;float myFloat = -12.7;String myString = "HELLO";char myCharArray[] = "ArduinoGetStarted.com";byte myByteArray[] = {'1', '2', '3', '4', '5'};voidsetup() {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."));Serial.println(F("--------------------"));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(myInt); // write int variable to SD card in line myFile.println(myFloat); // write float variable to SD card in line myFile.println(myString); // write String variable to SD card in line myFile.println(myCharArray); // write char array to SD card in line myFile.write(myByteArray, 5); myFile.write("\n"); // new linefor (int i = 0; i < 5; i++) { myFile.write(myByteArray[i]); // new lineif (i < 4) myFile.write(","); // comma } myFile.write("\n"); // new line 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 CardSerial.print(ch); // print the character to Serial Monitor } myFile.close(); } else {Serial.print(F("SD Card: error on opening file arduino.txt")); }}voidloop() {}
Passos Rápidos
Verifique se o Cartão Micro SD está formatado em FAT16 ou FAT32 (pesquise no Google como fazer)
Copie o código acima e abra com a Arduino IDE
Clique no botão Upload na Arduino IDE para carregar o código no Arduino
Veja o resultado no Serial Monitor.
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Uno
Newbiely.ino
···
8Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Uno' on 'COM15')
Retire o Cartão Micro SD do módulo de Cartão Micro SD
Insira o Cartão Micro SD em um leitor de Cartão SD USB
Conecte o leitor de Cartão SD USB ao PC
Abra o arquivo arduino.txt no seu PC; ele fica parecido com o abaixo
Arduino - Como gravar um par chave-valor em um arquivo no Cartão Micro SD
/* * Este código de Arduino foi desenvolvido por pt.newbiely.com * Este código de Arduino é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino/arduino-write-variable-to-sd-card*/#include <SD.h>#define PIN_SPI_CS 4File myFile;int myInt = -52;float myFloat = -12.7;String myString = "HELLO";char myCharArray[] = "ArduinoGetStarted.com";byte myByteArray[] = {'1', '2', '3', '4', '5'};voidsetup() {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."));Serial.println(F("--------------------"));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.print("myInt="); // write key to SD card myFile.println(myInt); // write int variable to SD card in line myFile.print("myFloat="); // write key to SD card myFile.println(myFloat); // write float variable to SD card in line myFile.print("myString="); // write key to SD card myFile.println(myString); // write String variable to SD card in line myFile.print("myCharArray="); // write key to SD card myFile.println(myCharArray); // write char array to SD card in line myFile.print("myByteArray="); // write key to SD card myFile.write(myByteArray, 5); myFile.write("\n"); // new line myFile.print("myByteArray2="); // write key to SD cardfor (int i = 0; i < 5; i++) { myFile.write(myByteArray[i]); // new lineif (i < 4) myFile.write(","); // comma } myFile.write("\n"); // new line 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 CardSerial.print(ch); // print the character to Serial Monitor } myFile.close(); } else {Serial.print(F("SD Card: error on opening file arduino.txt")); }}voidloop() {}
Passos Rápidos
Copie o código acima e abra com a Arduino IDE
Clique no botão Upload na Arduino IDE para carregar o código no Arduino
Veja o resultado no Serial Monitor.
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Uno
Newbiely.ino
···
8Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Uno' on 'COM15')
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!