Diferencia entre revisiones de «time t»

De ArduWiki
Saltar a: navegación, buscar
(Parametros)
Línea 7: Línea 7:
 
</pre>
 
</pre>
  
== Parametros ==
+
== Parámetros ==
 +
 
 +
== Métodos ==
 +
{|
 +
!Metodo!!Descripcion!!Ejemplo
 +
|-
 +
|now()||Almacena la hora actual en tiempo UNIX||time_t t = now();
 +
|-
 +
|hour()||Muestra las horas (0~23)||hour(t);
 +
|-
 +
|minute()||Muestra los minutos (0~59)||minute(t);
 +
|-
 +
|second()||Muestra los segundos (0~59)||second(t);
 +
|-
 +
|millis()||Muestra los milisegundos (0~999)||millis(t);
 +
|-
 +
|day()||Muetsra el dia (1~31)||day(t);
 +
|-
 +
|weekday()||Muestra dia de la semana (1=domingo) (1~7)||weekday(t);
 +
|-
 +
|month()||Muestra el mes (1~12)||mont(t);
 +
|-
 +
|year()||Muestra el año||year(t);
 +
|-
 +
|hourFormat12()||Formatea a 12 horas||
 +
|-
 +
|isAM()||Devuelve verdadero por la mañana||isAM(t)
 +
|-
 +
|isPM()||Devuelve verdadero por la tarde||isPM(t);
 +
|-
 +
|monthStr()||Nombre del mes||monthStr(t);
 +
|-
 +
|monthShortStr()||Nombre del mes corto||monthShortStr(t);
 +
|-
 +
|dayStr()||Nombre del dia||dayStr(t);
 +
|-
 +
|dayShortStr()||Nombre del dia corto||dayShortStr(t);
 +
|-
 +
|setTime()||Establece fecha-hora: hr,min,sec,dia,mes,año.||setTime(0,0,0,14,7,2018);
 +
|-
 +
|adjustTime()||Ajusta la fecha-hora del sistema agregando valor||adjustTime(3600);
 +
|-
 +
|timeStatus()||Indica si el tiempo se sincronizado recientemente. Devuelve: timeNotSet/timeNeedSync/timeSet||
 +
|-
 +
|setSyncProvider()||Establecer proveedor de hora externa||
 +
|-
 +
|setSyncInterval()||Establecer el número de segundos entre re-sincronizaciones||
 +
|}
  
 
== Comentarios ==
 
== Comentarios ==

Revisión del 20:44 11 jul 2018

Descripcion

time_t es un tipo unsigned long usado para almacenar los segundos transcurridos desde el 1-ENE-1970 o también llamada fecha Unix.

Sintaxis

time_t variable [= valor];

Parámetros

Métodos

Metodo Descripcion Ejemplo
now() Almacena la hora actual en tiempo UNIX time_t t = now();
hour() Muestra las horas (0~23) hour(t);
minute() Muestra los minutos (0~59) minute(t);
second() Muestra los segundos (0~59) second(t);
millis() Muestra los milisegundos (0~999) millis(t);
day() Muetsra el dia (1~31) day(t);
weekday() Muestra dia de la semana (1=domingo) (1~7) weekday(t);
month() Muestra el mes (1~12) mont(t);
year() Muestra el año year(t);
hourFormat12() Formatea a 12 horas
isAM() Devuelve verdadero por la mañana isAM(t)
isPM() Devuelve verdadero por la tarde isPM(t);
monthStr() Nombre del mes monthStr(t);
monthShortStr() Nombre del mes corto monthShortStr(t);
dayStr() Nombre del dia dayStr(t);
dayShortStr() Nombre del dia corto dayShortStr(t);
setTime() Establece fecha-hora: hr,min,sec,dia,mes,año. setTime(0,0,0,14,7,2018);
adjustTime() Ajusta la fecha-hora del sistema agregando valor adjustTime(3600);
timeStatus() Indica si el tiempo se sincronizado recientemente. Devuelve: timeNotSet/timeNeedSync/timeSet
setSyncProvider() Establecer proveedor de hora externa
setSyncInterval() Establecer el número de segundos entre re-sincronizaciones

Comentarios

  • La libreria Time.h agrega la funcionalidad de reloj a Arduino con o sin hardware externo. Permite que un boceto obtenga la hora y la fecha como: segundo, minuto, hora, día, mes y año.
  • También proporciona tiempo time_t estándar, por lo que los tiempos transcurridos se pueden calcular fácilmente y los valores de tiempo se pueden compartir en diferentes plataformas.

Advertencias

  • Tenga en cuenta que se requiere un parámetro para estas funciones de cadena. El argumento NO es la marca de tiempo, por ejemplo, time_t, pero debe ser algo así como t.month(). Entonces monthStr(month()) o dayStr(día de la semana()) funcionará.

Ejemplo 1

void setup(){
   setTime(10,0,0,14,7,2018);  //h,min,seg,dia,mes,año
}
void loop(){
}

Ejemplo 2

Si usas la libreria RTClib.h tendras disponible la clase DateTime.

DateTime hoy = rtc.noy();
time_t unix = hoy.unixtime();

Ejemplo 3

Con este ejemplo Arduino espera que se envíe desde el monitor un tiempo UNIX del formato T1531526400 (2018-7-14 0:0:0).

#include <TimeLib.h>

void setup(){
   Serial.begin(9600);
   pinMode(13, OUTPUT);
   Serial.println("Esperando tiempo UNIX por puerto serie");
}

void loop(){    
   if (Serial.available()) {
      sincroniza();
   }
   if (timeStatus()!= timeNotSet) {
      reloj();  
   }
   if (timeStatus() == timeSet) {
      digitalWrite(13, HIGH); //Sincronizado
   }else{
      digitalWrite(13, LOW);  //Falta sincronizar
   }
   delay(1000);
}

void reloj(){
   Serial.print(year()); 
   Serial.print("-");
   if (month()<10){
      Serial.print('0');
   }
   Serial.print(month());
   Serial.print("-");
   if (day()<10){
      Serial.print('0');
   }
   Serial.print(day());
   Serial.print(" ");
   if (hour()<10){
      Serial.print('0');
   }
   Serial.print(hour());
   Serial.print(":");
   if (minute() < 10){
      Serial.print('0');
   }
   Serial.print(minute());
   Serial.print(":");
   if (second() < 10){
      Serial.print('0');
   }
   Serial.println(second());
}

void sincroniza() {
   const unsigned long DEFAULT_TIME = 1514764800; //1-ENE-2018

   if (Serial.find("T")) {
      unsigned long pc = Serial.parseInt();
      //Controla valides mayor a 1-ENE-2018
      if (pc >= DEFAULT_TIME) { 
         setTime(pc);      //Ajusta la fecha-hora
      }
   }
}

Vea tambien

Referencias