Go Down

Topic: ¿Como saco 1 Hz del ds1307? (Read 1 time) previous topic - next topic

lm386

Estoy buscando la forma de sacar por la salida SQW del DS1307 una señal de onda cuadrada de 1 Hz, pero después de buscar y buscar, no encuentro nada, eso o no se buscar.

Un saludos.

JRodrigo

#1
May 26, 2012, 04:00 pm Last Edit: May 26, 2012, 04:13 pm by JRodrigo Reason: 1
Si miras el datasheet ( DS1307.pdf ) en la pagina 5 te explica lo que tienes que enviar para que haga una de las diferentes señales cuadradas.

lm386

#2
May 26, 2012, 05:26 pm Last Edit: May 27, 2012, 04:37 am by lm386 Reason: 1
SOLUCIONADO

AQUÍ DEJO UN CÓDIGO DE EJEMPLO PARA TRABAJAR CON EL DS1307

CÓDIGO:


#include <Wire.h>
#include "RTClib.h"
#define DS1307_I2C_ADDRESS 0x68

RTC_DS1307 RTC;

void setup () {
 
   Serial.begin(57600);
   Wire.begin();

 //ESTO HABILITA LA SEÑAL DE 1HZ POR LA SALIDA SQW DEL DS1307
 //SI SE QUIERE ENCENDER UN LED HAY QUE PONER UNA RESISTENCIA DE 220 OMS ENTRE LA SALIDA SQW Y VCC Y CONECTAR EL LED DEL PIN SQW A MASA.
 // MAS INFO - http://www.cursomicros.com/avr/i2c-rtc/ds1307-registros.html#registro-control

   RTC.begin();    
   Wire.beginTransmission(DS1307_I2C_ADDRESS);
   Wire.write(0x07); // MUEBE EL PUNTERO A SQW
   Wire.write(B00010000); //  B00010000 PONE LA SALIDA SQW A 1 HZ, B00010001 PONE SQW A 4096hZ, B00010010 A 8192HZ, B00010011 A 32768HZ Y B10000000 0HZ
   Wire.endTransmission();

 // ESTA PARTE DEL CÓDIGO PONE EN HORA EL DS1307 USANDO LA HORA Y FECHA DEL ORDENADOR

   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__));  
   
   
 }
}

void loop () {
 
 // ESTO MUESTRA POR EL PUERTO SERIE LA FECHA Y HORA DEL DS1307 A INTERVALOS DE 1 SEGUNDOS

   DateTime now = RTC.now();
   
   Serial.print(now.year(), DEC);
   Serial.print('/');
   Serial.print(now.month(), DEC);
   Serial.print('/');
   Serial.print(now.day(), 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);
   
   
}

flico

Edita el titulo del post y pon SOLUCIONADO a continuacion de tu texto.

Go Up