Cómo y por qué agregar un reloj en tiempo real a Arduino

Cómo y por qué agregar un reloj en tiempo real a Arduino

Mantener el tiempo en los proyectos de Arduino no es tan fácil como podría pensar: una vez que la conexión de la computadora no está allí, su Arduino sin alimentación simplemente deja de funcionar, incluido su ticker interno.





averigua quién te dejó de seguir en instagram

Para mantener su Arduino sincronizado con el mundo que lo rodea, necesitará lo que se llama un 'módulo de reloj en tiempo real'. Así es como se usa uno.





¿Qué sentido tiene un reloj en tiempo real (RTC)?

Lo más probable es que su computadora sincronice su hora con Internet, pero aún tiene un reloj interno que sigue funcionando incluso sin una conexión a Internet o sin la energía. Cuando usa un Arduino conectado a una computadora, tiene acceso a la hora exacta proporcionada por el reloj de su sistema. Eso es bastante útil, pero la mayoría de los proyectos de Arduino están diseñados para usarse lejos de una computadora; en ese momento, cada vez que se desconecta la energía o se reinicia el Arduino, no tendrá ni idea de qué hora es. El reloj interno se reiniciará y comenzará a contar desde cero nuevamente la próxima vez que se encienda.





Si su proyecto tiene algo que ver con la necesidad de tiempo, como mi luz nocturna y mi despertador de amanecer, esto claramente será un problema. En ese proyecto, solucionamos el problema configurando manualmente la hora cada noche de una manera bastante burda: el usuario presionaría el botón de reinicio justo antes de irse a la cama, lo que proporciona una sincronización manual de la hora. Claramente, esa no es una solución ideal a largo plazo.

Un módulo RTC es un circuito adicional que requiere una pequeña batería de celda de moneda, que continúa contando el tiempo incluso cuando su Arduino está apagado. Después de configurarlo una vez, mantendrá ese tiempo durante la vida útil de la batería, generalmente un año más o menos.



TinyRTC

El RTC más popular para Arduino se llama TinyRTC y se puede comprar por alrededor de $ 5 a $ 10 en eBay. Lo más probable es que deba suministrar su propia batería (es ilegal enviarlos al extranjero a muchos lugares) y algunos encabezados (los pines que se insertan en los orificios, que deberá soldar usted mismo).

Este es el módulo que tengo:





Incluso tiene un sensor de temperatura incorporado, aunque la batería durará más si no la estás usando.

La cantidad de agujeros en esa cosa parece bastante aterradora, pero solo necesitas cuatro de ellos; GND, VCC, SCL y SDA: puede utilizar los pines correspondientes a cada lado del módulo RTC. Hablas con el reloj usando Protocolo I2C , lo que significa que solo se utilizan dos pines: uno para el 'reloj' (un reloj de datos de comunicaciones en serie, nada que ver con el tiempo) y otro para los datos. De hecho, incluso puede encadenar hasta 121 dispositivos I2C en los mismos dos pines: consulte esta página de Adafruit para una selección de otros dispositivos I2C que podría agregar, ¡porque hay muchos!





Empezando

Conecte su módulo TinyRTC de acuerdo con el diagrama a continuación: la línea DS rosa no es necesaria, ya que es para el sensor de temperatura.

A continuación, descargue el Tiempo y DS1307RTC bibliotecas y coloque las carpetas resultantes en su / bibliotecas carpeta.

Salga y reinicie el entorno Arduino para cargar las bibliotecas y los ejemplos.

Encontrará dos ejemplos en el menú DS1307RTC: cargue y ejecute el Fijar tiempo ejemplo primero: esto establecerá el RTC en la hora correcta. No vale la pena entrar en detalles con el código real, solo sepa que debe ejecutarlo una vez para realizar la sincronización de tiempo inicial.

A continuación, observe el uso de ejemplo con Leer prueba .

cómo hacer un marco de fotos de perfil de facebook
|_+_|

Tenga en cuenta que también hemos incluido el núcleo Wire.h biblioteca: viene con Arduino y se usa para comunicarse a través de I2C. Cargue el código, abra la consola en serie a 9600 baudios y mire y su Arduino emite la hora actual cada segundo. ¡Maravilloso!

El código más importante del ejemplo es la creación de un tmElements_t tm - esto un estructura que poblaremos con la hora actual; y el RTC.read (tm) función, que obtiene la hora actual del módulo RTC, la coloca en nuestro tm estructura, y devuelve verdadero si todo salió bien. Agregue su código de depuración o lógica dentro de esa declaración 'if', como imprimir la hora o reaccionar a ella.

Android usa la tarjeta sd para aplicaciones

Ahora que sabe cómo obtener el momento adecuado con Arduino, puede intentar reescribir el proyecto de alarma del amanecer o crear un reloj de palabras LED: ¡las posibilidades son infinitas! ¿Qué vas a hacer?

Créditos de imagen: Snootlab Vía Flickr

Cuota Cuota Pío Correo electrónico Cómo cambiar la apariencia de su escritorio de Windows 10

¿Quiere saber cómo hacer que Windows 10 se vea mejor? Utilice estas sencillas personalizaciones para personalizar Windows 10.

Leer siguiente
Temas relacionados
  • Bricolaje
  • Arduino
Sobre el Autor James Bruce(707 Artículos publicados)

James tiene una licenciatura en Inteligencia Artificial y está certificado por CompTIA A + y Network +. Cuando no está ocupado como editor de revisiones de hardware, disfruta de LEGO, la realidad virtual y los juegos de mesa. Antes de unirse a MakeUseOf, fue técnico de iluminación, profesor de inglés e ingeniero de centros de datos.

Más de James Bruce

Suscríbete a nuestro boletín

¡Únase a nuestro boletín de noticias para obtener consejos técnicos, reseñas, libros electrónicos gratuitos y ofertas exclusivas!

Haga clic aquí para suscribirse