Reloj en tiempo Arduino Real (DS1307) (4 / 7 paso)

Paso 4: Comprobación y ajuste del módulo

Una vez que haya terminado de ensamblar el módulo. Conecte el módulo a la Arduino, para que las clavijas se insertan correctamente en el Arduino. El programa para el módulo de la prueba se da abajo. El código actualiza constantemente el tiempo a través del puerto serial.

Para ejecutar el módulo tenemos dos bibliotecas tenemos dos bibliotecas en el software de Arduino. Los pasos siguientes configurar el software de Arduino con las bibliotecas necesitada y el código.

Importación de las bibliotecas:

  • Descargar la biblioteca "RealTimeClockDS1307" y guárdelo en el escritorio.
  • Abra el Arduino y vaya a Sketch = > Biblioteca de importación = > Agregar biblioteca.
  • Continuación, seleccione la biblioteca guarda en el escritorio y haga clic en Agregar.
  • Ahora pega el código de ejemplo siguiente y haga clic en compilar. Si compila correctamente siga los pasos restantes.
  • Si no importar la segunda biblioteca de "alambre" y repita el mismo procedimiento y compilar el código y va a trabajar.

Código de trabajo:

El código es escrito por "David H. Brown" lo uso simplemente para darle una introducción para el DS1307. De todos modos el Arduino se comunica con el módulo RTC y actualiza la hora cada segundo a través del Monitor de la serie. El creador nos ha dado una opción para ajustar la hora cuando envía el comando "?". Aparece el siguiente menú.

Este código nos ayudará a ajustar la hora así como comprobar si la batería del módulo fuente funciona correctamente. En el siguiente tutorial le mostrará cómo instalar una pantalla LCD y mostrar el tiempo desde el módulo RTC. Aquí está el código para probar el módulo y un archivo adjunto de la misma.

