Pessoal, preciso de ajuda para terminar meu TCC.

Meu problema é o seguinte: preciso que algumas portas digitais sejam lidas pelo arduino e, dependendo da combinação obtida, uma mensagem é gravada no cartão de memória junto com data e hora.

Para isso estou utilizando um módulo RTC e um módulo para cartão SD.

Tentei fazer isso por char*, conforme o código que vou postar abaixo, mas, apesar de aparecer o que quero no Serial, não aparece o texto no cartão.

Já tentei dividir a char em 3 char's menores, e tentei outras formas, mas quando fica muito grande até o Serial começa a dar problema.

Alguém pode me dar uma mão?

#include <Wire.h>

#include "RTClib.h"
#include <SD.h>

File myFile;

RTC_DS1307 rtc;

const int bit1 = 8;
const int bit2 = 3;
const int bit3 = 5;
const int bit4 = 6;
const int bit5 = 7;
const int bit0 = 9;
int f = 0;

void setup(){
Wire.begin( );

Serial.begin(9600);
rtc.begin();

Serial.println( "start" );

Serial.print("Initializing SD card...");

if (!SD.begin(4)) {
Serial.println("initialization failed!");
return;
}
Serial.println("initialization done.");

if (! rtc.isrunning()) {
Serial.println("RTC is NOT running!");
// following line sets the RTC to the date & time this sketch was compiled
rtc.adjust(DateTime(__DATE__, __TIME__));
}

pinMode(bit1, INPUT);
pinMode(bit2, INPUT);
pinMode(bit3, INPUT);
pinMode(bit4, INPUT);
pinMode(bit5, INPUT);
pinMode(bit0, INPUT);

}
void loop(){

DateTime now = rtc.now();

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

char* valor [21] = {"Sistema inicializado", "Portao aberto, apartamento 101.", "Portao aberto, apartamento 102.", "Portao aberto, apartamento 201.", "Portao aberto, apartamento 202.", "Portao aberto, apartamento 301.", "Portao aberto, apartamento 302.", "Portao aberto, senha administrador.", "Senha trocada, apartamento 101.", "Senha trocada, apartamento 102.", "Senha trocada, apartamento 201.", "Senha trocada, apartamento 202", "Senha trocada, apartamento 301.", "Senha trocada, apartamento 302.", "Senha excluída, apartamento 101.", "Senha excluída, apartamento 102.", "Senha excluída, apartamento 201.", "Senha excluída, apartamento 202.", "Senha excluída, apartamento 301.", "Senha excluída, apartamento 302.", "Portao fechado."};
if (digitalRead(bit1) == 1)f += 16;
if (digitalRead(bit2) == 1)f += 8;
if (digitalRead(bit3) == 1)f += 4;
if (digitalRead(bit4) == 1)f += 2;
if (digitalRead(bit5) == 1)f += 1;
f -= 1;

if (digitalRead(bit0) == HIGH){
Serial.print(now.year(), DEC);
myFile.print(now.year(), DEC);
Serial.print('/');
myFile.print('/');
Serial.print(now.month(), DEC);
myFile.print(now.month(), DEC);
Serial.print('/');
myFile.print('/');
Serial.print(now.day(), DEC);
myFile.print(now.day(), DEC);
Serial.print(' ');
myFile.print(' ');
Serial.print(now.hour(), DEC);
myFile.print(now.hour(), DEC);
Serial.print(':');
myFile.print(':');
Serial.print(now.minute(), DEC);
myFile.print(now.minute(), DEC);
Serial.print(':');
myFile.print(':');
Serial.print(now.second(), DEC);
myFile.print(now.second(), DEC);
Serial.println("Pronto");

Serial.println(f);
Serial.println(valor[f]);

delay(2000);


myFile.close();

}

}

Exibições: 506

Responder esta

Respostas a este tópico

Pode deixar, problema resolvido.

Ola, Raphael estou com um problema parecido e gostaria de aproveitar para pedir sua ajuda.

       Preciso gravar algumas informações no cartão de memoria, pela serial aparece tudo certinho, mas quando coloco o cartão no PC para ler o que foi gravado ele apenas criou o arquivo txt e não escreveu nada o arquivo fica em branco.

 

Você pode me ajudar?.

Cara, isso às vezes acontece comigo.

Geralmente é ligação errada ou mal contato. Veja se os fios não estão encostando um no outro.

Formate o cartão de memória e tente novamente.

Seri uma boa, também, utilizar o exemplo ReadWrite para testar o cartão de memória.

Qualquer coisa me fale.

Ok vou verificar. Obrigado pelo seu retorno. ..

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço