Olá boa noite, estou com uma dúvida. Montei um projetinho simples, arduino + Dht22 e Módulo SD Card, fiz um código que a cada 60 leituras pula uma linha, e começa a gravar novamente. Esteve funcionando corretamente, até que quando fez 360 (60x6) leituras com 6 quebras de linha, parou de gravar e apareceu um monte de ∆∆∆∆∆ e depois nao salvou mais..
Alguém saber oq poderia ser? Posso enviar o código depois, pois agora estou enviando do Smartphone.

Exibições: 520

Responder esta

Respostas a este tópico

Olá.

Mande uma foto da montagem.

Fios longos, alimentação ruim, cartão ruim, conector ruim, etc, podem provocar isso. 

Código com falhas tb, mas se funcionava pq pararia se não mudou o código ? Suponho que seja um arquivo texto, não teria como estar grande... 

Sim, irei mandar mais tarde, pois agora nao estou com o projeto em maos. Mas no caso, estou com uma fonte 12v 5A, arduino Uno, alguns fios ligados numa protoboard, pois o DHT e o modulo SD precisam de 5V.

Ouvi num blog umas pessoas dizendo que o SD Card funciona somente com 3,3V.

Entao estou com duvidas, se seria a alimentacao, porque até agora funcionou com 5V, uma outra coisa que notei é que quando eu troquei para 3,3V, tive que mudar o Serial.begin. Entao ficou 2 Seriais, nao sei como eu iria colocar no codigo, 2 Seriais diferentes, entao procurei esta opcao de Serial que coloquei no codigo ai em baixo, e deu certo.

O modulo que estou usando é este aqui ( https://www.google.com/search?q=modulo+sd+card&source=lnms&...)

O codigo seria esse:

#include <dht.h> //DHT
#include <SPI.h> //SD
#include <SD.h> //SD
dht DHT;
#define DHT22_PIN 5

struct
{
uint32_t total;
uint32_t ok;
uint32_t crc_error;
uint32_t time_out;
uint32_t connect;
uint32_t ack_l;
uint32_t ack_h;
uint32_t unknown;


} stat = { 0,0,0,0,0,0,0,0};

File myFile;

void setup()
{
SD.begin(4);


if (!SD.begin(4)) {
Serial.println("Falha na Inicializacao!"); //LCD
return;
}

}

void loop()
{
uint32_t start = micros();
int chk = DHT.read22(DHT22_PIN);
uint32_t stop = micros();

stat.total++;
switch (chk)
{
case DHTLIB_OK:
stat.ok++;
//Serial.print("OK,\t");
break;
}

myFile = SD.open("test.txt", FILE_WRITE);

// se o arquivo abriu ok, escreva para ele:
if (myFile) {

myFile.print(DHT.temperature);
myFile.print(" ");
myFile.print(DHT.humidity);
myFile.print(" ");
myFile.println(" ");

if (stat.total % 60 == 0)
{
myFile.println(" ");

}
delay(60000);

// feche o arquivo:
myFile.flush();
myFile.close();

}

}

Boa noite, 

Informe as especificações do seu módulo SD Card (existem vários modelos). 

Referências para estudos:

https://blog.eletrogate.com/guia-basico-dos-sensores-de-umidade-e-t...

https://blog.eletrogate.com/gravacao-de-cartao-micro-sd-com-arduino/

Boa tarde amigo, dei uma olhada nas referências que me mandou, talvez o que tenha feito errado era que nao fiz o divisor de tensão para baixar a voltagem, pois nos tutoriais que eu vi nao tava falando isso, mas se até um certo momento funcionou? Porque tenha parado?!

Esse é o modulo que usei.. https://produto.mercadolivre.com.br/MLB-1126327714-modulo-micro-sd-...

Boa tarde, 

O seu módulo MicroSD Card adapter é compatível com 5V! 

Ele tem um chip 74VHC125 que faz a conversão de sinais de 5V para 3,3V.

https://wiki.eprolabs.com/index.php?title=SD_Card_Module

Faça um teste com o programa do link que enviei. 

Já testou com outro SD card? O cartão SD que usava pode ter estragado. 

Consegue formatar o cartão no seu PC? Quais são as especificações do cartão SD ?

Luiz bom dia, 

Favor enviar uma foto da sua montagem ! 

Nos posts que enviou, você informou dois tipos diferentes de módulos SD Card!

Você precisa enviar o link correto, por favor.

Envie também o diagrama que usou para fazer a montagem do seu projeto. 

Opa boa tarde. A noite irei fazer isso, não testei com outro cartão, vou fazer o teste. Sim eu consigo formatar o cartão numa boa. No momento não estou lembrando as especificações..
Ei José boa noite, Fiz um teste com esse programa que você me mandou, e na Serial apareceu o seguinte: Initializing SD card... Inicializacao feita!
Vou fazer o teste agora com outro cartão, vou deixar funcionando até amanha de manha. As especificações do cartão são estas: - Modelo: SD Card Arduino;
- Tensão: 3.3V ou 5V;
- Interface padrão: SPI;

Boa noite, 

Favor informar as especificações do cartão SD (memória) - marca, capacidade e classe. 

As especificações do módulo SD eu já tinha enviado:

https://wiki.eprolabs.com/index.php?title=SD_Card_Module

Boa noite, desculpe pela falta de atenção. Pois bem, eu tenho um cartão Kingston 2gb (SD-CO2G), mas ao colocar no Modulo apresenta erro na hora de escrever ou abrir o arquivo text.txt. O que estou usando agora e não apresenta problemas na gravação dos dados ate então, não tem marca, apresenta como Generic-Multicard Usb 2Gb, essas sao as especificacoes que eu tenho no momento..

Eu fiz um teste por curiosidade dos pinos Cs, Sck Miso e Mosi, vi que Cs e Mosi apresentam tensao com 4,5V. Miso com 3,3 e Sck com 0,14v.. Isso seria assim mesmo, ou tem algo de errado?? Já que voce disse que esse modulo tem um chip que faz a conversao de 5 para 3,3..

Bom dia, 

Você mediu os pinos da Interface SPI com qual ferramenta?

Não é possível medir esses pinos com multimetro, enquanto existe comunicação na interface. 

Precisaria usar um osciloscópio. 

Mas a ferramenta ideal seria um analisador lógico. 

Quer dizer que resolveu o problema, trocando o cartão SD, não é?

Bom dia.. fiz o teste com multímetro mesmo. Na verdade, o cartão que eu usei e deu problema foi o Generic. Coloquei outro o modelo Kingston e nao funcionou. Ontem fiz um teste somente com o modulo SD para salvar testing 1,2,3.. deu certo. Depois recompilei o código com dht, esta salvando os dados normalmente. Então deixei de ontem até agora de manhã. Eu estou tentando abrir o arquivo test que foi salvo, mas nao quer abrir nem o SD.. Agora não sei o que aconteceu. Quando chegar em casa a noite vou fazer outro teste.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço