Boa noite! Estou com um problema em um código que estou desenvolvendo, o codigo possui 2 comandos selecionando uma determinada hora para que o arduino faça a leitura de data, hora, temperatura e humidade e grave no SD Card, a seleção da hora a ser gravada é feita usando um comando IF, eu quero que seja feita a gravação de hora em hora. Porém como podem ver no código, tem 2 comandos IF um para cada hora desejada, só que o arduino so obedece o primeiro comando IF e pula o segundo, ou seja, ele so grava os dados uma vez e não grava novamente. se eu aperto o reset do arduino ele adiciona uma nova gravação, porem preciso que ele faca as gravaçoes pelo codigo e não resetando. Agradeço muito quem puder me ajudar, já faz alguns dias que estou tentando resolver, sou iniciante e sei pouco ainda.

Desde já muito obrigado a todos!!

Ass. Eduardo Junior.

Exibições: 54

Anexos

Responder esta

Respostas a este tópico

Boa noite EJAR, 

qual Arduíno vc está usando no seu projeto?

Vc está ligando o pino CS do SD card  em qual port do Arduíno?

Ele por "default" é ligado no port 10, mas vc está usando o port 10 para o DHT.

Isto pode estar gerando conflito e travando o Arduíno.

https://www.usinainfo.com.br/blog/projeto-arduino-sd-card-leitura-e...

RV

Boa noite amigo, obrigado pela resposta!

Eu estou usando o Arduino Uno, nesse link que vc me enviou eu ja tinha visto antes quando estava montando o projeto, no linga tem uma imagem que mostra o CS do Sd card ligado no pino 10, mas no vídeo ele liga o CS no pino 4. Vou tentar fazer uma outra alteração aqui para ver no que da. Obrigado por responder.

Boa noite EJAR,

O SD card que vc usa é um módulo   https://www.filipeflop.com/blog/cartao-sd-com-arduino/

ou é parte do WiFi shield?  https://store.arduino.cc/usa/arduino-wifi-shield

RV

Boa noite EJAR,

se sketch tem alguns problemas.

Primeiro:

Conflito do port 10 do Arduíno usado pelo DHT.

Ao detectar a primeira coincidência de horário, o sketch passa a gravar os valores  no SD card, 

ao terminar, por conflito de port, ele não consegue mais ler o DHT, e com isto fica retornado ao inicio do loop(),

por causa deste if:

                 if (isnan(h) || isnan(t))
                  {
                      Serial.println("Falha ao ler dados do sensor DHT !!!");
                     return;
                   }

Assim sendo, não consegue mais entrar em nenhum "if" de horário.

Mudei o port de 10 para 8 e funcionou corretamente.

Segundo:

  Os "ifs"    

if (dt.hour == 16 && dt.minute == 15)

if (dt.hour == 17 && dt.minute == 15)

são satisfeitos durante 1 minuto, ou seja, durante 60 segundos o sketch fica gravando dados no SD card.

1 minuto grava um monte de linhas no seu arquivo.

Acho que não é isto que vc quer.  Correto?

Use uma variável pra que ao gravar uma  vez naquele minuto, não grave novamente.

RV

RSS

Destaques

Registre-se no
Lab de Garagem
Clicando aqui

Convide um
amigo para fazer
parte

curso gratis de arduino

© 2020   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço