Hola, Estoy usando un RTC DS1307 pero cuando conecto las lineas de I2C, el arduino se paraliza; no ejecuta nada.
estoy usando un ATmega 328p au para mi proyecto, y tambien posteo codigo:
#include <Wire.h>
#include <RTClib.h>
RTC_DS3231 rtc;
void setup() {
Wire.begin();
pinMode(3, HIGH);
if(! rtc.begin()){
digitalWrite(13, HIGH);
delay(3000);
digitalWrite(13, LOW);
while(1);
}
}
void loop() {
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
delay(1000);
}
estoy usando este codigo para probar el RTC, pero se bloquea.
con este codigo debe hacer lo siguiente; si el rtc no esta conectado, el led L enciende por 3 seg. y se apaga para siempre; sino, cuando el arduino reconoce el RTC el led L parpadea cada 1 seg.; pero en mi caso, el led L no enciende, y cuando desconecto las lineas de I2C el led enciende durante 3 seg. y se apaga; si lo vuelvo a conectar cuando el led esta encendido pro el error, el led se queda encedido hasta que desconecte el RTC.
tambien he probado con el puerto serie, pero tambien si no esta dsconectado el RTC no responde; y lo mismo si quiero cargar un programa con el RTC conectado
No se si este es un problema de software o de hardware, así que si me equivoque es por esto
Esta parte del código te dice que si no esta conectado el rtc y/o no arranca entonces se queda en un loop infinito.
La única explicación si el led parpadea previamente y luego se cuelga es que tienes mal SDA y SCL, o sea los tienes invertidos.
pinMode(3, HIGH);
Debería ser
pinMode(13, OUTPUT);
sinó el pin está en modo entrada por defecto.
Por la única razón que el LED enciende es porque, en tu código,
digitalWrite(13, HIGH);
está activando la resistencia pull-up y circula corriente a través de ésta.
Creas una instancia de
RTC_DS3231 rtc;
pero dices que usas un DS1307 entonces debería ser
RTC_DS1307 rtc;
Bueno lo que dice @MaximoEsfuerzo es verdad, pero el Led sigue encendiendo, también puede que sea la librería,.
@Surbyte, que los pines del rtc estén mal etiquetados, pues no encuentro otra respuesta, pues he visto con el multimetro y están bien conectados.
Pero de todas maneras, voy a probar sus sugerencias
Cambiarle el sentido a los pines I2C no sirve, sigue bloqueandose con los pines bien o mal.
Aparte he puesto una pantalla oled 0,96" SPI y cuando conecto el Rtc la pantalla muestra mucho buffer.
Hola, yo soy @atmega2650au, que a su vez es @hernando328p solo qué me saque otra cuenta.
ya le ejecute el I2CScaner y el arduino se bloquea; no sale nada no se si es el arduino o el RTC.
incluso probé con el ejemplo de la libreria (Adafruit_RTClib.h) y no funciona 
Cuando tienes un problema con un modulo no agregues mas variables al circuito.
Concéntrate en algo básico que haga funcionar tu modulo RTC nada mas. Cuando lo superes entonces si, el OLED o lo que gustes.
La prueba de I2CScanner es al menos indicativa de que algo pasa.
Vamos a suponer lo mejor desde el punto de vista de tu bolsillo.
Lo mejor es RTC en problemas.
Verifica en el módulo RTC con un tester la Resistencia entre 5V del RTC y las lineas SDA y SCL, postea los valores aquí por favor.
Obvio todo sin alimentación, simple medicion de los circuitos a ver que resistencia muestran.
También hazlo con el Arduino, solo para estar seguros que estamos bien.
A4 y A5 contra 5V
El DS1307 trabaja entre 4.5 y 5.5V
Con 3.3V no le haces nada, no lo puedes dañar
Hoja de datos DS1307
Le medí los pines de SDA y SCL, SDA tiene una resistencia de PullUp de 3.7K y una resistencia hacia negativo de 180 omhs, y SCL tiene también 3.7k de PullUp y una resistencia de 12.4 k hacia GND.
También probé conectar una resistencia de 1k de SDA a negativo del arduino ambos, y se congela igual que con el Rtc conectado.
Vaya que esa baja impedancia luce muy mal.
Creo que ese DS1307 esta dañado sin lugar a dudas. Debería presentar algo como SDA.
Ahora si que me arriesgo a decir que lo cambies.
Hola, le desolde la memoria eemprom qué tiene incorporada (no la usaba) y ahora los dos pines tienen 3.7k de PullUp y 12. 4k de resistencia a GND.
Mañana lo pruebo y les aviso
hola, el RTC si funciona, la memoria creo que habia frito.
le pase el I2CScaner, y tiene una direccion de 0x68.
Hola, el Rtc esta volviendo a fallar, el arduino no lo reconoce (salta el while) no he vuelto a medir y la resistencia que tenía antes (la de 12.4k) hacia negativo, ahora es de 21.3k,
Lo único que se, esta que el, rtc es desconecto de manera que se ponga en serie con un buzzer de 12v y una pantalla SPI, y de ahí ya no funciona
Hora de usar la tarjeta de crédito!!
Si, Mucha cosa para un modulo RTC, esta es la continuacion del post RTC DS1307 ¿Quemado? Continuidad en los pines I2C, despues de este post me compre otro RTC, que es este problematico, desde que lo compre vino fallado.
ahora solo queda cambiarlo en la tienda.
muchas gracias por su ayuda.
Vaya que tienes mala suerte entonces.