¿Cómo y por qué añadir un reloj de tiempo real para arduino

Manteniendo tiempo en proyectos de Arduino no es tan fácil como se podría pensar: una vez que la conexión con el ordenador no está ahí, su unpowered Arduino simplemente deja de funcionar, incluyendo su ticker interna.

Vídeo: RTC controla a un rele | RincónIngenieril

Con el fin de mantener su Arduino en sincronía con el mundo alrededor de ella, vas a necesitar lo que se llama un “módulo de reloj en tiempo real”. He aquí cómo utilizar uno.

Cuál es el punto de un reloj de tiempo real (RTC)?

El ordenador más probable es que se sincroniza su tiempo con internet, pero todavía tiene un reloj interno que sigue adelante incluso sin conexión a Internet o la alimentación está apagada. Cuando se utiliza un Arduino conectado a un ordenador, que tiene acceso a la hora exacta proporcionada por el reloj del sistema. Eso es bastante útil, pero la mayoría de los proyectos de Arduino están diseñados para ser utilizados lejos de una computadora - y en ese momento, cada vez que la alimentación está desenchufado o el Arduino reiniciado, que tendrá absolutamente ninguna idea de qué hora es. El reloj interno se restablecerá y empezar a contar desde cero de nuevo la próxima vez que se encienda.

Vídeo: Reloj digital con arduino uno y DS3231

Si el proyecto tiene nada que ver con la necesidad del tiempo - como mi luz de noche y la alarma del reloj del amanecer - esto es claro que va a ser un problema. En ese proyecto, llegamos alrededor del tema manualmente ajustando el tiempo cada noche de una manera bastante cruda - el usuario pulse el botón de reinicio justo antes de irse a la cama, que proporciona una sincronización manual de la hora. Está claro que no es una solución ideal desde hace mucho tiempo.Proyecto de alarma Arduino luz de la noche y el amanecerProyecto de alarma Arduino luz de la noche y el amanecerHoy en día, vamos a hacer un reloj de alarma de la salida del sol, que le despertará suavemente y poco a poco sin tener que recurrir a una máquina de ruido de decisiones ofensivo.Lee mas

Un módulo RTC es un bit adicional de circuitos, lo que requiere una pequeña batería de tipo botón, que sigue contando el tiempo, incluso cuando su Arduino está apagado. Después de haber sido establecido, una vez - que se mantendrá ese momento de la vida de la batería, por lo general un buen año o así.

TinyRTC

El RTC más popular para Arduino se llama TinyRTC y se pueden comprar por alrededor de $ 5- $ 10 en eBay. Lo más probable es necesario proporcionar su propia batería (que es ilegal enviar éstos en el extranjero a muchos lugares), y algunas cabeceras (los pines que la ranura en los agujeros, que se necesita para soldar en uno mismo).

Este es el módulo que tengo:

RTC-módulo

Incluso tiene un sensor de temperatura integrado, aunque la batería durará más tiempo si no lo está utilizando.

Vídeo: Arduino 101: Visualizar datos en tiempo real [IoT]

El número de agujeros en esa cosa parece bastante miedo, pero sólo se necesitan cuatro de ellos- GND, VCC, SCL y SDA - puede utilizar los pines correspondientes a cada lado del módulo RTC. Usted habla con el reloj utilizando el protocolo I2C, lo que significa que sólo se utilizan dos pasadores - una para el “reloj” (una serie de comunicaciones reloj de datos, nada que ver con el tiempo) y otra para los datos. De hecho, incluso se encadenan hasta 121 dispositivos I2C en los mismos dos pasadores - echa un vistazo a esta página Adafruit para una selección de otros dispositivos I2C se podría añadir, porque hay un montón!

Empezando

Conectar su módulo de TinyRTC de acuerdo con el diagrama de abajo - no se necesita la línea DS de color rosa, ya que es para el sensor de temperatura.

alambrado

A continuación, descargar las bibliotecas de tiempo y DS1307RTC y colocar las carpetas resultantes en su / bibliotecas carpeta.

Salir y relanzar el entorno Arduino para cargar en las bibliotecas y ejemplos.
ds1307rtc-ejemplo-menú

Encontrará dos ejemplos en el menú DS1307RTC: cargar y ejecutar el Fijar tiempo primer ejemplo - esto hará que el RTC a la hora correcta. El código real no vale la pena entrar en detalles con, sólo sé que es necesario ejecutar una vez para realizar la sincronización de la hora inicial.

Vídeo: Arduino Project: Real time clock (RTC) and temperature monitor using the DS3231 module.

A continuación, consulte el ejemplo de uso con ReadTest.

#incluir #incluir #incluir void setup() {Serial.begin(9600)-mientras (!De serie) - // Espere para serialdelay(200)-Serial.println("DS1307RTC de Lectura Prueba")-Serial.println("-------------------")-}void loop() {tm tmElements_t-Si (RTC.read(tm)) {Serial.print("Ok, Tiempo = ")-print2digits(tm.Hour)-Serial.write(`:`)-print2digits(tm.Minute)-Serial.write(`:`)-print2digits(tm.Second)-Serial.print(", Fecha (D / M / Y) = ")-Serial.print(tm.Day)-Serial.write(`/`)-Serial.print(tm.Month)-Serial.write(`/`)-Serial.print(tmYearToCalendar(tm.Year))-Serial.println()-} más {Si (RTC.chipPresent()) {Serial.println("El DS1307 se detiene. Por favor, ejecute el SetTime")-Serial.println("ejemplo para inicializar el tiempo y comience a trabajar.")-Serial.println()-} más {Serial.println("DS1307 error de lectura! Por favor, compruebe el circuito.")-Serial.println()-}retrasar(9000)-}retrasar(1000)-}print2digits vacíos(int numero) {Si (número gt; = 0 && número 

Tenga en cuenta que también hemos incluido el núcleo Wire.h Biblioteca - esto viene con Arduino y se utiliza para la comunicación a través de I2C. Sube el código, abra la consola serie a 9600 baudios, y ver y Arduino da salida a la hora cada segundo. ¡Maravilloso!

El código más importante en el ejemplo es la creación de una tm tmElements_t - esto un estructura que vamos a poblamos con el tiempo- actual y el RTC.read (tm) función, que obtiene la hora actual del módulo RTC, lo pone en nuestra tm estructura, y devuelve verdadero si todo ha ido bien. Añadir su depuración o código de la lógica dentro de ese "Si" declaración, tales como la impresión de que el tiempo o reaccionar a ella.

Ahora que ya sabe cómo conseguir el momento adecuado con Arduino, usted podría intentar volver a escribir el proyecto de alarma de la salida del sol o crear un reloj de palabra LED - las posibilidades son infinitas! ¿Qué vas a hacer?

Artículos Relacionados