sexta-feira, 7 de agosto de 2015

Como usar cartões SD com o Arduino

Talvez esse seja um dos módulos mais fáceis de usar com o Arduino de tão divulgado e explorado.

Data logger de todos os tipos possíveis e imagináveis podem ser feitos com ele, fora alguns outros projetos mais incomuns onde a leitura ou a escrita de arquivos estejam envolvidos.

Para esse projeto você vai precisar, obviamente, de um módulo para cartões SD, de um cartão SD e de um Arduino. O módulo SD que foi usado pode ser encontrado na Tato Equipamentos Eletrônicos ou no Aliexpress




A ligação entre o módulo e o Arduino é simples, mas complica porque a barra de pinos fica ao contrário quando usamos uma protoboard. Mas nada que algumas anotações em um papel não resolva.

Bom ligue:

O pino GND do módulo a um GND do Arduino;
O pino 3,3V do módulo ao pino 3,3V do Arduino;
O pino CS do módulo ao pino digital 4 do Arduino;
O pino MOSI do módulo ao pino digital 11 do Arduino;
O pino SCK do módulo ao pino digital 13 do Arduino;
O pino MISO do módulo ao pino digital 12 do Arduino;




Agora abra o seu ambiente Arduino e abra o exemplo ReadWrite já pronto para a biblioteca do módulo:




O código será:


/*
 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
 
 created   Nov 2010
 by David A. Mellis
 modified 9 Apr 2012
 by Tom Igoe
 
 This example code is in the public domain.
   
 */
 
#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 Leonardo only
 }
 
 
 Serial.print("Initializing SD card...");
 // On the Ethernet Shield, CS is pin 4. It's set as an output by default.
 // Note that even if it's not used as the CS pin, the hardware SS pin 
 // (10 on most Arduino boards, 53 on the Mega) must be left as an output 
 // or the SD library functions will not work. 
 pinMode(10, OUTPUT);
 
 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
}

Esse código traz um excelente exemplo de como gravar e ler arquivos no cartão, sendo que irá criar um arquivo no cartão SD, basta executá-lo e olhar o funcionamento no Serial Monitor:




Depois de pronto você pode colocar o cartão em seu computador e usar um editor de textos qualquer para verificar o conteúdo do arquivo:



 
← Postagem mais recente Postagem mais antiga → Página inicial

0 comentários:

Postar um comentário