Pages: [1]   Go Down
Author Topic: RTC Parando de Funcionar  (Read 2244 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 6
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bom dia, esta acontecendo algo estranho com os meus modulos RTC. Já comprei 3 porem toda vez que desligo eles da placa do arduino não consigo mais ligar, já tentei de varias formas sem sucesso até de placa do arduino já troquei. Sempe aparece a menssagem RTC is not runig. O que sera que esta acontecedo ? sera que estao queimando ?

Grato

Sérgio
Logged

'round the world...
Offline Offline
Faraday Member
**
Karma: 42
Posts: 3330
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Sem indicares quais os módulos, como estás a interligar e que código estás a utilizar... a única coisa que consigo dizer é que provavelmente algo está mal.

Coloca aqui mais informacões sobre o que referi em cima e certamente que eu ou alguém saberá dizer o que se passa. smiley-wink
Logged

Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

Offline Offline
Newbie
*
Karma: 0
Posts: 6
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Boa noite bubulindo, obrigado pela atenção, apenas dois modulos estao conectados ao arduino o mudulo de LCD e o RTC .
o RTC esta conectado assim:
RTC      Arduino
GND --> GND
VCC --> 5V
SDA -->  A4
SCL -->  A5

Segue codigo:

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

RTC_DS1307 RTC;

void setup () {
    Serial.begin(9600);
    pinMode(A3, OUTPUT);
    analogWrite(A3, 255);
    pinMode(A2, OUTPUT);
    analogWrite(A2, 0);
    Wire.begin();
    RTC.begin();

  if (RTC.isrunning()) {
    RTC.adjust(DateTime(__DATE__, __TIME__));
    Serial.println("Data e hora ajustada com sucesso!");
  }
   else{
    Serial.println("RTC is NOT running!");
  }
}

void loop () {
    DateTime now = RTC.now();
    Serial.print("Data e hora atual: ");
    Serial.print(now.day(), DEC);
    Serial.print('/');
    Serial.print(now.month(), DEC);
    Serial.print('/');
    Serial.print(now.year(), DEC);
    Serial.print(' ');
    Serial.print(now.hour(), DEC);
    Serial.print(':');
    Serial.print(now.minute(), DEC);
    Serial.print(':');
    Serial.print(now.second(), DEC);
    Serial.println();
    delay(1000);
}
Logged

'round the world...
Offline Offline
Faraday Member
**
Karma: 42
Posts: 3330
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

importas-te de testar isto:

Code:
#include <Wire.h>
#include "RTClib.h"

RTC_DS1307 RTC;

void setup () {
    Serial.begin(9600);
    pinMode(A3, OUTPUT);
    analogWrite(A3, 255);
    pinMode(A2, OUTPUT);
    analogWrite(A2, 0);
    Wire.begin();
    RTC.begin();

  if (RTC.isrunning()) {
    RTC.adjust(DateTime(__DATE__, __TIME__));
    delay(1000);
    Serial.println("Data e hora ajustada com sucesso!");
    if (RTC.isrunning()) {
        Serial.println("e a correr!!");
    } else }
        Serial.println("e nao esta a correr!");
}
  }
   else{
    Serial.println("RTC is NOT running!");
  }
}

void loop () {
    DateTime now = RTC.now();
    Serial.print("Data e hora atual: ");
    Serial.print(now.day(), DEC);
    Serial.print('/');
    Serial.print(now.month(), DEC);
    Serial.print('/');
    Serial.print(now.year(), DEC);
    Serial.print(' ');
    Serial.print(now.hour(), DEC);
    Serial.print(':');
    Serial.print(now.minute(), DEC);
    Serial.print(':');
    Serial.print(now.second(), DEC);
    Serial.println();
    delay(1000);
}

Já agora quando te aparece que o relógio não está a correr, que é que aparece impresso no ecrã?

E quando diz que está a correr, o que é que aparece? Vês as horas a mexer?

Tens o relógio a funcionar com uma bateria para manter as horas a correr?

no manual diz isto:

