Go Down

Topic: PROBLEMA CON TFT 3.2" Y RTC DS1307 ARDUINO MEGA (Read 442 times) previous topic - next topic

jnajerae

Jan 24, 2017, 08:48 pm Last Edit: Jan 25, 2017, 02:05 am by jnajerae
buen día a todos:

este es mi primer post después de leer mucho y no encontrar una solución a mi problema me permito solicitar su ayuda.

llevo tiempo desarrollando un controlador para un acuario (por exceso de trabajo y cuestiones personales lo había abandonado).

tengo una pantalla de 3.2" la cual funciona perfectamente pero tengo un detalle al poner a funcionar el rtc, ya que si puedo mostrar la fecha, pero cuando muestro la hora se queda en pantalla solo la hora en la que inicio, osea no cambia el segundero a menos que reinicie el arduino me cambia la hora (a la que se reinicio el  dispositivo), pero si omito las líneas donde la tft tiene que pintar la pantalla principal el reloj funciona a la perfeccion (metiendo la función en el loop), yo supongo es un error al momento de pintar los datos pero no le he encontrado solución.

espero haberme explicado correctamente, y agradezco su ayuda.

gracias.

Code: [Select]
#include <RelojDS1307.h>
#include <DallasTemperature.h>
//librerias
#include <ITDB02_Graph16.h>
#include <ITDB02_Touch.h>
#include <Wire.h>
#include <EEPROM.h>
#include <DS1307.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#include <arduino.h>

ITDB02        miLCD(38,39,40,41,ITDB32S);//declaramos la pantalla
//ITDB02        miLCD(38,39,40,41);
ITDB02_Touch  miTouch(6,5,4,3,2);           //declaramos el touch
RelojDS1307Class Reloj;

void setup()
{
  
  miLCD.InitLCD(LANDSCAPE); // iniciamos la pantalla HORIZONTAL
  //miLCD.clrScr();  //limpiamos la pantalla
  miLCD.setFont(SmallFont);
  
  miTouch.InitTouch(LANDSCAPE);//iniciamos el Touch HORIZONTAL
  miTouch.setPrecision(PREC_HI);
  PRINCIPAL();
  Wire.begin();
  
  //Reloj.SetDateTime(19,1,2017,23,3,10);

  LeerConf();
  SalvarConfig();        //Funcion Configuracion
  //LeerConf();
  IniciaT();       //Funcion de Temperaturas
}

void PRINCIPAL ()
{
  miLCD.clrScr();
  int monthDay,month,year,hour,minute,second;//agregado  
  //mensaje principal
  miLCD.setFont(SmallFont);
  miLCD.setColor(40,120,255);
  miLCD.fillRoundRect(1,1,278,20);
  miLCD.setBackColor(40,120,255);
  miLCD.setColor(255,255,0);
  miLCD.print("ARRECIFE FAMILIA ", 20,4);
  //Caja de Luces
  miLCD.setColor(40,120,255);
  miLCD.drawRoundRect(1,122,319,217);
  miLCD.setColor(255,255,255);
  miLCD.setBackColor(0,0,0);
  miLCD.print("LAMPARAS",CENTER,123);
  miLCD.setColor(0,0,255);
  //porcentajes
  miLCD.setColor(255,255,255);
  miLCD.print("20",39,203);
  miLCD.print("40",66,203);
  miLCD.print("60",93,203);
  miLCD.print("80",120,203);
  miLCD.print("100",145,203);
  //Barras
  miLCD.setColor(255,164,032);             //naranja
  miLCD.print("Amanecer:",165,141);
  //miLCD.fillRect(18,141,153,152);
  miLCD.setColor(255,255,000);            //amarillo
  miLCD.print("Dia     :",165,155);
  //miLCD.fillRect(18,155,153,166);  
  miLCD.setColor(100,255,255);            //azul claro
  miLCD.print("Luna    :",165,169);
  //miLCD.fillRect(18,169,153,180);
  miLCD.setColor(0,255,100);              //verde
  miLCD.print("Refugio :",165,183);
  //miLCD.fillRect(18,183,153,194);
  
  // Cuadrante
  miLCD.setColor(255,255,255);
  miLCD.drawLine(15,139,15,200);
  miLCD.drawLine(16,139,16,200);
  miLCD.drawLine(17,139,17,200);
  miLCD.drawLine(15,200,153,200);
  miLCD.drawLine(15,201,153,201);
  miLCD.drawLine(15,202,153,202);
  //Regla
  miLCD.drawLine(44,200,44,197);
  miLCD.drawLine(72,200,72,197);
  miLCD.drawLine(99,200,99,197);
  miLCD.drawLine(126,200,126,197);
  miLCD.drawLine(153,200,153,197);  
  //Caja de temperaturas
  miLCD.setColor(40,120,255);
  miLCD.drawRoundRect(1,22,158,118);
  miLCD.setFont(SmallFont);
  miLCD.setColor(255,255,255);
  miLCD.print("TEMPERATURAS",31,25);
  miLCD.setColor(200,255,100);
  miLCD.print("Temp. Cerebro=",3,49);
  miLCD.print("Temp. Acuario=",3,74);
  miLCD.print("Temp. Lampara=",3,99);
  //Caja de Luna
  miLCD.setColor(40,120,255);
  miLCD.drawRoundRect(162,22,318,118);
  //boton Menu
  miLCD.fillRoundRect(280,1,319,20);
  miLCD.setBackColor(40,120,255);
  miLCD.setColor(255,255,0);
  miLCD.print("MENU",285,4);
  MiraT();
  RELOJ();
   while(true)
  {
    if (miTouch.dataAvailable())
    {
      miTouch.read();
      x=miTouch.getX();
      y=miTouch.getY();
      
      if((x>=280)&&(x<=319))
      {
        if((y>=1)&&(y<=20))
        {
          esperaToque(280,1,319,20);
          Menu();
        }
      }
    }
  }
}

void RELOJ ()
{
  int monthDay,month,year,hour,minute,second;//agregado 
  Reloj.GetDateTime(monthDay,month,year,hour,minute,second);
  //miLCD.setColor(40,120,255);
  //miLCD.fillRoundRect(0, 219, 319, 239);
  //miLCD.setBackColor(40,120,255);
  miLCD.setColor(255,255,0);
  miLCD.setFont(BigFont);
  miLCD.print(Reloj.Date(),8,221);
  miLCD.print(Reloj.Time(),185,221);
}

void loop()
{
  
  int monthDay,month,year,hour,minute,second;//agregado  
  if((millis()-Old_Mil)>1000)
  {
    Old_Mil=millis();
    AlarmasTemp();
    PrendeLuces();
  }
}


Adrianagirre

tengo la ili9325 tft v1.2 como lo has conectado?

jnajerae

#2
Jan 25, 2017, 10:28 pm Last Edit: Jan 26, 2017, 06:06 pm by jnajerae
La conecte como describe la imagen, el único cambio fue

PIN TFT           PIN ARDUINO MEGA
6                     42
T_CLK             DIGITAL 6;
T_CS               DIGITAL 5;
T_DIN              DIGITAL 4;
T_DOUT           DIGITAL 3;
T_IRQ              DIGITAL 2;

asi me funciono a mi

Go Up