Gravação e leitura de dados no Cartão SD com Arduino
Gravação e leitura de dados no Cartão SD com Arduino

Gravação e leitura de dados no Cartão SD com Arduino 1

Este artigo aborda o desenvolvimento de um projeto que utiliza um Sensor de Luminosidade LDR em conjunto com um Arduino Uno Minima para registrar dados de luminosidade em um módulo cartão SD.

Gravação de Dados de Sensor de Luminosidade LDR em Cartão Micro SD utilizando Arduino Uno

Por meio dessa integração, é possível armazenar e analisar informações sobre luminosidade em diferentes ambientes, abrindo portas para uma variedade de aplicações, desde sistemas de iluminação automatizados até estudos de padrões de luminosidade em ambientes controlados.

Objetivos

O principal objetivo deste projeto é criar um sistema capaz de registrar dados de luminosidade em um ambiente utilizando um Sensor de Luminosidade LDR e armazenar essas informações em um cartão SD com arduino. Para atingir esse objetivo, são estabelecidos os seguintes objetivos específicos:

  • Configurar o circuito eletrônico que inclui o Sensor de Luminosidade LDR, um Arduino Uno e um módulo de cartão Micro SD.
  • Desenvolver o código necessário para que o Arduino realize leituras periódicas do Sensor de Luminosidade LDR.
  • Estabelecer a comunicação entre o Arduino e o cartão Micro SD para armazenar os dados de luminosidade.
  • Documentar o processo de montagem, programação e teste do sistema para permitir sua replicação por outros interessados.

Materiais Necessários

Para seguir com este tutorial, você irá precisar dos seguintes componentes:

Materiais Necessários

Além dos materiais citados acima, você também precisará ter a Arduino IDE 2.X instalado no seu computador ou ter uma conta do Arduino Web Editor

Como funciona o Módulo Cartão Micro SD com Arduino?

Um módulo de cartão micro SD é um dispositivo usado para facilitar a comunicação entre uma placa com microcontroladores, como um Arduino, e um cartão micro SD. Ele atua como uma interface entre os dois, permitindo que o microcontrolador leia e grave dados no cartão micro SD.

Fisicamente, o módulo de cartão micro SD possui um slot onde o cartão micro SD é inserido. Ele também possui pinos que são conectados ao microcontrolador para estabelecer a comunicação.

Módulo cartão micro SD

Para interagir com o cartão micro SD, geralmente é utilizada uma biblioteca no microcontrolador, como a “SD.h” no Arduino. Esta biblioteca fornece funções convenientes para inicializar o cartão, ler e gravar arquivos, manipular diretórios, entre outras operações.

O microcontrolador envia comandos SPI para o módulo de cartão micro SD para executar operações como inicialização, leitura e gravação de dados. Esses comandos são interpretados pelo módulo e, em seguida, encaminhados para o cartão micro SD.

No geral, o módulo de cartão micro SD simplifica a comunicação entre o microcontrolador e o cartão micro SD, permitindo armazenamento externo em projetos onde essa funcionalidade é necessária.

Como funciona um LDR e como usar o sensor LDR?

Um LDR (ou Light Dependent Resistor) é um componente eletrônico que muda sua resistência elétrica em resposta à intensidade da luz incidente. Também conhecido como resistor dependente de luz ou fotoresistor, o LDR é geralmente composto por um material semicondutor especial, como o sulfeto de cádmio.

Sensor de luminosidade LDR

A operação de um LDR é bastante simples: quando exposto à luz, o material semicondutor dentro do LDR absorve fótons, o que causa a liberação de elétrons livres e, consequentemente, diminui a resistência elétrica do componente. Quanto mais intensa a luz, maior a quantidade de elétrons liberados e menor a resistência.

Em um circuito elétrico, o LDR é geralmente conectado em série ou em paralelo com outros componentes, como um resistor fixo. Dependendo da intensidade da luz incidente, a resistência do LDR mudará, afetando assim a corrente ou a tensão no circuito.

Como funciona um sensor de luminosidade LDR

Devido à sua capacidade de detectar luz, os LDRs são comumente usados em circuitos de controle de iluminação, como sensores de luminosidade em lâmpadas automáticas, relógios digitais que ajustam o brilho com base na luz ambiente e em muitas outras aplicações onde a detecção de luz é necessária.

Circuito Eletrônico: gravação de dados no Cartão SD com Arduino

Abaixo está o esquema de ligações para o circuito de gravação de dados do sensor de luminosidade no cartão micro SD:

Circuito Eletrônico de gravação de dados no Cartão Micro SD com Arduino

As conexões realizadas são as seguintes:

Módulo Cartão Micro SD <-> Arduino Uno R4 Minima
Pino CS <-> Pino 10
Pino SCK <-> Pino 13
Pino MOSI <-> Pino 11
Pino MISO <-> Pino 12
Pino VCC <-> Pino 5V
Pino GND <-> Pino GND

Sensor de Luminosidade LDR e Resistor 10k <-> Arduino Uno Minima
LDR (Terminal 1) <-> Pino 5V
LDR (Terminal 2) <-> Pino A0
Resistor 10k (Terminal 1) <-> Pino A0
Resistor 10k (Terminal 2) <-> Pino GND

Código

Antes de carregar o código para a placa é necessário instalar a biblioteca “SD.h”. Para isso, na Arduino IDE, vá em Gerenciador de Bibliotecas, pesquise por SD e clique em instalar

Arduino IDE gerenciador de bibliotecas

Feita a instalação, já é possível carregar o código abaixo na Arduino Uno R4 Minima.

// Programa: Gravação de dados de leitura de sensor de luminosidade LDR com módulo cartão micro SD
// Autor: Rosana Guse

// Adiciona as bibliotecas utilizadas no código
#include <SPI.h>
#include <SD.h>

// Define os pinos de ligação CS (Módulo micro SD) e LDR
int pinoCS = 10;
int pinoLDR = A0;

//Define as variáveis utilizadas no código
int numeroLeitura = 0;
int leituraLDR = 0;

void setup()
{
  // Inicia a comunicação serial
  Serial.begin(9600);
  // Aguarda 1 segundo
  delay(1000);

  // Verifica a conexão com o módulo micro SD
  if (!SD.begin(pinoCS))
  {
    Serial.println("Falha ao iniciar o cartão micro SD");
    return;
  }
  Serial.println("Cartão micro SD inicializado com sucesso");
}
void loop()
{

  // Soma 1 na variável numeroLeitura
  numeroLeitura == numeroLeitura++;
 
  // Salva na variável leituraLDR o valor lido no pinoLDR
  leituraLDR = analogRead(pinoLDR);

  // Exibe a informação de leitura do LDR no monitor serial
  Serial.print("Leitura ");
  Serial.print(numeroLeitura);
  Serial.print(": ");
  Serial.println(leituraLDR);

  // Abre o arquivo.txt
  File data = SD.open("arquivo.txt", FILE_WRITE);

  // Salva as informação de leitura do LDR no arquivo.txt
  if (data)
  {
    data.print("Leitura ");
    data.print(numeroLeitura);
    data.print(": ");
    data.println(leituraLDR);
    data.close();
  }
  else
  {
    Serial.println("Erro ao abrir o arquivo");
  }
  // Aguarda 5 segundos para fazer uma nova leitura
  delay(5000);
}

Para carregar o código acima, basta copiar e colá-lo na Arduino IDE, selecionar a placa Arduino UNO R4 Minima e clicar no botão carregar.

Arduino IDE com Arduino UNO R4 Minima

Funcionamento: gravação de dados no Cartão SD com Arduino

Para verificar o funcionamento do circuito de gravação de dados do sensor de luminosidade abra o Monitor Serial na Arduino IDE.

Monitor serial Arduino IDE

Para verificar se os dados foram salvos corretamente no cartão micro SD, retire o mesmo do módulo e insira em seu computador. Abra o arquivo chamado “arquivo.txt”:

Valores da leitura do sensor LDR no cartão micro SD

Os valores de leitura do LDR são proporcionais à luz incidente. Quanto maior for a luminosidade incidente no sensor, maior serão os valores lidos. 

Como estamos utilizando uma porta analógica do Arduino para realizar a leitura, os valores podem ir de 0 (mínimo) a 1023 (máximo).

 


Se você tiver dúvidas, sugestões ou experiências para compartilhar, fique a vontade para deixar um comentário abaixo. E para não perder nenhum conteúdo como este, não deixe de nos seguir no Instagram.

Faça seu comentário

Acesse sua conta e participe

Um Comentário

  1. Olá me chamo Luan!
    Sou aluno do curso de programação em C/C++ de vocês, tbm sou estudante de eletromecanica no Senai Blumenau.
    Estamos desenvolvendo um projeto, uma estação de reaproveitamento de filamento 3D, e uma das partes do projeto é medir o diametro do filamento e armazenar esses dados em um grafico para nos apresentar a garantia do tamanho do comprimento do filamento no rolo ea sua variação de diametro. Ja desenvolvemos o mecanismo que ira medir porem precisamos armazenar esses dados em um cartão SD bem similar a esse artigo acima.
    Poderia nos ajudar nesse desenvolvimento?