#include <TFT_eSPI.h>
#include <SPI.h>
// The display also uses hardware SPI, plus #9 & #10
#define TFT_CS 15
#define TFT_DC 2
#define TFT_MOSI 23
#define TFT_SCLK 18
//==============TITULOS==========//
#define tamano 2
#define TITULO "ENERGY METER"
#define BANCO "BANCO 1"
#define BANCO2 "BANCO 2"
#define V "VOLTAJE"
#define C "CORRIENTE"
#define P "POTENCIA"
#define W "ENERGIA"
#define FP "FACTOR DE POTENCIA"
#define F "FRECUENCIA"
//================================
//=======UNIDADES DE MEDIDA==========//
#define VOLTS "V"
#define AMPERS "A"
#define WATS "W"
#define ENERGY "kWh"
#define HERTZ "Hz"
//=================================
//==============COORDENADAS Y COLORES==========//
#define fila_titulo1 35
#define fila_titulo2 105
#define fila_titulo3 173
#define columna_titulo1 0
#define columna_titulo2 160
//______________UNIDADES__________________
#define tamano_unidades 4
#define fila_unidades1 60
#define fila_unidades2 135
#define fila_unidades3 210
#define columna_unidades1 130
#define columna_unidades2 270
//--------------------------------------
//______________NUMEROS__________________
#define tamano_numeros 7
#define fila_numeros1 50
#define fila_numeros2 120
#define fila_numeros3 190
#define columna_numeros1 0
#define columna_numeros2 175
//--------------------------------------
#define X_TITULO 80
#define Y_TITULO 10
#define C_TITULO TFT_WHITE
#define X_BANCO 240
#define Y_BANCO 10
#define C_BANCO TFT_GREEN
#define X_V columna_titulo1
#define Y_V fila_titulo1
#define C_V TFT_WHITE
#define X_VOLTS columna_unidades1
#define Y_VOLTS fila_unidades1
#define C_VOLTS TFT_WHITE
#define X_C columna_titulo1
#define Y_C fila_titulo2
#define C_C TFT_WHITE
#define X_AMPERS columna_unidades1
#define Y_AMPERS fila_unidades2
#define C_AMPERS TFT_WHITE
#define X_P columna_titulo1
#define Y_P fila_titulo3
#define C_P TFT_WHITE
#define X_WATS columna_unidades1
#define Y_WATS fila_unidades3
#define C_WATS TFT_WHITE
///////////////////////////////
#define X_W columna_titulo2
#define Y_W fila_titulo1
#define C_W TFT_WHITE
#define X_ENERGY columna_unidades2
#define Y_ENERGY fila_unidades1
#define C_ENERGY TFT_WHITE
#define X_FP columna_titulo2
#define Y_FP fila_titulo2
#define C_FP TFT_WHITE
#define X_F columna_titulo2
#define Y_F fila_titulo3
#define C_F TFT_WHITE
#define X_HERTZ columna_unidades2
#define Y_HERTZ fila_unidades3
#define C_HERTZ TFT_WHITE
//================================
//=========VARIABLES========//
float voltaje=120.0;
float current=2.5;
float power=10.2;
float energy=30.5;
float power_factor=1.0;
float freq=60.0;
float voltaje2=220.0;
float current2=10.0;
float power2=2.2;
float energy2=1.0;
float power_factor2=0.5;
float freq2=50.0;
//=============================
TFT_eSPI tft =TFT_eSPI();
void setup(){
tft.init();
tft.setRotation(1);
tft.fillScreen(TFT_BLACK);
tft.setTextColor(C_TITULO);
tft.drawString(TITULO,X_TITULO,Y_TITULO,tamano);
tft.setTextColor(C_BANCO);
tft.drawString(BANCO,X_BANCO,Y_BANCO,tamano);
tft.setTextColor(C_V);
tft.drawString(V,X_V,Y_V,tamano);
tft.setTextColor(C_VOLTS);
tft.drawString(VOLTS,X_VOLTS,Y_VOLTS,tamano_unidades);
tft.setTextColor(C_C);
tft.drawString(C,X_C,Y_C,tamano);
tft.setTextColor(C_AMPERS);
tft.drawString(AMPERS,X_AMPERS,Y_AMPERS,tamano_unidades);
tft.setTextColor(C_P);
tft.drawString(P,X_P,Y_P,tamano);
tft.setTextColor(C_WATS);
tft.drawString(WATS,X_WATS,Y_WATS,tamano_unidades);
tft.setTextColor(C_W);
tft.drawString(W,X_W,Y_W,tamano);
tft.setTextColor(C_ENERGY);
tft.drawString(ENERGY,X_ENERGY,Y_ENERGY,tamano_unidades);
tft.setTextColor(C_FP);
tft.drawString(FP,X_FP,Y_FP,tamano);
tft.setTextColor(C_F);
tft.drawString(F,X_F,Y_F,tamano);
tft.setTextColor(C_HERTZ);
tft.drawString(HERTZ,X_HERTZ,Y_HERTZ,tamano_unidades);
/*
tft.setTextColor(TFT_RED);
tft.drawString("HELLO WORLD!!",10,10);
tft.setTextColor(TFT_GREEN);
tft.drawString("This is Font 2!!",10,24,2);
tft.setTextColor(TFT_BLUE);
tft.drawString(TITULO,10,46,4);
tft.drawPixel(160,120,TFT_RED);
tft.drawPixel(160,140,TFT_GREEN);
tft.drawLine(0,0,100,100,TFT_TFT_WHITE);
tft.drawLine(0,0,100,100,TFT_BLUE);
tft.drawCircle(50,140,30,TFT_YELLOW);
tft.fillCircle(80,200,20,TFT_YELLOW);
tft.drawRect(0,0,30,120,TFT_WHITE);
tft.fillRect(5,130,40,40,TFT_PURPLE);
tft.setTextColor(TFT_YELLOW,0xbe6926);
*/
}
int number=0;
void loop(){
tft.setTextColor(TFT_RED,TFT_BLACK);
tft.drawString(String(120),columna_numeros1,fila_numeros1,tamano_numeros);
tft.setTextColor(TFT_YELLOW,TFT_BLACK);
tft.drawString(String(20.0,1),columna_numeros1,fila_numeros2,tamano_numeros);
tft.setTextColor(TFT_GREEN,TFT_BLACK);
tft.drawString(String(2400),columna_numeros1,fila_numeros3,tamano_numeros);
tft.setTextColor(TFT_BLUE,TFT_BLACK);
tft.drawString(String(400),columna_numeros2,fila_numeros1,tamano_numeros);
tft.setTextColor(TFT_PURPLE,TFT_BLACK);
tft.drawString(String(0.5,1),columna_numeros2,fila_numeros2,tamano_numeros);
tft.setTextColor(TFT_ORANGE,TFT_BLACK);
tft.drawString(String(60.1,1),columna_numeros2,fila_numeros3,tamano_numeros);
number++;
delay(1000);
}