{"id":344,"date":"2010-11-16T14:52:47","date_gmt":"2010-11-16T13:52:47","guid":{"rendered":"http:\/\/electronicapractica.crearblog.com\/?p=344"},"modified":"2019-06-13T19:46:14","modified_gmt":"2019-06-13T17:46:14","slug":"practico-reloj-ds1307","status":"publish","type":"post","link":"https:\/\/www.diarioelectronicohoy.com\/blog\/practico-reloj-ds1307","title":{"rendered":"Pr\u00e1ctico reloj DS1307"},"content":{"rendered":"<p><a name=\"inici\"><\/a><\/p>\n<h2><span style=\"color: #000080;\">PRACTICO RELOJ.<\/span><\/h2>\n<p style=\"margin-top: 12px; margin-bottom: 12px;\" align=\"justify\">En el tutorial <a href=\"http:\/\/www.hispavila.com\/3ds\/atmega\/ds1307reloj.html\" target=\"_blank\" rel=\"noopener noreferrer\">ds1307reloj<\/a> ya puse de manifiesto las caracter\u00edsticas y algunas capacidades de este peque\u00f1o y pr\u00e1ctico dispositivo, en el que document\u00e9 el c\u00f3digo que permit\u00eda poner en hora el reloj que soporta el dispositivo <strong>DS1307<\/strong>.<\/p>\n<p style=\"margin-top: 12px; margin-bottom: 12px;\" align=\"justify\">Ahora, tratar\u00e9 de llevar a cabo un proyecto en el que podamos dar cierta utilidad a las posibilidades que ofrece esta peque\u00f1a maravilla (es cierto que el mismo fabricante, dispone de productos m\u00e1s especializados con los que, se puede disponer de m\u00e1s opciones de lectura de los registros que pone a nuestro servicio, alarmas, cron\u00f3metros y m\u00e1s), sin embargo como el \u00fanico que tengo a mano es el DS1307A (*), es con el que voy a realzar esta pr\u00e1ctica.<\/p>\n<p style=\"margin-top: 12px; margin-bottom: 12px;\" align=\"justify\">Partiendo del montaje que se desarroll\u00f3 en el mencionado <a href=\"http:\/\/www.hispavila.com\/3ds\/atmega\/ds1307reloj.html\" target=\"_blank\" rel=\"noopener noreferrer\">ds1307reloj<\/a>, voy a introducir unas variables y rutinas en el c\u00f3digo descrito all\u00ed para mejorar las prestaciones que nos proporciona y podemos aprovechar a nuestra voluntad.<!--more--><\/p>\n<p style=\"margin-top: 12px; margin-bottom: 12px;\" align=\"justify\"><a href=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/11\/ds1307-reloj.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-full wp-image-1370\" title=\"ds1307 reloj\" src=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/11\/ds1307-reloj.jpg\" alt=\"\" width=\"260\" height=\"240\" \/><\/a>Como se desprende de la foto, realic\u00e9 este montaje sobre una peque\u00f1a porci\u00f3n de placa preformada, para dar una m\u00e1s r\u00e1pida soluci\u00f3n al proyecto. A pesar de todo, la exactitud del reloj obtenido, es digna de tener en cuenta, vengo observando que, la deriva despu\u00e9s de tres meses es de 1 segundo, aunque no puedo &#8216;afinar&#8217; m\u00e1s dado que la referencia que utilizo es el reloj de mi PC.<\/p>\n<p style=\"margin-top: 12px; margin-bottom: 12px;\" align=\"justify\">Este montaje est\u00e1 basado en el esquema del propio <span style=\"font-family: Times New Roman;\">\u00a9<\/span>Dallas, actualmente <a href=\"http:\/\/www.maxim-ic.com\/\"><span style=\"font-family: Times New Roman;\">\u00a9<\/span>Maxim<\/a>, que es el siguiente:<\/p>\n<p style=\"margin-top: 12px; margin-bottom: 12px;\" align=\"justify\"><a href=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/11\/ds1307.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-full wp-image-1371\" title=\"ds1307\" src=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/11\/ds1307.jpg\" alt=\"\" width=\"300\" height=\"197\" \/><\/a>Como se aprecia es muy sencillo, el dispositivo m\u00e1s critico, como siempre es el cristal de cuarzo, la exactitud del reloj depende casi exclusivamente de este dispositivo. Personalmente recomiendo siempre que sea posible uno de los que llevan los relojes de pulsera que tengamos en desuso, estar\u00e1 bien por que aprovecharemos un producto probado y nos resulta econ\u00f3mico, por otra parte cumple los requisitos b\u00e1sicos, tiene una frecuencia fundamental de oscilaci\u00f3n perfectamente calibrada a los 32.768 kHz, en cuanto a la estabilidad, es conveniente soldar la c\u00e1psula a masa de forma que no adquiera una alta temperatura al soldarla, para no producir alteraciones en la pastilla de cuarzo.<\/p>\n<h2><strong><span style=\"color: #000080;\">Caracter\u00edsticas.<\/span><\/strong><\/h2>\n<p style=\"margin-top: 12px; margin-bottom: 12px;\" align=\"justify\">Las caracter\u00edsticas del proyecto que emprendemos, pueden ser mejoradas tantas veces como le parezca necesario al interesado, sin embargo por el momento son las siguientes:<\/p>\n<pre>1.- Puesta en hora y fecha, para iniciar el reloj, mediante\r\n     la introducci\u00f3n de los datos anteponiendo una \"T\",\r\n     en la forma:\r\n  <span style=\"font-size: x-small;\"><strong> T(seg) (min)(hora) (d\u00edas) (d\u00eda) (mes) (a\u00f1o)<\/strong><\/span>\r\n  T(00-59)(00-59)(00-23) (1-7) (01-31)(01-12)(00-99).\r\n2.- Podemos consultar el contenido de la memoria, en\r\n     pantalla, mediante Q y el par\u00e1metro (1 o 2)\r\n     (1- Consultar Memoria y 2- Volcado de Memoria del RTC).\r\n3.- Consultar la fecha mediante el par\u00e1metro L, podemos\r\n     leer la fecha y la hora actual.\r\n4.- Al mismo tiempo nos indicar\u00e1 la onom\u00e1stica\r\n    de alg\u00fan familiar o la fiesta del d\u00eda.\r\n   ....\r\nn-1.- El interesado, puede usar la caracter\u00edstica de\r\n   cron\u00f3metro, mediante su propio c\u00f3digo.<\/pre>\n<h2><span style=\"color: #000080;\"><strong>El c\u00f3digo.<\/strong><\/span><\/h2>\n<p style=\"margin-top: 12px; margin-bottom: 12px;\" align=\"justify\">En principio, vamos a utilizar el mismo c\u00f3digo mencionado del ejemplo anterior, <a href=\"http:\/\/www.hispavila.com\/3ds\/atmega\/ds1307reloj.html\" target=\"_blank\" rel=\"noopener noreferrer\">ds1307reloj<\/a>, al que iremos ampliando en cada nuevo par\u00e1metro. Respecto al c\u00f3digo, le doy la versi\u00f3n 2, debido a las mejoras introducidas por mi, si bien es cierto que me apoyo en rutinas que extraigo de distintas partes (vamos que, como dice aquel \u00abno fabrico los ladrillos, ni las ventanas, ni los utensilios de ba\u00f1o, para construir el edificio, y sin embargo, el m\u00e9rito es del arquitecto\u00bb).<\/p>\n<pre><span style=\"color: #009900;\">\/* \r\n* RTC Control v.01 \u00a0 \r\n* by John Vaughters \r\n* Credit to: Maurice Ribble - \r\n* http:\/\/www.glacialwanderer.com\/hobbyrobotics for RTC DS1307 code \r\n* Con este c\u00f3digo se puede establecer la fecha y la hora, recuperar la fecha \r\n* y la hora y usar la memoria adicional de un chip DS1307 RTC. \r\n* El programa tambi\u00e9n pone todo el espacio de memoria suplementaria a 0xff. \r\n* m\u00e9todo de Comunicaci\u00f3n Serie con el Arduino que, utiliza un Car\u00e1cter \r\n* May\u00fascula para cada orden descrita a continuaci\u00f3n.  \r\n* Ahora tambi\u00e9n, admite el car\u00e1cter q (min\u00fascula). \r\n* Comandos: T(00-59)(00-59)(00-23)(1-7)(01-31)(01-12)(00-99) \r\n* \r\n* T(sec)(min)(hour)(dayOfWeek)(dayOfMonth)(month)(year) - \r\n* T pone la fecha del chip RTC DS1307. \r\n* Ejemplo para poner la fecha y hora: \r\n* 02-Feb-09 @ 19:57:11 para el d\u00eda 3 de \r\n* la semana, use la orden - T1157193020209 \/\/ T11 57 19 3 02 02 09. \r\n* Q(1-2) -:- (Q1) Consulta Memoria (Q2) RTC - Volcado Memoria \r\n* mm:ss:hh:ds:DD:MM:AA \r\n* T20:11:18: 4:15:10:09 \r\n* \r\n* Modificado el: 19-09-2009. \r\n* by V. Garc\u00eda v.01.2 &lt;http:\/\/www.hispavila.com&gt; \r\n* \r\n* Ahora, puedes leer la hora y d\u00eda de la fecha con introducir l o L \r\n* Para poner en hora y la fecha del chip RTC DS1307, usa t o T: \u00a0 \r\n* ss:mm:hh:ds:DD:MM:AA \r\n* T20:11:18: 4:15:10:09 \r\n* ultimo: T4052001110110 \r\n* \r\n* El c\u00f3digo funciona bien, \r\n* \r\n* Modificado el: 11-01-2010. \r\n* by V. Garc\u00eda v.02 &lt;http:\/\/www.hispavila.com&gt; \r\n* \r\n*\/ <\/span>\r\n\r\n#include \"Wire.h\"\r\n#define DS1307_I2C_ADDRESS 0x68 <span style=\"color: #009900;\">\/\/ Esta es la address I2C <\/span>\r\n\r\n<span style=\"color: #009900;\">\/\/ Variables Globales RTC<\/span>\r\nint command = 0; <span style=\"color: #009900;\">\/\/ Es el comando de car\u00e1cter, \r\n     \/\/ en formato ASCII, enviados desde el puerto serie<\/span>\r\nint i;\r\nlong previousMillis = 0; <span style=\"color: #009900;\">\/\/ almacenar\u00e1 la \u00faltima vez que Temp se ha actualizado<\/span>\r\nbyte second, minute, hour, dayOfWeek, dayOfMonth, month, year;\r\nbyte test; \r\n\r\nint ledpin = 13; <span style=\"color: #009900;\">\/\/ activa el LED cada consulta<\/span>\r\n\r\n<span style=\"color: #009900;\">\/\/ Convierte n\u00fameros decimales normales a binario codificado decimal<\/span>\r\nbyte decToBcd(byte val)\r\n{\r\n  return ( (val\/10*16) + (val%10) );\r\n}\r\n<span style=\"color: #009900;\">\/\/ Convierte binario codificado decimal a n\u00fameros decimales normales<\/span>\r\nbyte bcdToDec(byte val)\r\n{\r\n  return ( (val\/16*10) + (val%16) );\r\n}\r\n\r\n<span style=\"color: #009900;\">\/\/ 1) Establece la fecha y la hora en el ds1307 \u00a0\r\n\/\/ 2) Inicia el reloj \r\n\/\/ 3) Establece el modo de hora de reloj a 24 horas \r\n\/\/ Se supone que est\u00e1 pasando n\u00fameros v\u00e1lidos, probablemente \u00a0\r\n\/\/ tendr\u00e1 que controlar poner n\u00fameros v\u00e1lidos.<\/span>\r\nvoid setDateDs1307() {\r\n<span style=\"color: #009900;\">\/\/ Uso de (byte) tipo de conversi\u00f3n ASCII y matem\u00e1ticas para alcanzar el resultado. <\/span>\r\n   second = (byte) ((Serial.read() - 48) * 10 + (Serial.read() - 48));\r\n   minute = (byte) ((Serial.read() - 48) * 10 + (Serial.read() - 48));\r\n   hour   = (byte) ((Serial.read() - 48) * 10 + (Serial.read() - 48));\r\n   dayOfWeek  = (byte) (Serial.read() - 48);\r\n   dayOfMonth = (byte) ((Serial.read() - 48) * 10 + (Serial.read() - 48));\r\n   month  = (byte) ((Serial.read() - 48) * 10 + (Serial.read() - 48));\r\n   year   = (byte) ((Serial.read() - 48) * 10 + (Serial.read() - 48));\r\n   Wire.beginTransmission(DS1307_I2C_ADDRESS); <span style=\"color: #009900;\">\/\/ Empieza transmisi\u00f3n.<\/span>\r\n   Wire.send(0x00);\r\n   Wire.send(decToBcd(second)); <span style=\"color: #009900;\">\/\/ 0 a bit 7 Inicia el reloj<\/span>\r\n   Wire.send(decToBcd(minute));\r\n   Wire.send(decToBcd(hour)); <span style=\"color: #009900;\">\/\/ Si quiere 12 horas am\/pm tiene que poner \r\n     \/\/ bit 6 (tambi\u00e9n tiene que cambiar readDateDs1307)<\/span>\r\n   Wire.send(decToBcd(dayOfWeek));\r\n   Wire.send(decToBcd(dayOfMonth));\r\n   Wire.send(decToBcd(month));\r\n   Wire.send(decToBcd(year));\r\n   Wire.endTransmission();    <span style=\"color: #009900;\">\/\/ Termina transmisi\u00f3n<\/span>\r\n}\r\n\r\n<span style=\"color: #009900;\">\/\/ Extrae la fecha y el tiempo del ds1307 \r\n \/\/ e imprime el resultado<\/span>\r\nvoid getDateDs1307(){\r\n  <span style=\"color: #009900;\">\/\/ Resetea el registro puntero<\/span>\r\n  Wire.beginTransmission(DS1307_I2C_ADDRESS);\r\n  Wire.send(0x00);\r\n  Wire.endTransmission();\r\n\r\n  Wire.requestFrom(DS1307_I2C_ADDRESS, 7);\r\n\r\n  <span style=\"color: #009900;\">\/\/ Alguna necesitar\u00e1 enmascarar porque \r\n  \/\/ ciertos bits son bits de control<\/span>\r\n  second     = bcdToDec(Wire.receive() &amp; 0x7f);\r\n  minute     = bcdToDec(Wire.receive());\r\n  hour       = bcdToDec(Wire.receive() &amp; 0x3f); <span style=\"color: #009900;\">\/\/ Tiene que cambiar esto para 12 hora am\/pm.<\/span>\r\n  dayOfWeek  = bcdToDec(Wire.receive());\r\n  dayOfMonth = bcdToDec(Wire.receive());\r\n  month      = bcdToDec(Wire.receive());\r\n  year       = bcdToDec(Wire.receive());\r\n\r\n if (hour &lt; 10) Serial.print(\"0\");\r\n  Serial.print(hour, DEC);\r\n  Serial.print(\":\");\r\n if (minute &lt; 10) Serial.print(\"0\");\r\n  Serial.print(minute, DEC);\r\n  Serial.print(\":\");\r\n  if (second &lt; 10) Serial.print(\"0\");\r\n  Serial.print(second, DEC);\r\n  Serial.print(\"  \");\r\n  if (dayOfMonth &lt; 10) Serial.print(\"0\");\r\n  Serial.print(dayOfMonth, DEC);\r\n  Serial.print(\"-\"); \r\n\r\n<span style=\"color: #009900;\">\/\/ if (month &lt; 10) Serial.print(\"0\"); \r\n \/\/ esto para poner mes de 01 a 12 \r\n \/\/ Serial.print(month, DEC);<\/span>\r\n switch (month)  <span style=\"color: #009900;\">\/\/ pone el nombre del mes<\/span>\r\n   {\r\n    case 1:      Serial.print(\"Ene\");       break;\r\n    case 2:      Serial.print(\"Feb\");       break;\r\n    case 3:      Serial.print(\"Mar\");       break;\r\n    case 4:      Serial.print(\"Abr\");       break;\r\n    case 5:      Serial.print(\"May\");       break;\r\n    case 6:      Serial.print(\"Jun\");       break;\r\n    case 7:      Serial.print(\"Jul\");       break;\r\n    case 8:      Serial.print(\"Ago\");       break;\r\n    case 9:      Serial.print(\"Sep\");       break;\r\n    case 10:     Serial.print(\"Oct\");       break;\r\n    case 11:     Serial.print(\"Nov\");       break;\r\n    case 12:     Serial.print(\"Dic\");       break;\r\n   }\r\n  Serial.print(\"-\");\r\n  Serial.print(\"20\");\r\n  if (year &lt; 10) Serial.print(\"0\");\r\n  Serial.print(year, DEC);\r\n  <span style=\"color: #009900;\">\/\/ Serial.print(\" Hoy es:\"); \r\n   \/\/ D\u00eda de la semana:<\/span>\r\n switch (dayOfWeek) <span style=\"color: #009900;\">\/\/ Esto pone nombre del d\u00eda<\/span>\r\n   {\r\n    case 1:      Serial.println(\" Lunes\");        break;\r\n    case 2:      Serial.println(\" Martes\");       break;\r\n    case 3:      Serial.println(\" Miercoles\");    break;\r\n    case 4:      Serial.println(\" Jueves\");       break;\r\n    case 5:      Serial.println(\" Viernes\");      break;\r\n    case 6:      Serial.println(\" Sabado\");       break;\r\n    case 7:      Serial.println(\" Domingo\");      break;\r\n   }\r\n}\r\n<span style=\"color: #009900;\">\/\/<\/span>\r\nvoid lectura()\r\n{\r\n<span style=\"color: #009900;\">\/\/ == modificado, puesto aqu\u00ed para que lea bien<\/span>\r\n int hour;\r\n int minute;\r\n int second;\r\n int month;\r\n int dayOfWeek;\r\n int dayOfMonth;\r\n int year;\r\n<span style=\"color: #009900;\">\/\/ === \/\/ Below required to reset the register address to 0.<\/span>\r\n Wire.beginTransmission(104);<span style=\"color: #009900;\">\/\/ transmit to device #104, the ds1307<\/span>\r\n Wire.send(0x00);\r\n Wire.endTransmission(); <span style=\"color: #009900;\">\/\/ stop transmitting<\/span>\r\n\r\n Wire.requestFrom(104, 7);<span style=\"color: #009900;\">\/\/ request 7 bytes from slave ds1307, \r\n  \/\/ we'll assume it'll send them all even though it doesn't have to<\/span>\r\n second = Wire.receive();\r\n minute = Wire.receive();\r\n hour = Wire.receive();\r\n dayOfWeek = Wire.receive();\r\n dayOfMonth = Wire.receive();\r\n month = Wire.receive();\r\n year = Wire.receive();\r\n\r\n<span style=\"color: #009900;\">\/\/ Convertir todos los valores BCD que \r\n \/\/ podr\u00e1n tener \"decenas\" a decimal. \r\n \/\/ Mucha gente en arduino hace esto w\/shits pero esto \r\n \/\/ solamente lo veo m\u00e1s f\u00e1cil.<\/span>\r\n hour=hour\/16 * 10 + hour % 16;\r\n minute=minute\/16 * 10 + minute % 16;\r\n second=second\/16 * 10 + second % 16;\r\n dayOfMonth=dayOfMonth\/16 * 10 + dayOfMonth % 16;\r\n month=month\/16 * 10 + month % 16;\r\n year=2000 + year\/16 * 10 + year % 16;\r\n\r\n<span style=\"color: #009900;\"> \/\/ Algunas fiestas<\/span>\r\n  Serial.print (\"HOLA, hoy es: \");\r\n  if (month == 12 &amp;&amp; dayOfMonth == 25){ Serial.println (\"NAVIDAD \"); }\r\n  if (month == 12 &amp;&amp; dayOfMonth == 31){ Serial.println (\"FIN DE A? \"); }\r\n  if (month == 01 &amp;&amp; dayOfMonth == 01){ Serial.println (\"FELIZ A? NUEVO \"); }\r\n  if (month == 03 &amp;&amp; dayOfMonth == 17){ Serial.println (\"S. JOSE, FALLAS \"); }\r\n<span style=\"color: #009900;\"> \/\/ if (month == XX &amp;&amp; dayOfMonth == XX) \r\n  \/\/ { Serial.print (\"Pon el cumple de xxx \"); } <\/span>\r\n\r\nif (year &lt; 10)\r\n { Serial.print(\"0\");\r\n }\r\n Serial.print(year);\r\n Serial.print(\"-\");\r\n if (month &lt; 10)\r\n { Serial.print(\"0\");\r\n }\r\n Serial.print(month);\r\n Serial.print(\"-\");\r\n if (dayOfMonth &lt; 10)\r\n { Serial.print(\"0\");\r\n }\r\n Serial.print(dayOfMonth);\r\n Serial.print(\" \");\r\n if (hour &lt; 10)\r\n { Serial.print(\"0\");\r\n }\r\n Serial.print(hour);\r\n Serial.print(\":\");\r\n if (minute &lt; 10)\r\n { Serial.print(\"0\");\r\n }\r\n Serial.print(minute);\r\n Serial.print(\":\");\r\n if (second &lt; 10)\r\n { Serial.print(\"0\");\r\n }\r\n Serial.print(second);\r\n Serial.print(\" \"); \r\n\r\n<span style=\"color: #009900;\">\/\/ Serial.print(\" \"); \r\n\/\/ Esto pone nombre del d\u00eda de la semana: <\/span>\r\nswitch (dayOfWeek)\r\n   {\r\n    case 1:      Serial.println(\"  Lunes\");       break;\r\n    case 2:      Serial.println(\"  Martes\");      break;\r\n    case 3:      Serial.println(\"  Miercoles\");   break;\r\n    case 4:      Serial.println(\"  Jueves\");      break;\r\n    case 5:      Serial.println(\"  Viernes\");     break;\r\n    case 6:      Serial.println(\"  Sabado\");      break;\r\n    case 7:      Serial.println(\"  Domingo\");     break;\r\n   }\r\n delay(1000);  <span style=\"color: #009900;\">\/\/ espera 1 segundo.<\/span>\r\n} \r\n\r\nvoid setup()  {\r\n  Wire.begin();\r\n  Serial.begin(57600);\r\n  pinMode(ledpin, OUTPUT); <span style=\"color: #009900;\">\/\/ para el LED<\/span>\r\n }\r\n\r\nvoid loop()\r\n{\r\n if (Serial.available()) <span style=\"color: #009900;\">\/\/ busca car\u00e1cter en serie y procesa si se encuentra<\/span>\r\n {\r\n  command = Serial.read();\r\n  if (command == 84 or command == 116) <span style=\"color: #009900;\">\r\n  \/\/ Si command = \"T\" o \"t\" xa establecer fecha<\/span>\r\n  {\r\n   setDateDs1307();\r\n   getDateDs1307();\r\n   Serial.println(\" \");\r\n  }\r\n   else if (command == 81 or command == 113) <span style=\"color: #009900;\">\/\/Si command = \"Q\" o \"q\" funciones de memoria<\/span>\r\n   {\r\n    delay(50);\r\n    if (Serial.available())\r\n    {\r\n     command = Serial.read();\r\n    if (command == 49) <span style=\"color: #009900;\">\/\/ Si command = \"1\" RTC1307 Inicializa Memoria -<\/span>\r\n     {\r\n   <span style=\"color: #009900;\"> \/\/ Todos los datos se establecen en 255 (0xff). \r\n  \/\/ Por lo tanto 255 o 0 ser\u00e1 un valor no v\u00e1lido. \r\n  \/\/255 ser\u00e1 el valor de inicio y 0 ser\u00e1 considerado un error <\/span>\r\n  Wire.beginTransmission(DS1307_I2C_ADDRESS);\r\n  <span style=\"color: #009900;\">\/\/ que se produce cuando el RTC est\u00e1n modo de bater\u00eda.<\/span>\r\n  Wire.send(0x08);<span style=\"color: #009900;\">\/\/ Ajusta el registro puntero un poco \r\n\/\/ m\u00e1s all\u00e1 los registros de fecha\/hora.<\/span>\r\n  for (i = 1; i &lt;= 27; i++)\r\n   { Wire.send(0xff);\r\n    delay(60);   <span style=\"color: #009900;\">\/\/ Al poner 50 reduce tiempo respuesta. Ajusta el reloj??<\/span>\r\n   }  <span style=\"color: #009900;\">\/\/ las l\u00edneas comentadas que siguen, no parecen \r\n   \/\/ necesarias, descomentar si procede.<\/span>\r\n   Wire.endTransmission();\r\n   getDateDs1307();\r\n   <span style=\"color: #009900;\">\/\/ Serial.println(\": RTC1307 Initialized Memory\");<\/span>\r\n   }\r\n   else if (command == 50)  <span style=\"color: #009900;\">\/\/ Si command = \"2\" Volcado de Memoria RTC1307<\/span>\r\n   { getDateDs1307();\r\n   <span style=\"color: #009900;\">\/\/ Serial.println(\": RTC 1307 Dump Begin\");<\/span>\r\n    Wire.beginTransmission(DS1307_I2C_ADDRESS);\r\n    Wire.send(0x00);\r\n    Wire.endTransmission();\r\n    Wire.requestFrom(DS1307_I2C_ADDRESS, 64);\r\n    for (i = 1; i &lt;= 64; i++)\r\n      {\r\n       test = Wire.receive();\r\n       Serial.print(i);\r\n       Serial.print(\":\");\r\n       Serial.println(test, DEC);\r\n      }\r\n      <span style=\"color: #009900;\">\/\/ Serial.println(\" RTC1307 Dump end\");<\/span>\r\n     }\r\n    }\r\n   }\r\n   <span style=\"color: #009900;\">\/\/ rutina para, leer fecha actual<\/span>\r\n  else if (command == 76 or command ==108)\r\n   <span style=\"color: #008000;\">\/\/ Si command = L o l <\/span>   {\r\n    lectura();\r\n    }\r\n   }\r\n   command = 0;       <span style=\"color: #009900;\">\/\/ reset command <\/span>\r\n   delay(70);\r\n}\r\n<span style=\"color: #009900;\">\/\/****************The End*****************\/<\/span><\/pre>\n<h1><strong><span style=\"color: #000080;\">Que hace el c\u00f3digo.<\/span><\/strong><\/h1>\n<p style=\"margin-top: 12px; margin-bottom: 12px;\" align=\"justify\">A pesar de que est\u00e1 muy comentado el c\u00f3digo, conviene describir un poco, algunas rutinas del c\u00f3digo, para recalcar su importancia. La siguiente l\u00ednea, se hace la llamada a las librer\u00edas implicadas en el desarrollo del proyecto, este paso no siempre es necesario, sin embargo, es conveniente acostumbrarse a utilizarlo para evitar sorpresas al interpretar los mensajes de error que puedan producirse al procesar el c\u00f3digo.<\/p>\n<pre>#include <span style=\"color: #ff00ff;\">\"Wire.h\"<\/span><\/pre>\n<p style=\"margin-top: 12px; margin-bottom: 12px;\" align=\"justify\">La siguiente l\u00ednea (en este caso), le indica al compilador la direcci\u00f3n donde debe empezar la lectura de datos del DS1307A que es, <strong>104<\/strong> en decimal, en hex <strong>68h<\/strong> y en binario <strong>b1101000<\/strong>. El lector, debe tener muy en cuenta, lo que recomienda el fabricante en sus Hojas de Datos, evitando as\u00ed quebraderos de cabeza.<\/p>\n<pre>#define DS1307_I2C_ADDRESS 0x68  <span style=\"color: #009900;\">\/\/ Esta es la address I2C <\/span><\/pre>\n<p style=\"margin-top: 12px; margin-bottom: 12px;\" align=\"justify\">A partir de aqu\u00ed se presentan las declaraciones de variables generales<\/p>\n<pre><span style=\"color: #009900;\">\/\/ Variables Globales <\/span>\r\nint command = 0; <span style=\"color: #009900;\">\/\/ Es el comando de car\u00e1cter, \r\n       \/\/ en formato ASCII, enviados desde el puerto serie <\/span>\r\nint i;\r\nlong previousMillis = 0; <span style=\"color: #009900;\">\/\/ almacenar\u00e1 la \u00faltima vez que Temp se ha actualizado<\/span>\r\nbyte second, minute, hour, dayOfWeek, dayOfMonth, month, year;\r\nbyte test;<\/pre>\n<p style=\"margin-top: 12px; margin-bottom: 12px;\" align=\"justify\">Es una buena pr\u00e1ctica, distribuir las rutinas, despu\u00e9s de las declaraciones de variables, antes de la configuraci\u00f3n de estados o <strong>setup();<\/strong>.<\/p>\n<p style=\"margin-top: 12px; margin-bottom: 12px;\" align=\"justify\">Se deben resaltar, las subrutinas de conversi\u00f3n de decimal a binario y viceversa, ambas las podemos ver en:<\/p>\n<pre><span style=\"color: #009900;\">\/\/ Convierte n\u00fameros decimales normales a binario codificado decimal<\/span>\r\nbyte decToBcd(byte val)\r\n{\r\n  return ( (val\/10*16) + (val%10) );\r\n}\r\n<span style=\"color: #009900;\">\/\/ Convierte binario codificado decimal a n\u00fameros decimales normales<\/span>\r\nbyte bcdToDec(byte val)\r\n{\r\n  return ( (val\/16*10) + (val%16) );\r\n}<\/pre>\n<p style=\"margin-top: 12px; margin-bottom: 12px;\" align=\"justify\">No menos importante es la subrutina matem\u00e1tica de (byte) tipo de conversi\u00f3n ASCII (que interpretar\u00e1 los datos le\u00eddos a d\u00edgitos caracter\u00edsticos de presentaci\u00f3n de la fecha), presente en el c\u00f3digo como:<\/p>\n<pre>   second = (byte) ((Serial.read() - 48) * 10 + (Serial.read() - 48));\r\n   minute = (byte) ((Serial.read() - 48) * 10 + (Serial.read() - 48));\r\n   hour   = (byte) ((Serial.read() - 48) * 10 + (Serial.read() - 48));\r\n   dayOfWeek  = (byte) (Serial.read() - 48);\r\n   dayOfMonth = (byte) ((Serial.read() - 48) * 10 + (Serial.read() - 48));\r\n   month  = (byte) ((Serial.read() - 48) * 10 + (Serial.read() - 48));\r\n   year   = (byte) ((Serial.read() - 48) * 10 + (Serial.read() - 48));\r\n   Wire.beginTransmission(DS1307_I2C_ADDRESS); <span style=\"color: #009900;\">\/\/ Empieza transmisi\u00f3n.<\/span>\r\n   Wire.send(0x00);\r\n   Wire.send(decToBcd(second));   <span style=\"color: #009900;\">\/\/ 0 a bit 7 Inicia el reloj<\/span>\r\n   Wire.send(decToBcd(minute));\r\n   Wire.send(decToBcd(hour));     <span style=\"color: #009900;\">\/\/ Si quiere 12 horas am\/pm tiene que poner \/\/ bit 6 (tambi\u00e9n tiene que cambiar readDateDs1307)<\/span>\r\n   Wire.send(decToBcd(dayOfWeek));\r\n   Wire.send(decToBcd(dayOfMonth));\r\n   Wire.send(decToBcd(month));\r\n   Wire.send(decToBcd(year));\r\n   Wire.endTransmission();    <span style=\"color: #009900;\">\/\/ Termina transmisi\u00f3n<\/span><\/pre>\n<p style=\"margin-top: 12px; margin-bottom: 12px;\" align=\"justify\">Por cierto, observemos que, para leer de un dispositivo, se inicia con un comando como:<\/p>\n<p><span style=\"color: #6699cc;\">Wire.beginTransmission<\/span>(DS1307_I2C_ADDRESS)<\/p>\n<p>y debe terminar con el correspondiente:<\/p>\n<p><span style=\"color: #6699cc;\">Wire.endTransmission();<\/span> para cerrar la transmisi\u00f3n. Esto es muy importante.<\/p>\n<p style=\"margin-top: 12px; margin-bottom: 12px;\" align=\"justify\"><strong>Otra rutina interesante<\/strong> en este proyecto es la que se encarga de extraer la fecha y el tiempo del registro interno del ds1307 y que nos permite imprimir el resultado, se trata de la rutina siguiente:<\/p>\n<pre>void getDateDs1307(){\r\n   <span style=\"color: #009900;\">\/\/ Primero resetea el registro puntero <\/span>\r\n   Wire.beginTransmission(DS1307_I2C_ADDRESS);\r\n   Wire.send(0x00);  <span style=\"color: #009900;\">\/\/ pone todo a cero. <\/span>\r\n   Wire.endTransmission();\r\n   <span style=\"color: #009900;\">\/\/ luego requiere la lectura de los primeros 7bytes, donde est\u00e1n los datos que necesitamos.<\/span>\r\n   Wire.requestFrom(DS1307_I2C_ADDRESS, 7);\r\n\r\n   <span style=\"color: #009900;\">\/\/ Alguna orden necesitar\u00e1 enmascarar porque ciertos bits son bits de control<\/span>\r\n   second     = bcdToDec(Wire.receive() &amp; 0x7f);\r\n   minute     = bcdToDec(Wire.receive());\r\n   hour       = bcdToDec(Wire.receive() &amp; 0x3f);<span style=\"color: #009900;\">\/\/ Tiene que cambiar esto para 12 hora am\/pm.<\/span>\r\n   dayOfWeek  = bcdToDec(Wire.receive());\r\n   dayOfMonth = bcdToDec(Wire.receive());\r\n   month      = bcdToDec(Wire.receive());\r\n   year       = bcdToDec(Wire.receive());\r\n   ...\r\n   }<\/pre>\n<p style=\"margin-top: 12px; margin-bottom: 12px;\" align=\"justify\">A este c\u00f3digo, le sigue una forma de presentaci\u00f3n de los datos extra\u00eddos y que cada cual puede mostrar como mejor le parezca, siempre respetando las reglas de c\u00f3digo. Entre los datos se pueden mostrar los segundos, minutos, horas, d\u00eda de la semana y la forma de fecha tradicional de cada zona horaria. A este respecto, debo indicar que aunque en principio no se aprecie, el modo que se deber\u00e1 utilizar, por sus ventajas es el de <strong>AA-MM-DD<\/strong>, en lugar de <strong>dd-mm-aa<\/strong>. A la hora de ordenar una lista de fechas, viene a demostrar su importancia.<\/p>\n<p style=\"margin-top: 12px; margin-bottom: 12px;\" align=\"justify\">Quiero resaltar que he dado nombre a los meses y los d\u00edas de la semana en espa\u00f1ol y otra particularidad es el hecho de mostrar el mensaje de la festividad del d\u00eda o la atenci\u00f3n recordatoria de la onom\u00e1stica de alguna persona af\u00edn, cuando pongo:<\/p>\n<pre><span style=\"color: #009900;\">\/\/ Algunas fiestas<\/span>\r\nSerial.print (\"HOLA, hoy es: \");\r\nif (month == XX &amp;&amp; dayOfMonth == XX)\r\n { Serial.print (\"Pon el cumple de tu pareja \");\r\n }<\/pre>\n<p style=\"margin-top: 12px; margin-bottom: 12px;\" align=\"justify\">Observar la variante de la orden <strong>Serial.print(\u00bb \u00ab);<\/strong> que muestra el contenido que hay entre las comillas y\/o el valor de la variable y sigue en la misma l\u00ednea, en cambio la orden <strong>Serial.println(\u00bb \u00ab);<\/strong> que muestra el contenido que hay entre las comillas y\/o el valor de la variable y sigue con un fin de l\u00ednea y un salto de l\u00ednea (CR\/CL).<\/p>\n<p style=\"margin-top: 12px; margin-bottom: 12px;\" align=\"justify\">Por Ej. de Serial.print():<\/p>\n<p><span style=\"color: #0066ff;\">int<\/span> b = 79;<\/p>\n<p><span style=\"color: #0066ff;\">Serial.print<\/span>(b, DEC) <span style=\"color: #009900;\">\/\/ muestra o env\u00eda el valor de b como un n\u00famero decimal en\u00a0 caracteres ASCII. Mostrar\u00e1 la cadena \u00ab79\u00bb<\/span><\/p>\n<p><span style=\"color: #0066ff;\">Serial.print<\/span>(b, HEX) <span style=\"color: #009900;\">\/\/ muestra o env\u00eda el valor de b como un n\u00famero n\u00famero (79) decimal, en valor hexadecimal \u00ab4F\u00bb.<\/span><\/p>\n<p><span style=\"color: #0066ff;\">Serial.print<\/span>(b, OCT) <span style=\"color: #009900;\">\/\/ muestra o env\u00eda el valor de b como un n\u00famero n\u00famero (79) decimal, en valor octal \u00ab117\u00bb.<\/span><\/p>\n<p><span style=\"color: #0066ff;\">Serial.print<\/span>(b, BIN) <span style=\"color: #009900;\"> \/\/ muestra o env\u00eda el valor de b como un n\u00famero n\u00famero (79) decimal, en valor binario \u00ab1001111\u00bb.<\/span><\/p>\n<h1><strong><span style=\"color: #000080;\">Sentencia SWITCH \/ case.<\/span><\/strong><\/h1>\n<p style=\"margin-top: 12px; margin-bottom: 12px;\" align=\"justify\">El principiante, debe fijarse en la estructura de la sentencia <strong>SWITCH \/ case<\/strong> y en la forma que aqu\u00ed se ha empleado. SWITCH, puede tomarse como interruptor o mejor, conmutador, ya que depende de la entrada, optar\u00e1 por dar una \u00fanica salida para esa entrada, si cambia el valor de la entrada as\u00ed har\u00e1 la salida. Aqu\u00ed, se aplica dos veces sucesivas, una para determinar el nombre del mes que corresponde y en segundo lugar para el nombre del d\u00eda de la semana. En al primer caso el valor que adquiera la variable \u00abmonth\u00bb, determinar\u00e1 el nombre del mes, as\u00ed mismo el valor que tome \u00abdayOfWeek\u00bb determinar\u00e1 a su vez el nombre del d\u00eda de la semana, parece f\u00e1cil.<\/p>\n<h1><strong><span style=\"color: #000080;\">La novedad.<\/span><\/strong><\/h1>\n<p style=\"margin-top: 12px; margin-bottom: 12px;\" align=\"justify\">Hasta este punto, podemos decir que ya estaba claro el listado del c\u00f3digo, la \u00abnovedad\u00bb, reside en este punto que, hasta ahora, no pod\u00edamos consultar la fecha y hora actuales, salvo que aplic\u00e1ramos un nuevo tiempo <strong>T<\/strong> en la entrada (que, por otra parte se antoja compleja). Aqu\u00ed empieza la parte m\u00e1s amigable de este reloj en tiempo real, ya que cada vez que deseemos conocer la hora actual, bastar\u00e1 con introducir el car\u00e1cter \u00abL\u00bb o en min\u00fasculas \u00abl\u00bb de lectura y el programa responder\u00e1 mostrando en el monitor la fecha, hora y si lo hemos previsto la fiesta que le corresponde, ah\u00ed esta la novedad.<\/p>\n<p style=\"margin-top: 12px; margin-bottom: 12px;\" align=\"justify\">De esto se encarga la subrutina <strong>lectura();<\/strong>, el interesado puede revisar el c\u00f3digo para comprender los pasos que se siguen para lograr este resultado.<\/p>\n<p style=\"margin-top: 12px; margin-bottom: 12px;\" align=\"justify\"><a href=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/11\/subrutina-lectura.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1373\" title=\"subrutina lectura\" src=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/11\/subrutina-lectura.jpg\" alt=\"\" width=\"560\" height=\"75\" srcset=\"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/11\/subrutina-lectura.jpg 560w, https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/11\/subrutina-lectura-300x40.jpg 300w, https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/11\/subrutina-lectura-500x66.jpg 500w\" sizes=\"auto, (max-width: 560px) 100vw, 560px\" \/><\/a>Aunque, para ser exactos, debe realizar unos peque\u00f1os &#8216;retoques&#8217; al c\u00f3digo, para lograr el mismo resultado o incluso mejorarlo. En un pr\u00f3ximo art\u00edculo, veremos c\u00f3mo mejorar el c\u00f3digo. \u00bfSe atreve alguien?.<\/p>\n<h1><span style=\"color: #000080;\"><strong>A tener en cuenta (nota del fabricante).<\/strong><\/span><\/h1>\n<p style=\"line-height: 130%; margin-top: 6px; margin-bottom: 3px; text-align: justify;\" align=\"left\">Cuando el sistema se enciende, la posici\u00f3n de RAM 0x3f ser\u00e1 comparada con el valor 0x20. Si \u00e9ste existe, entonces, esto quiere decir que la bater\u00eda de reserva ha salvado el contenido de la RAM y todos los registros, por lo tanto, han sido inicializados. Entonces el software se salta la secuencia inicializaci\u00f3n.<\/p>\n<p style=\"line-height: 130%; margin-top: 6px; margin-bottom: 3px; text-align: justify;\" align=\"left\">Si no se encuentra el valor 0x20 en dicha direcci\u00f3n, entonces el dispositivo Real Time Clock es inicializado a los valores siguientes:<\/p>\n<table id=\"table1\" style=\"height: 243px;\" width=\"421\" border=\"1\" align=\"center\">\n<tbody>\n<tr>\n<td align=\"center\" width=\"50\"><span style=\"font-family: Verdana,Arial,Helvetica,sans-serif;\"><strong>Address<\/strong><\/span><\/td>\n<td align=\"center\" width=\"50\"><\/td>\n<td align=\"left\" width=\"105\"><span style=\"font-family: Courier; font-size: x-small;\"><strong>Valor Inicializaci\u00f3n <\/strong><\/span><\/td>\n<\/tr>\n<tr>\n<td align=\"center\" width=\"50\"><strong>0<\/strong><\/td>\n<td align=\"left\" width=\"50\"><span style=\"font-family: Verdana,Arial,Helvetica,sans-serif;\">Seconds<\/span><\/td>\n<td align=\"left\" width=\"105\"><span style=\"font-family: Courier;\">0x59 (bit 7 cleared).<\/span><\/td>\n<\/tr>\n<tr>\n<td align=\"center\" width=\"50\"><strong>1<\/strong><\/td>\n<td align=\"left\" width=\"50\"><span style=\"font-family: Verdana,Arial,Helvetica,sans-serif; font-size: x-small;\">Minutes<\/span><\/td>\n<td align=\"left\" width=\"105\"><span style=\"font-family: Courier; font-size: x-small;\">0x59<\/span><\/td>\n<\/tr>\n<tr>\n<td align=\"center\" width=\"50\"><strong>2<\/strong><\/td>\n<td align=\"left\" width=\"50\"><span style=\"font-family: Verdana,Arial,Helvetica,sans-serif;\">Hours<\/span><\/td>\n<td align=\"left\" width=\"105\"><span style=\"font-family: Courier;\">0x24 (bit 6 cleared).<\/span><\/td>\n<\/tr>\n<tr>\n<td align=\"center\" width=\"50\"><strong>3<\/strong><\/td>\n<td align=\"left\" width=\"50\"><span style=\"font-family: Verdana,Arial,Helvetica,sans-serif; font-size: x-small;\">Day<\/span><\/td>\n<td align=\"left\" width=\"105\"><span style=\"font-family: Courier; font-size: x-small;\">0x07<\/span><\/td>\n<\/tr>\n<tr>\n<td align=\"center\" width=\"50\"><strong>4<\/strong><\/td>\n<td align=\"left\" width=\"50\"><span style=\"font-family: Verdana,Arial,Helvetica,sans-serif; font-size: x-small;\">Date<\/span><\/td>\n<td align=\"left\" width=\"105\"><span style=\"font-family: Courier; font-size: x-small;\">0x31<\/span><\/td>\n<\/tr>\n<tr>\n<td align=\"center\" width=\"50\"><strong>5<\/strong><\/td>\n<td align=\"left\" width=\"50\"><span style=\"font-family: Verdana,Arial,Helvetica,sans-serif; font-size: x-small;\">Month<\/span><\/td>\n<td align=\"left\" width=\"105\"><span style=\"font-family: Courier; font-size: x-small;\">0x12<\/span><\/td>\n<\/tr>\n<tr>\n<td align=\"center\" width=\"50\"><strong>6<\/strong><\/td>\n<td align=\"left\" width=\"50\"><span style=\"font-family: Courier; font-size: x-small;\">Year<\/span><\/td>\n<td align=\"left\" width=\"105\"><span style=\"font-family: Courier; font-size: x-small;\">0x99<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p style=\"line-height: 130%; margin-top: 6px; margin-bottom: 3px; text-align: justify;\" align=\"left\"><span id=\"result_box\" lang=\"es\">Estos son todos los n\u00fameros de c\u00f3digo binario decimal con que trabaja el <\/span>dispositivo <span id=\"result_box\" lang=\"es\">reloj de tiempo real. Tenga en cuenta que los valores de inicializaci\u00f3n se han elegido para que pueda entender lo que la pantalla est\u00e1 mostrando.<\/span><\/p>\n<p style=\"line-height: 130%; margin-top: 6px; margin-bottom: 3px; text-align: justify;\" align=\"left\">Como siempre, comentarios, criticas y sugerencias para mejorar este art\u00edculo, son bienvenidos y apreciados.<\/p>\n<p align=\"right\"><a href=\"#inici\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright\" src=\"http:\/\/s3.subirimagenes.com:81\/privadas\/previo\/thump_1251680uparrowsmall.gif\" alt=\"\" width=\"25\" height=\"19\" \/><\/a><\/p>\n<p style=\"margin-top: 12px; margin-bottom: 12px;\" align=\"justify\">\n","protected":false},"excerpt":{"rendered":"<p>PRACTICO RELOJ. En el tutorial ds1307reloj ya puse de manifiesto las caracter\u00edsticas y algunas capacidades de este peque\u00f1o y pr\u00e1ctico dispositivo, en el que document\u00e9 el c\u00f3digo que permit\u00eda poner en hora el reloj que soporta el dispositivo DS1307. Ahora, tratar\u00e9 de llevar a cabo un proyecto en el que podamos dar cierta utilidad a [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":1370,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"footnotes":""},"categories":[22,15,38],"tags":[81,82,173,151,172,131],"class_list":["post-344","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-arduino","category-microcontroladores","category-practico-reloj","tag-ds1307","tag-eeprom","tag-real-time-clock","tag-reloj-digital","tag-rs232","tag-rtc"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.9 - aioseo.com -->\n\t<meta name=\"description\" content=\"PRACTICO RELOJ. En el tutorial ds1307reloj ya puse de manifiesto las caracter\u00edsticas y algunas capacidades de este peque\u00f1o y pr\u00e1ctico dispositivo, en el que document\u00e9 el c\u00f3digo que permit\u00eda poner en hora el reloj que soporta el dispositivo DS1307. Ahora, tratar\u00e9 de llevar a cabo un proyecto en el que podamos dar cierta utilidad a\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Vicente Garc\u00eda\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/www.diarioelectronicohoy.com\/blog\/practico-reloj-ds1307\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.9\" \/>\n\t\t<meta property=\"og:locale\" content=\"es_ES\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Electr\u00f3nica Pr\u00e1ctica Aplicada - T\u00e9cnicas de Electr\u00f3nica Anal\u00f3gica y Digital\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Pr\u00e1ctico reloj DS1307 - Electr\u00f3nica Pr\u00e1ctica Aplicada\" \/>\n\t\t<meta property=\"og:description\" content=\"PRACTICO RELOJ. En el tutorial ds1307reloj ya puse de manifiesto las caracter\u00edsticas y algunas capacidades de este peque\u00f1o y pr\u00e1ctico dispositivo, en el que document\u00e9 el c\u00f3digo que permit\u00eda poner en hora el reloj que soporta el dispositivo DS1307. Ahora, tratar\u00e9 de llevar a cabo un proyecto en el que podamos dar cierta utilidad a\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/www.diarioelectronicohoy.com\/blog\/practico-reloj-ds1307\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2010-11-16T13:52:47+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-06-13T17:46:14+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Pr\u00e1ctico reloj DS1307 - Electr\u00f3nica Pr\u00e1ctica Aplicada\" \/>\n\t\t<meta name=\"twitter:description\" content=\"PRACTICO RELOJ. En el tutorial ds1307reloj ya puse de manifiesto las caracter\u00edsticas y algunas capacidades de este peque\u00f1o y pr\u00e1ctico dispositivo, en el que document\u00e9 el c\u00f3digo que permit\u00eda poner en hora el reloj que soporta el dispositivo DS1307. Ahora, tratar\u00e9 de llevar a cabo un proyecto en el que podamos dar cierta utilidad a\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BlogPosting\",\"@id\":\"https:\\\/\\\/www.diarioelectronicohoy.com\\\/blog\\\/practico-reloj-ds1307#blogposting\",\"name\":\"Pr\\u00e1ctico reloj DS1307 - Electr\\u00f3nica Pr\\u00e1ctica Aplicada\",\"headline\":\"Pr\\u00e1ctico reloj DS1307\",\"author\":{\"@id\":\"https:\\\/\\\/www.diarioelectronicohoy.com\\\/blog\\\/author\\\/vicente#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/www.diarioelectronicohoy.com\\\/blog\\\/#organization\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/www.diarioelectronicohoy.com\\\/blog\\\/imagenes\\\/2010\\\/11\\\/ds1307-reloj.jpg\",\"width\":260,\"height\":240},\"datePublished\":\"2010-11-16T14:52:47+01:00\",\"dateModified\":\"2019-06-13T19:46:14+02:00\",\"inLanguage\":\"es-ES\",\"commentCount\":3,\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.diarioelectronicohoy.com\\\/blog\\\/practico-reloj-ds1307#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.diarioelectronicohoy.com\\\/blog\\\/practico-reloj-ds1307#webpage\"},\"articleSection\":\"Arduino, Micros, Practico reloj, DS1307, EEPROM, Real Time Clock, reloj digital, RS232, RTC\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.diarioelectronicohoy.com\\\/blog\\\/practico-reloj-ds1307#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.diarioelectronicohoy.com\\\/blog#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.diarioelectronicohoy.com\\\/blog\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.diarioelectronicohoy.com\\\/blog\\\/category\\\/microcontroladores#listItem\",\"name\":\"Micros\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.diarioelectronicohoy.com\\\/blog\\\/category\\\/microcontroladores#listItem\",\"position\":2,\"name\":\"Micros\",\"item\":\"https:\\\/\\\/www.diarioelectronicohoy.com\\\/blog\\\/category\\\/microcontroladores\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.diarioelectronicohoy.com\\\/blog\\\/category\\\/microcontroladores\\\/arduino#listItem\",\"name\":\"Arduino\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.diarioelectronicohoy.com\\\/blog#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.diarioelectronicohoy.com\\\/blog\\\/category\\\/microcontroladores\\\/arduino#listItem\",\"position\":3,\"name\":\"Arduino\",\"item\":\"https:\\\/\\\/www.diarioelectronicohoy.com\\\/blog\\\/category\\\/microcontroladores\\\/arduino\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.diarioelectronicohoy.com\\\/blog\\\/category\\\/microcontroladores\\\/arduino\\\/practico-reloj#listItem\",\"name\":\"Practico reloj\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.diarioelectronicohoy.com\\\/blog\\\/category\\\/microcontroladores#listItem\",\"name\":\"Micros\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.diarioelectronicohoy.com\\\/blog\\\/category\\\/microcontroladores\\\/arduino\\\/practico-reloj#listItem\",\"position\":4,\"name\":\"Practico reloj\",\"item\":\"https:\\\/\\\/www.diarioelectronicohoy.com\\\/blog\\\/category\\\/microcontroladores\\\/arduino\\\/practico-reloj\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.diarioelectronicohoy.com\\\/blog\\\/practico-reloj-ds1307#listItem\",\"name\":\"Pr\\u00e1ctico reloj DS1307\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.diarioelectronicohoy.com\\\/blog\\\/category\\\/microcontroladores\\\/arduino#listItem\",\"name\":\"Arduino\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.diarioelectronicohoy.com\\\/blog\\\/practico-reloj-ds1307#listItem\",\"position\":5,\"name\":\"Pr\\u00e1ctico reloj DS1307\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.diarioelectronicohoy.com\\\/blog\\\/category\\\/microcontroladores\\\/arduino\\\/practico-reloj#listItem\",\"name\":\"Practico reloj\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.diarioelectronicohoy.com\\\/blog\\\/#organization\",\"name\":\"Electr\\u00f3nica Pr\\u00e1ctica Aplicada\",\"description\":\"T\\u00e9cnicas de Electr\\u00f3nica Anal\\u00f3gica y Digital\",\"url\":\"https:\\\/\\\/www.diarioelectronicohoy.com\\\/blog\\\/\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.diarioelectronicohoy.com\\\/blog\\\/author\\\/vicente#author\",\"url\":\"https:\\\/\\\/www.diarioelectronicohoy.com\\\/blog\\\/author\\\/vicente\",\"name\":\"Vicente Garc\\u00eda\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/www.diarioelectronicohoy.com\\\/blog\\\/practico-reloj-ds1307#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/e9fb2cbb71e9302e36eba7af946eee6dadb0d651c68c9fd47b7fb4e1ee40a1c8?s=96&d=mm&r=g\",\"width\":96,\"height\":96,\"caption\":\"Vicente Garc\\u00eda\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.diarioelectronicohoy.com\\\/blog\\\/practico-reloj-ds1307#webpage\",\"url\":\"https:\\\/\\\/www.diarioelectronicohoy.com\\\/blog\\\/practico-reloj-ds1307\",\"name\":\"Pr\\u00e1ctico reloj DS1307 - Electr\\u00f3nica Pr\\u00e1ctica Aplicada\",\"description\":\"PRACTICO RELOJ. En el tutorial ds1307reloj ya puse de manifiesto las caracter\\u00edsticas y algunas capacidades de este peque\\u00f1o y pr\\u00e1ctico dispositivo, en el que document\\u00e9 el c\\u00f3digo que permit\\u00eda poner en hora el reloj que soporta el dispositivo DS1307. Ahora, tratar\\u00e9 de llevar a cabo un proyecto en el que podamos dar cierta utilidad a\",\"inLanguage\":\"es-ES\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.diarioelectronicohoy.com\\\/blog\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.diarioelectronicohoy.com\\\/blog\\\/practico-reloj-ds1307#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/www.diarioelectronicohoy.com\\\/blog\\\/author\\\/vicente#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/www.diarioelectronicohoy.com\\\/blog\\\/author\\\/vicente#author\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/www.diarioelectronicohoy.com\\\/blog\\\/imagenes\\\/2010\\\/11\\\/ds1307-reloj.jpg\",\"@id\":\"https:\\\/\\\/www.diarioelectronicohoy.com\\\/blog\\\/practico-reloj-ds1307\\\/#mainImage\",\"width\":260,\"height\":240},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.diarioelectronicohoy.com\\\/blog\\\/practico-reloj-ds1307#mainImage\"},\"datePublished\":\"2010-11-16T14:52:47+01:00\",\"dateModified\":\"2019-06-13T19:46:14+02:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.diarioelectronicohoy.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.diarioelectronicohoy.com\\\/blog\\\/\",\"name\":\"Electr\\u00f3nica Pr\\u00e1ctica Aplicada\",\"description\":\"T\\u00e9cnicas de Electr\\u00f3nica Anal\\u00f3gica y Digital\",\"inLanguage\":\"es-ES\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.diarioelectronicohoy.com\\\/blog\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Pr\u00e1ctico reloj DS1307 - Electr\u00f3nica Pr\u00e1ctica Aplicada","description":"PRACTICO RELOJ. En el tutorial ds1307reloj ya puse de manifiesto las caracter\u00edsticas y algunas capacidades de este peque\u00f1o y pr\u00e1ctico dispositivo, en el que document\u00e9 el c\u00f3digo que permit\u00eda poner en hora el reloj que soporta el dispositivo DS1307. Ahora, tratar\u00e9 de llevar a cabo un proyecto en el que podamos dar cierta utilidad a","canonical_url":"https:\/\/www.diarioelectronicohoy.com\/blog\/practico-reloj-ds1307","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BlogPosting","@id":"https:\/\/www.diarioelectronicohoy.com\/blog\/practico-reloj-ds1307#blogposting","name":"Pr\u00e1ctico reloj DS1307 - Electr\u00f3nica Pr\u00e1ctica Aplicada","headline":"Pr\u00e1ctico reloj DS1307","author":{"@id":"https:\/\/www.diarioelectronicohoy.com\/blog\/author\/vicente#author"},"publisher":{"@id":"https:\/\/www.diarioelectronicohoy.com\/blog\/#organization"},"image":{"@type":"ImageObject","url":"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/11\/ds1307-reloj.jpg","width":260,"height":240},"datePublished":"2010-11-16T14:52:47+01:00","dateModified":"2019-06-13T19:46:14+02:00","inLanguage":"es-ES","commentCount":3,"mainEntityOfPage":{"@id":"https:\/\/www.diarioelectronicohoy.com\/blog\/practico-reloj-ds1307#webpage"},"isPartOf":{"@id":"https:\/\/www.diarioelectronicohoy.com\/blog\/practico-reloj-ds1307#webpage"},"articleSection":"Arduino, Micros, Practico reloj, DS1307, EEPROM, Real Time Clock, reloj digital, RS232, RTC"},{"@type":"BreadcrumbList","@id":"https:\/\/www.diarioelectronicohoy.com\/blog\/practico-reloj-ds1307#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/www.diarioelectronicohoy.com\/blog#listItem","position":1,"name":"Home","item":"https:\/\/www.diarioelectronicohoy.com\/blog","nextItem":{"@type":"ListItem","@id":"https:\/\/www.diarioelectronicohoy.com\/blog\/category\/microcontroladores#listItem","name":"Micros"}},{"@type":"ListItem","@id":"https:\/\/www.diarioelectronicohoy.com\/blog\/category\/microcontroladores#listItem","position":2,"name":"Micros","item":"https:\/\/www.diarioelectronicohoy.com\/blog\/category\/microcontroladores","nextItem":{"@type":"ListItem","@id":"https:\/\/www.diarioelectronicohoy.com\/blog\/category\/microcontroladores\/arduino#listItem","name":"Arduino"},"previousItem":{"@type":"ListItem","@id":"https:\/\/www.diarioelectronicohoy.com\/blog#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/www.diarioelectronicohoy.com\/blog\/category\/microcontroladores\/arduino#listItem","position":3,"name":"Arduino","item":"https:\/\/www.diarioelectronicohoy.com\/blog\/category\/microcontroladores\/arduino","nextItem":{"@type":"ListItem","@id":"https:\/\/www.diarioelectronicohoy.com\/blog\/category\/microcontroladores\/arduino\/practico-reloj#listItem","name":"Practico reloj"},"previousItem":{"@type":"ListItem","@id":"https:\/\/www.diarioelectronicohoy.com\/blog\/category\/microcontroladores#listItem","name":"Micros"}},{"@type":"ListItem","@id":"https:\/\/www.diarioelectronicohoy.com\/blog\/category\/microcontroladores\/arduino\/practico-reloj#listItem","position":4,"name":"Practico reloj","item":"https:\/\/www.diarioelectronicohoy.com\/blog\/category\/microcontroladores\/arduino\/practico-reloj","nextItem":{"@type":"ListItem","@id":"https:\/\/www.diarioelectronicohoy.com\/blog\/practico-reloj-ds1307#listItem","name":"Pr\u00e1ctico reloj DS1307"},"previousItem":{"@type":"ListItem","@id":"https:\/\/www.diarioelectronicohoy.com\/blog\/category\/microcontroladores\/arduino#listItem","name":"Arduino"}},{"@type":"ListItem","@id":"https:\/\/www.diarioelectronicohoy.com\/blog\/practico-reloj-ds1307#listItem","position":5,"name":"Pr\u00e1ctico reloj DS1307","previousItem":{"@type":"ListItem","@id":"https:\/\/www.diarioelectronicohoy.com\/blog\/category\/microcontroladores\/arduino\/practico-reloj#listItem","name":"Practico reloj"}}]},{"@type":"Organization","@id":"https:\/\/www.diarioelectronicohoy.com\/blog\/#organization","name":"Electr\u00f3nica Pr\u00e1ctica Aplicada","description":"T\u00e9cnicas de Electr\u00f3nica Anal\u00f3gica y Digital","url":"https:\/\/www.diarioelectronicohoy.com\/blog\/"},{"@type":"Person","@id":"https:\/\/www.diarioelectronicohoy.com\/blog\/author\/vicente#author","url":"https:\/\/www.diarioelectronicohoy.com\/blog\/author\/vicente","name":"Vicente Garc\u00eda","image":{"@type":"ImageObject","@id":"https:\/\/www.diarioelectronicohoy.com\/blog\/practico-reloj-ds1307#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/e9fb2cbb71e9302e36eba7af946eee6dadb0d651c68c9fd47b7fb4e1ee40a1c8?s=96&d=mm&r=g","width":96,"height":96,"caption":"Vicente Garc\u00eda"}},{"@type":"WebPage","@id":"https:\/\/www.diarioelectronicohoy.com\/blog\/practico-reloj-ds1307#webpage","url":"https:\/\/www.diarioelectronicohoy.com\/blog\/practico-reloj-ds1307","name":"Pr\u00e1ctico reloj DS1307 - Electr\u00f3nica Pr\u00e1ctica Aplicada","description":"PRACTICO RELOJ. En el tutorial ds1307reloj ya puse de manifiesto las caracter\u00edsticas y algunas capacidades de este peque\u00f1o y pr\u00e1ctico dispositivo, en el que document\u00e9 el c\u00f3digo que permit\u00eda poner en hora el reloj que soporta el dispositivo DS1307. Ahora, tratar\u00e9 de llevar a cabo un proyecto en el que podamos dar cierta utilidad a","inLanguage":"es-ES","isPartOf":{"@id":"https:\/\/www.diarioelectronicohoy.com\/blog\/#website"},"breadcrumb":{"@id":"https:\/\/www.diarioelectronicohoy.com\/blog\/practico-reloj-ds1307#breadcrumblist"},"author":{"@id":"https:\/\/www.diarioelectronicohoy.com\/blog\/author\/vicente#author"},"creator":{"@id":"https:\/\/www.diarioelectronicohoy.com\/blog\/author\/vicente#author"},"image":{"@type":"ImageObject","url":"https:\/\/www.diarioelectronicohoy.com\/blog\/imagenes\/2010\/11\/ds1307-reloj.jpg","@id":"https:\/\/www.diarioelectronicohoy.com\/blog\/practico-reloj-ds1307\/#mainImage","width":260,"height":240},"primaryImageOfPage":{"@id":"https:\/\/www.diarioelectronicohoy.com\/blog\/practico-reloj-ds1307#mainImage"},"datePublished":"2010-11-16T14:52:47+01:00","dateModified":"2019-06-13T19:46:14+02:00"},{"@type":"WebSite","@id":"https:\/\/www.diarioelectronicohoy.com\/blog\/#website","url":"https:\/\/www.diarioelectronicohoy.com\/blog\/","name":"Electr\u00f3nica Pr\u00e1ctica Aplicada","description":"T\u00e9cnicas de Electr\u00f3nica Anal\u00f3gica y Digital","inLanguage":"es-ES","publisher":{"@id":"https:\/\/www.diarioelectronicohoy.com\/blog\/#organization"}}]},"og:locale":"es_ES","og:site_name":"Electr\u00f3nica Pr\u00e1ctica Aplicada - T\u00e9cnicas de Electr\u00f3nica Anal\u00f3gica y Digital","og:type":"article","og:title":"Pr\u00e1ctico reloj DS1307 - Electr\u00f3nica Pr\u00e1ctica Aplicada","og:description":"PRACTICO RELOJ. En el tutorial ds1307reloj ya puse de manifiesto las caracter\u00edsticas y algunas capacidades de este peque\u00f1o y pr\u00e1ctico dispositivo, en el que document\u00e9 el c\u00f3digo que permit\u00eda poner en hora el reloj que soporta el dispositivo DS1307. Ahora, tratar\u00e9 de llevar a cabo un proyecto en el que podamos dar cierta utilidad a","og:url":"https:\/\/www.diarioelectronicohoy.com\/blog\/practico-reloj-ds1307","article:published_time":"2010-11-16T13:52:47+00:00","article:modified_time":"2019-06-13T17:46:14+00:00","twitter:card":"summary_large_image","twitter:title":"Pr\u00e1ctico reloj DS1307 - Electr\u00f3nica Pr\u00e1ctica Aplicada","twitter:description":"PRACTICO RELOJ. En el tutorial ds1307reloj ya puse de manifiesto las caracter\u00edsticas y algunas capacidades de este peque\u00f1o y pr\u00e1ctico dispositivo, en el que document\u00e9 el c\u00f3digo que permit\u00eda poner en hora el reloj que soporta el dispositivo DS1307. Ahora, tratar\u00e9 de llevar a cabo un proyecto en el que podamos dar cierta utilidad a"},"aioseo_meta_data":{"post_id":"344","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":null,"created":"2025-01-14 13:10:10","updated":"2026-04-25 14:24:54","seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.diarioelectronicohoy.com\/blog\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.diarioelectronicohoy.com\/blog\/category\/microcontroladores\" title=\"Micros\">Micros<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.diarioelectronicohoy.com\/blog\/category\/microcontroladores\/arduino\" title=\"Arduino\">Arduino<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.diarioelectronicohoy.com\/blog\/category\/microcontroladores\/arduino\/practico-reloj\" title=\"Practico reloj\">Practico reloj<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tPr\u00e1ctico reloj DS1307\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/www.diarioelectronicohoy.com\/blog"},{"label":"Micros","link":"https:\/\/www.diarioelectronicohoy.com\/blog\/category\/microcontroladores"},{"label":"Arduino","link":"https:\/\/www.diarioelectronicohoy.com\/blog\/category\/microcontroladores\/arduino"},{"label":"Practico reloj","link":"https:\/\/www.diarioelectronicohoy.com\/blog\/category\/microcontroladores\/arduino\/practico-reloj"},{"label":"Pr\u00e1ctico reloj DS1307","link":"https:\/\/www.diarioelectronicohoy.com\/blog\/practico-reloj-ds1307"}],"_links":{"self":[{"href":"https:\/\/www.diarioelectronicohoy.com\/blog\/wp-json\/wp\/v2\/posts\/344","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.diarioelectronicohoy.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.diarioelectronicohoy.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.diarioelectronicohoy.com\/blog\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.diarioelectronicohoy.com\/blog\/wp-json\/wp\/v2\/comments?post=344"}],"version-history":[{"count":27,"href":"https:\/\/www.diarioelectronicohoy.com\/blog\/wp-json\/wp\/v2\/posts\/344\/revisions"}],"predecessor-version":[{"id":4839,"href":"https:\/\/www.diarioelectronicohoy.com\/blog\/wp-json\/wp\/v2\/posts\/344\/revisions\/4839"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.diarioelectronicohoy.com\/blog\/wp-json\/wp\/v2\/media\/1370"}],"wp:attachment":[{"href":"https:\/\/www.diarioelectronicohoy.com\/blog\/wp-json\/wp\/v2\/media?parent=344"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.diarioelectronicohoy.com\/blog\/wp-json\/wp\/v2\/categories?post=344"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.diarioelectronicohoy.com\/blog\/wp-json\/wp\/v2\/tags?post=344"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}