"When cleared to 0, the oscillator is enabled. On first application of power to the device the time and date registers are typically reset to 01/01/00 01 00:00:00 (MM/DD/YY DOW HH:MM:SS). The CH bit in the seconds register will be set to a 1."
O que será o que acontece quando desligas o RTC. Se tiveres a usar uma pilha para manter a contagem do tempo, então não será isso. Mas o que eu acho estranho nesta "biblioteca" é a falta duma instrucão para iniciar e parar o RTC. Apenas ter uma a dizer que o RTC está a andar ou não é um pouco ridículo... mas adiante...

Experimenta e vê o que aparece...
Logged

Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

Offline Offline
Newbie
*
Karma: 0
Posts: 6
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

boa tarde bubulindo, fiz alguns teste com o seu codigo, veja o resultado

RTC is NOT running!
Data e hora atual: 1/1/2000 0:0:0
Data e hora atual: 1/1/2000 0:0:0
Data e hora atual: 1/1/2000 0:0:0
Data e hora atual: 1/1/2000 0:0:0 
Data e hora atual: 1/1/2000 0:0:0
Data e hora atual: 1/1/2000 0:0:0

segue foto do arduino com o RTC


* Foto0302.jpg (74.18 KB, 640x480 - viewed 44 times.)
Logged

'round the world...
Offline Offline
Faraday Member
**
Karma: 42
Posts: 3330
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

O módulo tem resistências de pull up para as linhas de SDA e SCL? Podes tentar activar os pull ups do chip com

Code:
pinMode(A4, OUTPUT);
digitalWrite(A4, 1);
// o mesmo para o A5.

Eu tenho ideia que alguém aqui teve problemas com os módulos por causa das baterias... será que a tua pilha de backup está gasta?

Os módulos que dizes ter experimentado, são todos iguais? Ou usas o chip numa breadboard, por exemplo?

Das primeiras vezes quando o módulo dizia que a data e hora foram ajustadas com sucesso, o tempo contava?

Será a morada do módulo que está errada? Eu na RTClib não vi como ajustar a morada do módulo. :\

Nada como experimentar outro código... tens aqui código pronto a usar com as bibliotecas base do Arduino:

http://www.glacialwanderer.com/hobbyrobotics/?p=12
http://www.bristolwatch.com/arduino/arduino_ds1307.htm
http://playground.arduino.cc/Code/Time

De resto estou mesmo sem ideias quanto ao que poderá ser. :\


Logged

Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

São Paulo - Brasil
Offline Offline
Newbie
*
Karma: 0
Posts: 14
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bom, é uma placa pronta, então difícil ser problema de montagem/conexões erradas.

Mas eu tive esse problema quando estava montando o DS1307 na breadboard, devido a:
1) Conexões erradas;
2) Bateria não conectada ao ground do chip;

Inicialmente também utilizei uma biblioteca que não me trazia dados condizentes. A cada 5 leituras, uma era correta, as outras eram datas iniciais. Ao trocar a biblioteca, passou a funcionar corretamente.

Você diz que na primeira vez que conecta ao Arduino ele funciona e depois não funciona mais, é isso?

A placa já veio montado com a bateria encaixada?

Posso estar sendo muito simplista, mas como disse, eu tive problemas assim. Você poderia fazer um teste bobo:
Retirar a bateria e recolocá-la (isso desconectado do Arduino).
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 6
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Boa noite, demorei um pouco para responder poque não estava conseguindo logar-me.
Acho que descobri o problema, mudei a condição para executar a rotina RTC.isrunning() e voltou a funcionar.

Como esta na rotina que voce me enviou:
Code:
if (RTC.isrunning()) {
    RTC.adjust(DateTime(__DATE__, __TIME__));

Ficou assim:
Code:
if (!RTC.isrunning()) {
    RTC.adjust(DateTime(__DATE__, __TIME__));

Obriga pela atenção
Logged

'round the world...
Offline Offline
Faraday Member
**
Karma: 42
Posts: 3330
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

LOL

Desculpa não termos visto... mas olhando agora parece bastante óbvio qual era o problema. Um autêntico momento Homer Simpson. LOL
Se o relógio está a correr, fazer o adjust apenas muda a hora.
Se o relógio não está a correr, além de ajustar a hora a funcão inicia o contador de tempo. :\

O que é estranho é isto estar assim em todos os exemplos que vi :S
Logged

Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

Pages: [1]   Go Up
Jump to: