Ajuste el reloj de tiempo Real DS1307 usando el Monitor Serial (1 / 2 paso)

Paso 1: código de

Copia y esta en el IDE de Arduino y quema a la Junta. Para esto estoy usando un ACEDuino que tiene un ATMega 328 P.
Para configurar la fecha y hora es todo hecho el monitor serie, que es más fácil que he encontrado.

///////////////////////////////////////////
Setter de datos y tiempo RTC / /
//                                       //
Este programa permite al usuario / /
para establecer la fecha y hora de un RTC / /
usando el I2C.                            //
//                                       //
// Codes by:                             //
eGizmo Mechatronix Central / /
Taft, Manila, Filipinas / /
http://www.egizmo.com / /
15 de abril de 2013 / /
///////////////////////////////////////////

#include < Wire.h >
const int DS1307 = 0x68; Dirección del DS1307 ver hojas de datos
const char * días [] =
{"Domingo", "Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sabado"};
const char * meses [] =
{"Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"};

Inicializa todos los valores:
bytes segundo = 0;
minutos de byte = 0;
hora de byte = 0;
día de la semana byte = 0;
byte monthday = 0;
mes de byte = 0;
año de byte = 0;

void setup() {}
Wire.Begin();
Serial.Begin(9600);
Delay(2000); Este retraso permite el MCU leer la fecha y hora actuales.

Serial.Print ("la fecha y hora actual es:");
printTime();
Serial.println ("por favor cambio a nueva línea terminando la configuración de la parte inferior derecha del Monitor Serial");
Serial.println ("¿quieres la fecha y hora ahora? S/N");

mientras (!. Delay(10) de serial.Available());
Si (Serial.read() == 'y' || Serial.Read() == 'Y')

Este conjunto de funciones permite al usuario cambiar la fecha y hora
{
Serial.Read();
setTime();
Serial.Print ("ahora es la fecha y hora actual:");
printTime();
}


Serial.println ("gracias.");
}

Función continua para convertir bytes a decimales y viceversa
void loop() {}
}
byte decToBcd(byte val) {}
regresar ((val/10 * 16) + (val % 10));
}
byte bcdToDec(byte val) {}
regresar ((val/16 * 10) + (val % 16));
}

Este sistema de códigos es que permite la entrada de datos
{} void setTime()
Serial.Print ("Escriba el año en curso, 00-99. - ");
año = readByte();
Serial.println(Year);
Serial.Print ("introduce el mes en curso, 1-12. - ");
mes = readByte();
Serial.println(months[month-1]);
Serial.Print ("introduce el día actual del mes, 1-31. - ");


MonthDay = readByte();
Serial.println(MonthDay);
Serial.println ("introduce el día de la semana, 1-7.");
Serial.Print ("1 el sol | 2 Mon | 3 el martes | Weds 4 | 5 Jue | 6 el viernes | Sat 7 - ");
día de la semana = readByte();
Serial.println(Days[Weekday-1]);
Serial.Print ("por favor, introduzca la hora actual en formato 24 h, 0-23. - ");
hora = readByte();
Serial.println(hour);
Serial.Print ("Introduzca el 0-59 minutos, actual. - ");
minutos = readByte();
Serial.println(minute);
segundo = 0;
Serial.println ("los datos introducidos.");

Los siguientes códigos transmite los datos a la RTC
Wire.beginTransmission(DS1307);
Wire.Write(byte(0));
Wire.Write(decToBcd(Second));
Wire.Write(decToBcd(minute));
Wire.Write(decToBcd(hour));
Wire.Write(decToBcd(Weekday));
Wire.Write(decToBcd(MonthDay));
Wire.Write(decToBcd(month));
Wire.Write(decToBcd(Year));
Wire.Write(byte(0));
Wire.endTransmission();
Extremos de la transmisión de datos
}

byte readByte() {}
mientras (!. Delay(10) de serial.Available());
lectura de byte = 0;
byte incomingByte = Serial.read();
mientras que (incomingByte! = '\n') {}
Si (incomingByte > = '0' & & incomingByte < = '9')
lectura = lectura * 10 + (incomingByte - '0');
otra cosa;
incomingByte = Serial.read();
}
Serial.Flush();
volver a leer;
}

void printTime() {}
buffer de Char [3];
const char * AMPM = 0;
readTime();
Serial.Print(Days[Weekday-1]);
Serial.Print("");
Serial.Print(months[month-1]);
Serial.Print("");
Serial.Print(MonthDay);
Serial.Print (", 20");
Serial.Print(Year);
Serial.Print("");
Si (horas > 12) {}
hora-= 12;
AMPM = "PM";
}
otro AMPM = "AM";
Serial.Print(hour);
Serial.Print(":");
sprintf (buffer, "% 02d", minuto);
Serial.Print(buffer);
Serial.println(AMPM);
}

void readTime() {}
Wire.beginTransmission(DS1307);
Wire.Write(byte(0));
Wire.endTransmission();
Wire.requestFrom (DS1307, 7);
segundo = bcdToDec(Wire.read());
minutos = bcdToDec(Wire.read());
hora = bcdToDec(Wire.read());
día de la semana = bcdToDec(Wire.read());
MonthDay = bcdToDec(Wire.read());
mes = bcdToDec(Wire.read());
año = bcdToDec(Wire.read());
}

Artículos Relacionados

#8 simple Demo de binario codificado Decimal (BCD) para relojes de tiempo Real (como el DS3231 y DS1307)

#8 simple Demo de binario codificado Decimal (BCD) para relojes de tiempo Real (como el DS3231 y DS1307)