#include < Wire.h > #include < RealTimeClockDS1307.h > //RealTimeClock RTC; //=new RealTimeClock(); #define Display_Clock_Every_N_Seconds 10 / / n.secs para mostrar la fecha y hora #define Display_ShortHelp_Every_N_Seconds 60 / / n.secs para Mostrar sugerencia ayuda //#define TEST_Squarewave //#define TEST_StopStart //#define TEST_1224Switch int cuenta = 0; formato de Char [] = "00-00-00 00:00:00 x"; void setup() {/ / Wire.begin(); Serial.Begin(9600); pinMode (A3, salida); pin 16 (pin analógico 2) como salida *** digitalWrite (A3, alta); pin 16 (pin analógico 2) para bajas *** pinMode (A2, salida); PIN 17 (pin analógico 3) como salida *** digitalWrite (A2, LOW); PIN 17 (pin analógico 3) establecido en alto *** / / *** configuración del Pin analógico para módulo RTC ***} void loop() {if(Serial.available()) {processCommand();} RTC.readClock(); cuenta ++; Si (recuento % Display_Clock_Every_N_Seconds == 0) {Serial.print(count); Serial.Print(":"); RTC.getFormatted(formatted); Serial.Print(formatted); Serial.println(); ¿} Si (recuento % Display_ShortHelp_Every_N_Seconds == 0) {Serial.println ("envío? para una lista de comandos. ");} #ifdef TEST_Squarewave si (% recuento 10 == 0) {switch (cuenta/10% 6) {caso 0: Serial.print ("Squarewave desactivado (baja impedancia):"); RTC.sqwDisable(0); RTC.readData(7)) de serial.println((int); rotura; caso 1: Serial.print ("Squarewave deshabilitado (alta impedancia):"); RTC.sqwDisable(1); RTC.readData(7)) de serial.println((int); rotura; caso 2: Serial.println ("Squarewave habilitado en 1 Hz"); RTC.sqwEnable(RTC.SQW_1Hz); rotura; caso 3: Serial.println ("Squarewave permitido a 4,096 kHz"); RTC.sqwEnable(RTC.SQW_4kHz); rotura; caso 4: Serial.println ("Squarewave habilitado a 8.192 kHz"); RTC.sqwEnable(RTC.SQW_8kHz); rotura; caso 5: Serial.println ("Squarewave permitido a 32,768 kHz"); RTC.sqwEnable(RTC.SQW_32kHz); rotura; por defecto: Serial.println ("Squarewave prueba no definido"); //switch}} #endif #ifdef TEST_StopStart si (% recuento 10 == 0) {if (! RTC.isStopped()) {if(RTC.getSeconds() < 45) {Serial.println ("reloj de parada durante 10 segundos"); RTC.stop(); //if} tenemos bastante tiempo} else {RTC.setSeconds(RTC.getSeconds()+11); RTC.start(); Serial.println ("adición de 11 segundos y reiniciar el reloj); //if}} en un múltiplo de 10 cuenta #endif #ifdef TEST_1224Switch si (% recuento 10 == 0) {si (recuento % 20 == 0) {Serial.println ("cambiar a tiempo de 12 horas"); RTC.switchTo12h(); RTC.setClock(); } else {Serial.println ("cambiar a 24 horas"); RTC.switchTo24h(); RTC.setClock(); {}} #endif} void processCommand() {si ()
! Serial.Available()) {return;} char comando = Serial.read(); int en in2; Switch(Command) {'H' del caso: caso 'h': in=SerialReadPosInt(); RTC.setHours(in); RTC.setClock(); Serial.Print ("ajuste de horas"); Serial.println(in); rotura; caso 'I': caso 'i': in=SerialReadPosInt(); RTC.setMinutes(in); RTC.setClock(); Serial.Print ("ajuste de minutos"); Serial.println(in); rotura; de caso ': case': in=SerialReadPosInt(); RTC.setSeconds(in); RTC.setClock(); Serial.Print ("ajuste a segundos"); Serial.println(in); rotura; 'Y' del caso: caso 'y': in=SerialReadPosInt(); RTC.setYear(in); RTC.setClock(); Serial.Print ("ajuste año"); Serial.println(in); rotura; caso soy ': caso estoy ': in=SerialReadPosInt(); RTC.setMonth(in); RTC.setClock(); Serial.Print ("mes a"); Serial.println(in); rotura; caso sería ': caso sería ': in=SerialReadPosInt(); RTC.setDate(in); RTC.setClock(); Serial.Print ("ajuste de la fecha a"); Serial.println(in); rotura; caso 'W': Serial.print ("día de la semana es"); RTC.getDayOfWeek()) de serial.println((int); rotura; caso 'w': in=SerialReadPosInt(); RTC.setDayOfWeek(in); RTC.setClock(); Serial.Print ("día del ajuste de la semana a"); Serial.println(in); rotura; caso ' t ': caso ' t ': if(RTC.is12hour()) {RTC.switchTo24h(); Serial.println ("conmutación a 24 horas."); } else {RTC.switchTo12h(); Serial.println ("conmutación a 12 horas."); } RTC.setClock(); rotura; 'A' del caso: caso 'a': if(RTC.is12hour()) {RTC.setAM(); RTC.setClock(); Serial.println ("Set AM."); } else {Serial.println ("(Set horas sólo en modo de 24 horas.)");} break; 'P' del caso: caso 'p': if(RTC.is12hour()) {RTC.setPM(); RTC.setClock(); Serial.println ("Set PM."); } else {Serial.println ("(Set horas sólo en modo de 24 horas.)");} break; caso 'q': RTC.sqwEnable(RTC.SQW_1Hz); Serial.println ("onda cuadrada de salida a 1Hz"); rotura; caso 'Q': RTC.sqwDisable(0); Serial.println ("cuadrado de salida onda desactivado (baja)"); rotura; caso 'z': RTC.start(); Serial.println ("oscilador de reloj iniciado."); rotura; caso 'Z': RTC.stop(); Serial.println ("reloj oscilador detenido."); rotura; caso ' >': in=SerialReadPosInt(); in2=SerialReadPosInt(); RTC.writeData (en, in2); Serial.Print ("grabar registro"); Serial.Print(in); Serial.Print ("el valor"); Serial.println(in2); rotura; caso ' <': in=SerialReadPosInt(); in2=RTC.readData(in); Serial.Print ("leer registro"); Serial.Print(in); Serial.Print ("el valor"); Serial.println(in2); rotura; por defecto: Serial.println ("comando desconocido. Prueba estos: "); Serial.println ("h ## - establecer horas [gama 1..12 o 0..24]"); Serial.println ("i ## - minutos [gama 0..59]"); Serial.println ("s ## - set segundos [gama 0..59]"); Serial.println ("d ## - fecha [gama 1..31]"); Serial.println ("m ## - set mes [gama 1..12]"); Serial.println ("y ## - año set [gama 0..99]"); Serial.println ("w ## - conjunto arbitrario día de la semana [gama 1..7]"); Serial.println ("t - modo de 24 horas alternar"); Serial.println ("un - set p AM - PM set"); Serial.println(); Serial.println ("z - start clock Z - parada de reloj"); Serial.println ("q - SQW/OUT = 1Hz Q - parada SQW/OUT"); Serial.println(); Serial.println ("> ##, ###-escribir al registro ## el valor ###"); Serial.println ("< ##-leer el valor de registro ##"); } //switch en comando} //read en caracteres numéricos hasta algo mas //or no hay más datos están disponibles en serie. int SerialReadPosInt() {int i = 0; boolean hecho = false; while(Serial.available() & &! hecho) {char c = Serial.read(); si (c > = '0' & & c < = '9') {me = i * 10 + (c-'0');} otro {= true;}} volver i;}

