Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Arduino y DS3231 Tutorial de reloj en tiempo real

En este tutorial de Arduino aprenderemos a utilizar el módulo de reloj en tiempo real DS3231. Puede ver el siguiente video o leer el tutorial escrito a continuación.

Resumen

La primera pregunta que surge aquí es por qué en realidad necesitamos un RTC separado para nuestro proyecto Arduino cuando el propio Arduino tiene un cronómetro incorporado. Bueno, el punto es que el módulo RTC funciona con una batería y puede realizar un seguimiento del tiempo incluso si reprogramamos el microcontrolador o desconectamos la alimentación principal.

Reloj en tiempo real DS3231

El DS3231 es un reloj en tiempo real de alta precisión y bajo costo que puede mantener horas, minutos y segundos, así como información sobre el día, el mes y el año. Además, cuenta con compensación automática para años bisiestos y para meses con menos de 31 días.

El módulo puede funcionar con 3,3 o 5 V, lo que lo hace adecuado para muchas plataformas de desarrollo o microcontroladores. La entrada de la batería es de 3 V y una batería típica CR2032 de 3 V puede alimentar el módulo y mantener la información durante más de un año.

El módulo utiliza el protocolo de comunicación I2C que hace que la conexión a la placa Arduino sea muy sencilla.

Aquí están los esquemas del circuito:

Entonces, todo lo que necesitamos son 4 cables, los pines VCC y GND para alimentar el módulo, y los dos pines de comunicación I2C, SDA y SCL.

Puede obtener los componentes necesarios para este tutorial de Arduino desde los siguientes enlaces:

  • DS3231 Reloj en tiempo real………………..
  • Placa Arduino ………………………………
  • Placa de prueba y cables de salto ……… 

Programación

Una vez que conectamos el módulo, necesitamos programar la placa Arduino para que funcione con el reloj en tiempo real. Sin embargo, cuando se trata de programar una comunicación entre Arduino y un módulo I2C, el código no es tan pequeño y fácil. Afortunadamente, ya existen varias bibliotecas para el RTC DS3231 que se pueden encontrar en Internet.

Para este tutorial, elegí usar la Biblioteca creada por Henning Karlsen, que se puede encontrar y descargar desde su sitio web, www.rinkydinkelectronics.com.

Entonces, una vez que descargamos e instalamos la biblioteca, podemos usar su primer ejemplo de demostración para activar inicialmente el reloj del módulo RTC. En la sección de configuración del código de ejemplo de demostración, podemos notar que hay tres líneas que debemos descomentar para configurar inicialmente el día de la semana, la hora y los datos.

// Code from the Demo Example of the DS3231 Library

void setup()
{
  // Setup Serial connection
  Serial.begin(115200);
  // Uncomment the next line if you are using an Arduino Leonardo
  //while (!Serial) {}
  
  // Initialize the rtc object
  rtc.begin();
  
  // The following lines can be uncommented to set the date and time
  //rtc.setDOW(WEDNESDAY);     // Set Day-of-Week to SUNDAY
  //rtc.setTime(12, 0, 0);     // Set the time to 12:00:00 (24hr format)
  //rtc.setDate(1, 1, 2014);   // Set the date to January 1st, 2014
}Code language: Arduino (arduino)

La primera línea es para configurar el día de la semana, la segunda línea es para configurar la hora en horas, minutos y segundos, y la tercera línea es para configurar la fecha en días, meses y años.

Una vez que cargamos este código, debemos comentar las tres líneas y volver a cargar el código nuevamente.

// Code from the Demo Example of the DS3231 Library

void loop()
{
  // Send Day-of-Week
  Serial.print(rtc.getDOWStr());
  Serial.print(" ");
  
  // Send date
  Serial.print(rtc.getDateStr());
  Serial.print(" -- ");

  // Send time
  Serial.println(rtc.getTimeStr());
  
  // Wait one second before repeating
  delay (1000);
}Code language: Arduino (arduino)

Si echamos un vistazo a la sección de bucle del código, podemos ver que ahora, usando las tres funciones personalizadas, obtenemos la información del RTC y la imprimimos en el Serial Monitor. Así es como aparecen en el monitor serie.

Ahora, incluso si desconectamos la alimentación de Arduino y luego la volvemos a conectar y ejecutamos Serial Monitor nuevamente, podemos notar que el tiempo continúa sin reiniciarse.

Así que ahora tenemos nuestro reloj en tiempo real funcionando y podemos usarlo en cualquier proyecto Arduino. Como segundo ejemplo, conecté una pantalla LCD al Arduino e imprimí la hora y la fecha en ella.

Aquí está el código fuente de este ejemplo:

/*
* Arduino DS3231 Real Time Clock Module Tutorial
*
* Crated by Dejan Nedelkovski,
* www.HowToMechatronics.com
*
* DS3231 Library made by Henning Karlsen which can be found and downloaded from his website, www.rinkydinkelectronics.com.
*
*/
#include <DS3231.h>
#include <LiquidCrystal.h> // includes the LiquidCrystal Library 

DS3231  rtc(SDA, SCL);
LiquidCrystal lcd(1, 2, 4, 5, 6, 7); // Creates an LC object. Parameters: (rs, enable, d4, d5, d6, d7) 

void setup() { 
 rtc.begin(); // Initialize the rtc object
 lcd.begin(16,2); // Initializes the interface to the LCD screen, and specifies the dimensions (width and height) of the display } 
}

void loop() { 
 lcd.setCursor(0,0);
 lcd.print("Time:  ");
 lcd.print(rtc.getTimeStr());
 
 lcd.setCursor(0,1);
 lcd.print("Date: ");
 lcd.print(rtc.getDateStr());
 
 delay(1000); 
}Code language: Arduino (arduino)

Eso es todo por este tutorial de Arduino, siéntase libre de hacer cualquier pregunta en la sección de comentarios a continuación.


Proceso de manufactura

  1. Reloj de visión pov de Arduino
  2. Tutorial de bloqueo RFID de Arduino
  3. Reloj maestro
  4. Arduino Temp. Monitor y reloj en tiempo real con pantalla 3.2
  5. Reloj de Berlín
  6. TM1637 Reloj digital con configuración de hora y funcionalidad de alarma
  7. eDOT - Reloj de precisión y estación meteorológica basados ​​en Arduino
  8. Pantalla de temperatura OLED de Arduino con reloj en tiempo real
  9. Tutorial del sensor de huellas dactilares Arduino
  10. Raspberry Pi y portátil Arduino
  11. El robot detecta y comparte cambios en 3D en tiempo real