Teoría aplicada a veces un poco va un largo camino en lo que un programador de Arduino para entender el fondo detrás de la electrónica.En este corto video (sólo interrumpido por Benny, mi gato) explico cómo se almacena binario codificado Decimal (aka
Montar un Kit de reloj de tiempo Real Adafruit DS1307

Montar un Kit de reloj de tiempo Real Adafruit DS1307

Sería justo decir que las industrias Adafruit ya ha hecho un gran trabajo de documentación de su Kit de reloj de tiempo Real DS1307. De hecho, sus instrucciones son mucho mejores que nada que tengo que ofrecer ya que incluye a todo tipo de archivos,
Arduino Nano: Clock(RTC) de tiempo Real DS1307 con Visuino

Arduino Nano: Clock(RTC) de tiempo Real DS1307 con Visuino

Reloj de tiempo Real DS1307 son módulos de RTC I2C de bajo costo ampliamente disponibles. Vienen con un reloj y una pequeña batería y cuando esté conectado a Arduino, puede realizar un seguimiento de tiempo real incluso cuando no se alimenta la placa
Añadir un ATMEGA328P y reloj en tiempo Real a un proyecto existente

Añadir un ATMEGA328P y reloj en tiempo Real a un proyecto existente

este fue un proyecto existente que se había hecho un rato antes.Una matriz de LED 8 X 10.Así que no es una estructura completa, mostrando sólo el agregar enHe añadido a la 8 X 10 un microprocesador, el ATMEGA328P la exhibición de LED en el reloj inte
Berlín reloj, Arduino Nano, DS1307 reloj en tiempo Real. 74HC595N 8 Bit Shift Register.

Berlín reloj, Arduino Nano, DS1307 reloj en tiempo Real. 74HC595N 8 Bit Shift Register.

Hace algún tiempo he querido construir un reloj de Berlín. ¿Realmente no sé por qué? Igual lo "diferente" a la hora.¿Cómo funciona?A partir de la parte inferior hay 4 amarillo enciende cada luz representa 1 minuto, así que si no hay ninguno en e
Módulos de reloj en tiempo Real compatible con Arduino #5 (DS1307 y DS3231)

Módulos de reloj en tiempo Real compatible con Arduino #5 (DS1307 y DS3231)

Un módulo de reloj en tiempo Real (RTC) es que un RTC es un RTC. ¿Verdad? Mal!Mientras estos dos ECA muy común, compatible con Arduino un aspecto muy similar y están conectados a través del I2C (pronunciado ojo cuadrado, u ojo ojo) bus de comunicacio
Arduino Aquaponics: reloj de tiempo Real parte I

Arduino Aquaponics: reloj de tiempo Real parte I

necesidad fundamental de AA de cualquier sistema de control es la capacidad de registrar el tiempo.  Como lo que somos conscientes, el Arduino tiene tres métodos que puede emplear:1. serie.  Varias veces superar el tiempo de la conexión en serie.2. e
Un elegante, apilamiento, reloj en tiempo Real para Raspberry Pi

Un elegante, apilamiento, reloj en tiempo Real para Raspberry Pi

Si quieres construir un buen reloj en tiempo Real para su frambuesa de aquí está el tutorial que estabas buscando!Esta es una versión revisada y simplificada de Instructables hecho fuera de este artículo en mi blog personal. Diferencia es principalme
Reloj en tiempo real con PIC18F452

Reloj en tiempo real con PIC18F452

Bienvenido a usted. Aquí estoy diseñado un reloj de tiempo Real utilizando el microcontrolador PIC18F452. Voy a explicar cómo diseñar el reloj en tiempo Real utilizando el microcontrolador PIC. RTC usando PIC18F452PIC es avance microcontrolador serie
Reloj de tiempo Real de Arduino con alarma y sensores ambientales

Reloj de tiempo Real de Arduino con alarma y sensores ambientales

Reloj de Arduino, con respaldo de batería (reloj en tiempo real), tiempo, fecha, alarma, temperatura, humedad, presión, LCD, salida, entrada de teclado, dormir modo, blanco de iluminación (4 X) LED LCD con control de intensidadPaso 1: Lista de piezas
¿TimeKeeping en ESP8266 & arduino uno sin un RTC (reloj en tiempo Real)?

¿TimeKeeping en ESP8266 & arduino uno sin un RTC (reloj en tiempo Real)?

Como dice el titulo, he probado hacer el seguimiento de tiempo en mi arduino uno y la ESP8266 / tablas Wemos D1 (programadas con arduino) sin el uso de bibliotecas, internet o una unidad RTC. Un montón de instructables grandes aquí en el sitio Dile q
Prototipo y configurar su propio módulo de reloj en tiempo Real para la frambuesa Pi (Open Source Hardware y Software configuración))

Prototipo y configurar su propio módulo de reloj en tiempo Real para la frambuesa Pi (Open Source Hardware y Software configuración))

Para mantener el precio de la frambuesa pi por los desarrolladores de izquierda algunos de los elementos esenciales de esos es el reloj de tiempo real. En este momento la frambuesa pi tiempo sobre Ethernet de actualizar la hora automáticamente desde
Reloj de tiempo real utilizando AT89s52

Reloj de tiempo real utilizando AT89s52

WELCOME BACK, esto es shubham Trivedi y hoy voy a diseño de reloj en tiempo Real utilizando el microcontrolador At89s52. El microcontrolador AT89S52 es el corazón de este proyecto. DS1307 IC se utiliza como RTC. Necesaria de este IC DS1307 I2C interf
Frambuesa Pi - reloj en tiempo Real (RTC)

Frambuesa Pi - reloj en tiempo Real (RTC)

En este proyecto, vamos a hacer un reloj de tiempo Real (RTC) que mantenga el tiempo de su frambuesa Pi incluso si está apagada.Reloj de tiempo real es esencial para cada Micro controladores mantener el tiempo, incluso si está apagada. Sin un Network