SIK Experiment Guide for the Arduino 101/Genuino 101 Board (Spanish)

This Tutorial is Retired!

This tutorial covers concepts or technologies that are no longer current. It's still here for you to read and enjoy, but may not be as useful as our newest tutorials.

Pages
Contributors: D___Run___
Favorited Favorite 0

Experimento 20: Usar el reloj de tiempo real integrado (RTC)

Introducción

Los microcontroladores son fantásticos a la hora de controlar el tiempo con su propio ritmo. Con esto nos referimos a su tiempo operativo. Funcionan con una señal de reloj interno que le permite llevar un registro de los milisegundos y microsegundos desde que se encienden. Pero los microcontroladores no tienen manera de saber el tiempo real, es decir, el tiempo en el que basamos nuestros días y horarios.

En este experimento, configurará el reloj y, a continuación, se mostrará la fecha y hora en la pantalla LCD que ha aprendido a usar en el Experimento 17.

Nota: La placa 101 no tiene una batería de reserva para el reloj de tiempo real (RTC), de modo que si desconecta la placa o las baterías se agotan, tendrá que restablecer el RTC en el código o desarrollar un circuito que le permita ajustar la hora.

Elementos necesarios

Necesitará los siguientes elementos:

  • 1x placa de pruebas
  • 1x placa Arduino 101 o Genuino 101
  • 1x potenciómetro
  • 1x pantalla LCD de 3,3 V
  • 16x cables puente

¿No tiene el SIK?

Si está realizando este experimento y no dispone del SIK, le sugerimos que use estos elementos:

Trimpot 10K Ohm with Knob

Trimpot 10K Ohm with Knob

COM-09806
$1.05
6
Breadboard - Self-Adhesive (White)

Breadboard - Self-Adhesive (White)

PRT-12002
$5.50
48
Jumper Wires - Connected 6" (M/M, 20 pack)

Jumper Wires - Connected 6" (M/M, 20 pack)

PRT-12795
$2.10
2

Basic 16x2 Character LCD - White on Black 3.3V

LCD-09052
3 Retired

También necesitará una placa Arduino 101 O Genuino 101.

Arduino 101

DEV-13787
9 Retired

Genuino 101

DEV-13984
Retired

Lectura sugerida

Antes de continuar con este experimento, le recomendamos que se familiarice con los conceptos en el siguiente tutorial:

Presentación del reloj de tiempo real (RTC)

Un microcontrolador funciona muy bien a la hora de controlar el tiempo operativo, el tiempo necesario para realizar su trabajo. Los microcontroladores suelen llevar un registro de los milisegundos desde que se encienden. Sin embargo, hacen un trabajo terrible a la hora de llevar el registro del tiempo que nosotros usamos (tiempo real). Los microcontroladores utilizan un reloj de tiempo real (RTC) para controlar el tiempo que transcurre desde un punto de partida concreto.

El RTC controla las horas, los minutos y los segundos de un reloj, así como el día, el mes y el año del calendario. En la placa 101, se debe configurar la fecha y la hora la primera vez que se enciende. Desde ese momento, debería mantener la hora exacta. A continuación, puede usar la hora para que se produzcan eventos en una fecha u hora concretas, o incluso como marca de tiempo para el registro de datos.

Nota: Si la placa 101 pierde alimentación, tendrá que restablecer el reloj en el código. Además, el RTC es un componente integrado en la placa 101 y no requiere ningún cable.

Conexión del hardware

¿Preparado para comenzar a conectar todo? Consulte el diagrama de cableado siguiente para ver cómo está conectado todo.

Preste especial atención a las marcas de los componentes que indican cómo colocarlo en la placa de pruebas. Los componentes polarizados solo se pueden conectar a un circuito en una sola dirección.

Diagrama de cableado del experimento

texto alternativo

¿Tiene problemas para ver el circuito? Haga clic en el diagrama de cableado para verlo más de cerca.

Abrir el boceto

Abra el software IDE de Arduino en su ordenador. La codificación en el lenguaje de Arduino controlará el circuito. Abra el código del circuito 20; para ello, acceda a "101 SIK Guide Code" (Guía de códigos de SIK 101) que ha descargado y guardado en la carpeta "Examples" (Ejemplos) anteriormente.

Para abrir el código vaya a: File > Examples > 101 SIK Guide Code > Circuit_20 (Archivo > Ejemplos > Guía de códigos de SIK 101 > Circuito_20)

También puede copiar y pegar el siguiente código en el IDE de Arduino. Cárguelo y observe lo que ocurre.

language:cpp
/*
SparkFun Inventor's Kit
Example sketch 20

DISPLAYING THE DATE AND TIME

This sketch reads the RTC data and prints it on the LCD screen

This sketch was written by SparkFun Electronics,
with lots of help from the Arduino community.
This code is completely free for any use.
Visit http://learn.sparkfun.com/products/2 for SIK information.
Visit http://www.arduino.cc to learn more about Arduino.
*/

//include the CurieTime Library
#include 
#include 

//instantiate the lcd
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup()
{
  //start lcd at 16 x 2
  lcd.begin(16, 2);

  //clear the lcd
  lcd.clear();

  //set time to 1:35:24 on April 4th, 2016\. Please change to your time / date
  setTime(1, 35, 24, 4, 10, 2016);
}

void loop()
{
 //create a character array of 16 characters for the time
 char clockTime[16];
 //use sprintf to create a time string of the hour, minte and seconds
 sprintf(clockTime, "    %2d:%2d:%2d    ", hour(), minute(), second());

 //create a character array of 15 characters for the date
 char dateTime[16];
 //use sprintf to create a date string from month, day and year
 sprintf(dateTime, "   %2d/%2d/%4d   ", month(), day(), year());

 //set cursor to column 0, row 0
 lcd.setCursor(0, 0);
 //print the date string over lcd
 lcd.print(dateTime);
 //set cursor to column 0, row 1
 lcd.setCursor(0, 1);
 //print the time string over lcd
 lcd.print(clockTime);
}

Código a tener en cuenta

setTime(1,35,00,4,10,2016);

Se debe configurar el RTC en la placa 101 cuando se encienda. Esto se hace mediante la función setTime(). Tendrá que editar en orden los 6 parámetros de setTime(): horas, minutos, segundos, mes, día y año. Si la placa 101 pierde alimentación por algún motivo, tendrá que restablecerla utilizando esta función.

sprintf(dateTime, " %2d/%2d/%4d ", month(), day(), year()); sprintf() es una función que sirve para compilar cadenas. Es una manera sencilla de elaborar cadenas; para ello, se recopilan datos y se colocan en un conjunto de caracteres, es decir, una cadena en Arduino. Los datos se insertan en %2d y %4d con el número de dígitos especificados, es decir, %4d serían 4 dígitos. Por último, transfiere los datos que desea insertar en las cadenas como parámetros. En este caso, month(), day() y year().

Lo que debería ver

Una vez que el código esté completamente cargado, debería ver dos líneas de texto que se muestran en la pantalla LCD. La primera línea debería ser la fecha (que solo debe cambiar una vez al día) y la segunda línea la hora actual, que debe ir aumentando. Si no es así, consulte la sección Solución de problemas a continuación.

texto alternativo

Solución de problemas

La pantalla está en blanco o completamente iluminada

Cambie el contraste girando el potenciómetro. Si no se ajusta bien, no podrá leer el texto.

No funciona

Vuelva a comprobar el código, especialmente el que ha incluido en la biblioteca de LCD.

No se muestra la hora correcta

Vuelva a comprobar su código. Es probable que tenga que actualizar la función setTime().