Artículos Relacionados

Tiempo Arduino Real de despertador con temperatura y luces LED. Controlada remoto

Tiempo Arduino Real de despertador con temperatura y luces LED. Controlada remoto

Reloj de Arduino, con respaldo de batería (reloj en tiempo real), tiempo, fecha, alarma, temperatura, pantalla LCD salida remota IR de entrada, modo de suspensión, (10 X) de luz del LED azul y rojo varios modos de funcionamiento.Paso 1: Paso 1: lista
Circuito reloj del tiempo 3D impresa regreso al futuro

Circuito reloj del tiempo 3D impresa regreso al futuro

El reloj circuito mostrará lo siguiente a través de las pantallas de LED.Destino tiempo – (tapa roja)El tiempo de destino es un área que muestra una fecha fija y el tiempo. Utilice esta área para mostrar una fecha importante en su vida como boda, cum
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
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,
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
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
#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
¿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
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
Configuración de un reloj de tiempo Real (RTC) con un Micro Arduino Pro

Configuración de un reloj de tiempo Real (RTC) con un Micro Arduino Pro

Para un montón de proyectos, necesita saber el tiempo real. Siendo precisos segundos, la hora del día o la fecha del mes, un Módulo de reloj de tiempo Real RTC es la respuesta a esa necesidad.Con bajo consumo de energía, avanzadas de precisión y cali
Reloj en tiempo Real de Arduino DS3231 con color TFT

Reloj en tiempo Real de Arduino DS3231 con color TFT

Construcción de un reloj de tiempo real con un pantalla TFT a color es muy fácil utilizando Arduino. La pantalla muestra la hora, la fecha, la temperatura del currect a lo largo de la temperatura MAX y MIN que ha medido. Vamos a construirlo!Paso 1: O
Reloj lineal utilizando Arduino + DS1307 Neopixel: volver a utilizar algún hardware.

Reloj lineal utilizando Arduino + DS1307 Neopixel: volver a utilizar algún hardware.

De proyectos anteriores tuve un Arduino UNO y una tira de Neopixel LED a la izquierda y quería hacer algo diferente. Porque tira de Neopixel tiene 60 luces LED, pensadas para utilizarlo como un gran reloj.Para indicar las horas, se utiliza un segment
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