Reloj en tiempo Real de Arduino DS3231 con color TFT (4 / 4 paso)

Paso 4: Añadir el código de Arduino

 <#include <Adafruit_ST7735.h> #include <Adafruit_GFX.h> #include <Wire.h> #include "Sodaq_DS3231.h" #include <SPI.h> #define TFT_CS 10 #define TFT_RST 8 #define TFT_DC 9 Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_RST); // Option 2: use any pins but a little slower! #define TFT_SCLK 13 // set these to be whatever pins you like! #define TFT_MOSI 11 // set these to be whatever pins you like! float maxTemperature=0; float minTemperature=200; char charMinTemperature[10]; char charMaxTemperature[10]; char timeChar[100]; char dateChar[50]; char temperatureChar[10]; float temperature = 0; float previousTemperature = 0; String dateString; int minuteNow=0; int minutePrevious=0; void setup () { tft.initR(INITR_BLACKTAB); tft.fillScreen(ST7735_BLACK); Serial.begin(57600); Wire.begin(); rtc.begin(); printText("TEMPERATURE", ST7735_GREEN,30,65,1); // Temperature Static Text printText("MAX", ST7735_RED,18,130,1); printText("MIN", ST7735_BLUE,95,130,1); //setRTCTime(); } uint32_t old_ts; void loop () { float temperature = rtc.getTemperature(); DateTime now = rtc.now(); //get the current date-time uint32_t ts = now.getEpoch(); if (old_ts == 0 || old_ts != ts) { old_ts = ts; minuteNow = now.minute(); if(minuteNow!=minutePrevious) { dateString = getDayOfWeek(now.dayOfWeek())+", "; dateString = dateString+String(now.date())+"/"+String(now.month()); dateString= dateString+"/"+ String(now.year()); minutePrevious = minuteNow; String hours = String(now.hour()); if(now.minute()<10) { hours = hours+":0"+String(now.minute()); }else { hours = hours+":"+String(now.minute()); } hours.toCharArray(timeChar,100); tft.fillRect(10,0,160,65,ST7735_BLACK); printText(timeChar, ST7735_WHITE,20,25,3); dateString.toCharArray(dateChar,50); printText(dateChar, ST7735_GREEN,8,5,1); } if(temperature != previousTemperature) { previousTemperature = temperature; String temperatureString = String(temperature,1); temperatureString.toCharArray(temperatureChar,10); tft.fillRect(10,80,128,30,ST7735_BLACK); printText(temperatureChar, ST7735_WHITE,10,80,3); printText("o", ST7735_WHITE,90,75,2); printText("C", ST7735_WHITE,105,80,3); if(temperature>maxTemperature) { maxTemperature = temperature; dtostrf(maxTemperature,5, 1, charMaxTemperature); tft.fillRect(3,142,33,20,ST7735_BLACK); printText(charMaxTemperature, ST7735_WHITE,3,145,1); printText("o", ST7735_WHITE,35,140,1); printText("C", ST7735_WHITE,41,145,1); } if(temperature < minTemperature { minTemperature = temperature; dtostrf(minTemperature,5, 1, charMinTemperature); tft.fillRect(75,140,36,18,ST7735_BLACK); printText(charMinTemperature, ST7735_WHITE,80,145,1); printText("o", ST7735_WHITE,112,140,1); printText("C", ST7735_WHITE,118,145,1); } } } delay(1000); } void setRTCTime() { DateTime dt(2015, 8, 27, 9, 35, 30, 4); // Year, Month, Day, Hour, Minutes, Seconds, Day of Week rtc.setDateTime(dt); //Adjust date-time as defined 'dt' above }void printText(char *text, uint16_t color, int x, int y,int textSize) { tft.setCursor(x, y); tft.setTextColor(color); tft.setTextSize(textSize); tft.setTextWrap(true); tft.print(text); } String getDayOfWeek(int i) { switch(i) { case 1: return "Monday";break; case 2: return "Tuesday";break; case 3: return "Wednesday";break; case 4: return "Thursday";break; case 5: return "Friday";break; case 6: return "Saturday";break; case 7: return "Sunday";break; default: return "Monday";break; } } 

Obtener el código en un archivo aquí: http://educ8s.tv/arduino-real-time-clock/

Después de subir el código, la primera vez que ejecute el dibujo tienes que ajustar la hora. Descomentar esta línea de código aquí:

 <p>//setRTCTime();</p> 

A continuación establece fecha y hora actuales en la siguiente función.

 <p>void setRTCTime()<br>{ DateTime dt(2015, 8, 27, 9, 35, 30, 4); // Year, Month, Day, Hour, Minutes, Seconds, Day of Week rtc.setDateTime(dt); //Adjust date-time as defined 'dt' above }</p> 

Después de ajustar la hora, subir el sketch y ejecutarlo una vez.

A continuación, comentar la línea de los conjuntos del tiempo y el updload el bosquejo una vez más.

 setRTCTime(); 

Ahora, el programa puede mantener el tiempo con la batería integrada por años!

Disfrutar de su color de reloj en tiempo Real!

No te pierdas ni un proyecto suscribiéndote a mi canal de YouTube:

https://www.youtube.com/subscription_center?add_us...

Artículos Relacionados

Reloj de tiempo Real de Arduino con alarma y sensores ambientales

Reloj de tiempo Real de Arduino con alarma y sensores ambientales

Reloj de Arduino, con respaldo de batería (reloj en tiempo real), tiempo, fecha, alarma, temperatura, humedad, presión, LCD, salida, entrada de teclado, dormir modo, blanco de iluminación (4 X) LED LCD con control de intensidadPaso 1: Lista de piezas
#8 simple Demo de binario codificado Decimal (BCD) para relojes de tiempo Real (como el DS3231 y DS1307)

#8 simple Demo de binario codificado Decimal (BCD) para relojes de tiempo Real (como el DS3231 y DS1307)

Teoría aplicada a veces un poco va un largo camino en lo que un programador de Arduino para entender el fondo detrás de la electrónica.En este corto video (sólo interrumpido por Benny, mi gato) explico cómo se almacena binario codificado Decimal (aka
Reloj en tiempo real de Arduino usando el Ds1302

Reloj en tiempo real de Arduino usando el Ds1302

Esta semana he decidido que quiero construir un reloj. Quiero un reloj quesiempre el momento adecuado para que eso necesito un componente que puede hacer que algunas investigaciones y encontré el ds1302.Paso 1: Ver el videoHice un video en YouTube do
Módulos de reloj en tiempo Real compatible con Arduino #5 (DS1307 y DS3231)

Módulos de reloj en tiempo Real compatible con Arduino #5 (DS1307 y DS3231)

Un módulo de reloj en tiempo Real (RTC) es que un RTC es un RTC. ¿Verdad? Mal!Mientras estos dos ECA muy común, compatible con Arduino un aspecto muy similar y están conectados a través del I2C (pronunciado ojo cuadrado, u ojo ojo) bus de comunicacio
Configuración de un reloj de tiempo Real (RTC) con un Micro Arduino Pro

Configuración de un reloj de tiempo Real (RTC) con un Micro Arduino Pro

Para un montón de proyectos, necesita saber el tiempo real. Siendo precisos segundos, la hora del día o la fecha del mes, un Módulo de reloj de tiempo Real RTC es la respuesta a esa necesidad.Con bajo consumo de energía, avanzadas de precisión y cali
Arduino Aquaponics: reloj de tiempo Real parte I

Arduino Aquaponics: reloj de tiempo Real parte I

necesidad fundamental de AA de cualquier sistema de control es la capacidad de registrar el tiempo.  Como lo que somos conscientes, el Arduino tiene tres métodos que puede emplear:1. serie.  Varias veces superar el tiempo de la conexión en serie.2. e
Berlín reloj, Arduino Nano, DS1307 reloj en tiempo Real. 74HC595N 8 Bit Shift Register.

Berlín reloj, Arduino Nano, DS1307 reloj en tiempo Real. 74HC595N 8 Bit Shift Register.

Hace algún tiempo he querido construir un reloj de Berlín. ¿Realmente no sé por qué? Igual lo "diferente" a la hora.¿Cómo funciona?A partir de la parte inferior hay 4 amarillo enciende cada luz representa 1 minuto, así que si no hay ninguno en e
Reloj en tiempo real (RTC) con LinkIt uno

Reloj en tiempo real (RTC) con LinkIt uno

¿Alguna vez atascado con un proyecto que necesita un reloj de tiempo real (un reloj que te indica la fecha y hora y no sólo cuántos segundos (milli) transcurrido desde que se conectó al poder)?Tienes 2 opciones:Uso de GPS y obtener el tiempo allíInte
¿TimeKeeping en ESP8266 & arduino uno sin un RTC (reloj en tiempo Real)?

¿TimeKeeping en ESP8266 & arduino uno sin un RTC (reloj en tiempo Real)?

Como dice el titulo, he probado hacer el seguimiento de tiempo en mi arduino uno y la ESP8266 / tablas Wemos D1 (programadas con arduino) sin el uso de bibliotecas, internet o una unidad RTC. Un montón de instructables grandes aquí en el sitio Dile q
Reloj en tiempo real con PIC18F452

Reloj en tiempo real con PIC18F452

Bienvenido a usted. Aquí estoy diseñado un reloj de tiempo Real utilizando el microcontrolador PIC18F452. Voy a explicar cómo diseñar el reloj en tiempo Real utilizando el microcontrolador PIC. RTC usando PIC18F452PIC es avance microcontrolador serie
Montar un Kit de reloj de tiempo Real Adafruit DS1307

Montar un Kit de reloj de tiempo Real Adafruit DS1307

Sería justo decir que las industrias Adafruit ya ha hecho un gran trabajo de documentación de su Kit de reloj de tiempo Real DS1307. De hecho, sus instrucciones son mucho mejores que nada que tengo que ofrecer ya que incluye a todo tipo de archivos,
Frambuesa Pi - reloj en tiempo Real (RTC)

Frambuesa Pi - reloj en tiempo Real (RTC)

En este proyecto, vamos a hacer un reloj de tiempo Real (RTC) que mantenga el tiempo de su frambuesa Pi incluso si está apagada.Reloj de tiempo real es esencial para cada Micro controladores mantener el tiempo, incluso si está apagada. Sin un Network
Reloj en tiempo real - DS1302

Reloj en tiempo real - DS1302

esto es un muy sencillo tutorial sobre cómo utilizar el reloj de tiempo Real DS1302 con una placa Arduino, o Versilino,.  Lo guiará a través del cableado, código y ejemplo.  Todo lo cual se puede encontrar en www.Virtuabotix.com. este es mi intento d
Un elegante, apilamiento, reloj en tiempo Real para Raspberry Pi

Un elegante, apilamiento, reloj en tiempo Real para Raspberry Pi

Si quieres construir un buen reloj en tiempo Real para su frambuesa de aquí está el tutorial que estabas buscando!Esta es una versión revisada y simplificada de Instructables hecho fuera de este artículo en mi blog personal. Diferencia es principalme