#include <Wire.h> // libreria para bus I2C
#include <Adafruit_GFX.h> // libreria para pantallas graficas
#include <Adafruit_SSD1306.h> // libreria para controlador SSD1306
#define ANCHO 128 // reemplaza ocurrencia de ANCHO por 128
#define ALTO 64 // reemplaza ocurrencia de ALTO por 64
#define OLED_RESET 4 // necesario por la libreria pero no usado
Adafruit_SSD1306 oled(ANCHO, ALTO, &Wire, OLED_RESET); // crea objeto
float v1 = 3.3; // valor real de la alimentacion de Arduino, Vcc.
float r1 = 1000000; // 800K
float r2 = 15000; // 12K
float vL1 = 0;
float vL2 = 0;
float vL3 = 0;
float vG1 = 0;
float vG2 = 0;
float vG3 = 0;
float vRR = 0;
float vRS = 0;
float vRT = 0;
float vGR = 0;
float vGS = 0;
float vGT = 0;
int regreso = 0;
int deadtime=2;
int redaplanta=1;
int retornored=1;
int plantaared=1;
int enfriamiento=1;
int vnominal = 220;
int ctl=0;
char ctlsecno[] = "NO";
char ctlsecsi[] = "SI";
int var1 = 0;
int sen1 = 0;
int sen2 = 0;
int sen3 = 0;
int upButton = 16;
int downButton = 4;
int selectButton = 2;
int menuButton = 15;
int menu = 0;
int temporal = 1;
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
void setup() {
Wire.begin(); // inicializa bus I2C
oled.begin(SSD1306_SWITCHCAPVCC, 0x3C); // inicializa pantalla con direccion 0x3C
// Inicializar el LCD con el número de columnas y filas del LCD
pinMode (upButton, INPUT_PULLUP);
pinMode (downButton, INPUT_PULLUP);
pinMode (selectButton, INPUT_PULLUP);
pinMode (menuButton, INPUT_PULLUP);
}
void loop() {
//int tiempo= millis()/1000;
int sen1= analogRead(25);
int sen2= analogRead(26);
int sen3= analogRead(27);
int sen4= analogRead(14);
int sen5= analogRead(12);
int sen6= analogRead(13);
float va = (sen1 * v1) / 4095;
int vL1 = va / (r2 / (r1 + r2));
float vb = (sen2 * v1) / 4095;
float vL2 = vb / (r2 / (r1 + r2));
float vc = (sen3 * v1) / 4095;
float vL3 = vc / (r2 / (r1 + r2));
float vd = (sen4 * v1) / 4095;
float vG1 = vd / (r2 / (r1 + r2));
float ve = (sen5 * v1) / 4095;
float vG2 = ve / (r2 / (r1 + r2));
float vf = (sen6 * v1) / 4095;
float vG3 = vf / (r2 / (r1 + r2));
int vRR = vL1 + vL2;
int vRS = vL2 + vL3;
int vRT = vL1 + vL3;
int vGR = vG1 + vG2;
int vGS = vG2 + vG3;
int vGT = vG1 + vG3;
oled.clearDisplay(); // limpia pantalla
oled.setTextColor(WHITE); // establece color al unico disponible (pantalla monocromo)
oled.setCursor(0, 0); // ubica cursor en inicio de coordenadas 0,0
oled.setTextSize(1); // establece tamano de texto en 1
oled.print(" TRANSF AUTOMATICA"); // escribe en pantalla el texto
oled.setCursor (18, 12); // ubica cursor en coordenas 10,30
oled.setTextSize(1); // establece tamano de texto en 2
oled.print("RED");
oled.setCursor (10, 22); // ubica cursor en coordenas 10,30
oled.setTextSize(1); // establece tamano de texto en 2
oled.print("V1="); // escribe texto
oled.setCursor (30, 22); // ubica cursor en coordenas 10,30
oled.setTextSize(1); // establece tamano de texto en 2
oled.print(vRR); // escribe texto
oled.setCursor (10, 32); // ubica cursor en coordenas 10,30
oled.setTextSize(1); // establece tamano de texto en 2
oled.print("V2="); // escribe texto
oled.setCursor (30, 32); // ubica cursor en coordenas 10,30
oled.setTextSize(1); // establece tamano de texto en 2
oled.print(vRS); // escribe texto
oled.setCursor (10, 42); // ubica cursor en coordenas 10,30
oled.setTextSize(1); // establece tamano de texto en 2
oled.print("V3="); // escribe texto
oled.setCursor (30, 42); // ubica cursor en coordenas 10,30
oled.setTextSize(1); // establece tamano de texto en 2
oled.print(vRT); // escribe texto
oled.setCursor (1, 57); // ubica cursor en coordenas 10,30
oled.setTextSize(1); // establece tamano de texto en 2
oled.print("R=ON"); // escribe texto
//*************************************************************
oled.setCursor (72, 12); // ubica cursor en coordenas 10,30
oled.setTextSize(1); // establece tamano de texto en 2
oled.print("PLANTA");
oled.setCursor (70, 22); // ubica cursor en coordenas 10,30
oled.setTextSize(1); // establece tamano de texto en 2
oled.print("V1="); // escribe texto
oled.setCursor (90, 22); // ubica cursor en coordenas 10,30
oled.setTextSize(1); // establece tamano de texto en 2
oled.print(vGR); // escribe texto
oled.setCursor (70, 32); // ubica cursor en coordenas 10,30
oled.setTextSize(1); // establece tamano de texto en 2
oled.print("V2="); // escribe texto
oled.setCursor (90, 32); // ubica cursor en coordenas 10,30
oled.setTextSize(1); // establece tamano de texto en 2
oled.print(vGS); // escribe texto
oled.setCursor (70, 42); // ubica cursor en coordenas 10,30
oled.setTextSize(1); // establece tamano de texto en 2
oled.print("V3="); // escribe texto
oled.setCursor (90, 42); // ubica cursor en coordenas 10,30
oled.setTextSize(1); // establece tamano de texto en 2
oled.print(vGS); // escribe texto
oled.setCursor (37, 57); // ubica cursor en coordenas 10,30
oled.setTextSize(1); // establece tamano de texto en 2
oled.print("EMG=OFF"); // escribe texto
oled.setCursor (85, 57); // ubica cursor en coordenas 10,30
oled.setTextSize(1); // establece tamano de texto en 2
oled.print("GEN=OFF"); // escribe texto
oled.display(); // muestra en pantalla todo lo establecido anteriormente
delay(200);
if (!digitalRead(menuButton)){
loop();
regreso = 100; // Carga registro temporal
delay(50);
updateM();
}
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// MENU DE SELECCION
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
void updateM() {
oled.clearDisplay(); // limpia pantalla
oled.setTextColor(WHITE); // establece color al unico disponible (pantalla monocromo)
oled.setCursor(0, 0); // ubica cursor en inicio de coordenadas 0,0
oled.setTextSize(1); // establece tamano de texto en 1
oled.print(" MENU SELECCION"); // escribe en pantalla el texto
oled.setCursor (0, 12); // ubica cursor en coordenas 10,30
oled.setTextSize(1); // establece tamano de texto en 2
oled.print("> GENERAL");
oled.setCursor (0, 22); // ubica cursor en coordenas 10,30
oled.setTextSize(1); // establece tamano de texto en 2
oled.print(" TEMPORIZACIONES");
oled.setCursor (0, 32); // ubica cursor en coordenas 10,30
oled.setTextSize(1); // establece tamano de texto en 2
oled.print(" PARAMETROS RED");
oled.setCursor (0, 42); // ubica cursor en coordenas 10,30
oled.setTextSize(1); // establece tamano de texto en 2
oled.print(" PARAMETROS PLANTA");
oled.display(); // muestra en pantalla todo lo establecido anteriormente
updateMenu();
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//MENU DE SELECCION> INCREMENTA DECREMENTA SELECCION
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
void updateMenu() {
regreso = --regreso;
if (regreso <=2){
delay(100);
loop();
}
if (!digitalRead(downButton)){
menu++;
updateMenu1();
delay(100);
while (!digitalRead(downButton));
}
if (!digitalRead(upButton)){
menu--;
updateMenu1();
delay(100);
while(!digitalRead(upButton));
}
if (!digitalRead(selectButton)){
delay(100);
seleccion();
while (!digitalRead(selectButton));
}
if (regreso <=2){
delay(100);
loop();
}
delay(100);
updateMenu();
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//MENU DE SELECCION> SELECCIONA CASOS
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
void updateMenu1() {
switch (menu) {
case 0:
menu = 1;
break;
case 1:
oled.clearDisplay(); // limpia pantalla
oled.setTextColor(WHITE); // establece color al unico disponible (pantalla monocromo)
oled.setCursor(0, 0); // ubica cursor en inicio de coordenadas 0,0
oled.setTextSize(1); // establece tamano de texto en 1
oled.print(" MENU SELECCION"); // escribe en pantalla el texto
oled.setCursor (0, 12); // ubica cursor en coordenas 10,30
oled.setTextSize(1); // establece tamano de texto en 2
oled.print("> GENERAL");
oled.setCursor (0, 22); // ubica cursor en coordenas 10,30
oled.setTextSize(1); // establece tamano de texto en 2
oled.print(" TEMPORIZACIONES");
oled.setCursor (0, 32); // ubica cursor en coordenas 10,30
oled.setTextSize(1); // establece tamano de texto en 2
oled.print(" PARAMETROS RED");
oled.setCursor (0, 42); // ubica cursor en coordenas 10,30
oled.setTextSize(1); // establece tamano de texto en 2
oled.print(" PARAMETROS PLANTA");
oled.display(); // muestra en pantalla todo lo establecido anteriormente
break;
case 2:
oled.clearDisplay(); // limpia pantalla
oled.setTextColor(WHITE); // establece color al unico disponible (pantalla monocromo)
oled.setCursor(0, 0); // ubica cursor en inicio de coordenadas 0,0
oled.setTextSize(1); // establece tamano de texto en 1
oled.print(" MENU SELECCION"); // escribe en pantalla el texto
oled.setCursor (0, 12); // ubica cursor en coordenas 10,30
oled.setTextSize(1); // establece tamano de texto en 2
oled.print(" GENERAL");
oled.setCursor (0, 22); // ubica cursor en coordenas 10,30
oled.setTextSize(1); // establece tamano de texto en 2
oled.print("> TEMPORIZACIONES");
oled.setCursor (0, 32); // ubica cursor en coordenas 10,30
oled.setTextSize(1); // establece tamano de texto en 2
oled.print(" PARAMETROS RED");
oled.setCursor (0, 42); // ubica cursor en coordenas 10,30
oled.setTextSize(1); // establece tamano de texto en 2
oled.print(" PARAMETROS PLANTA");
oled.display(); // muestra en pantalla todo lo establecido anteriormente
break;
case 3:
oled.clearDisplay(); // limpia pantalla
oled.setTextColor(WHITE); // establece color al unico disponible (pantalla monocromo)
oled.setCursor(0, 0); // ubica cursor en inicio de coordenadas 0,0
oled.setTextSize(1); // establece tamano de texto en 1
oled.print(" MENU SELECCION"); // escribe en pantalla el texto
oled.setCursor (0, 12); // ubica cursor en coordenas 10,30
oled.setTextSize(1); // establece tamano de texto en 2
oled.print(" GENERAL");
oled.setCursor (0, 22); // ubica cursor en coordenas 10,30
oled.setTextSize(1); // establece tamano de texto en 2
oled.print(" TEMPORIZACIONES");
oled.setCursor (0, 32); // ubica cursor en coordenas 10,30
oled.setTextSize(1); // establece tamano de texto en 2
oled.print("> PARAMETROS RED");
oled.setCursor (0, 42); // ubica cursor en coordenas 10,30
oled.setTextSize(1); // establece tamano de texto en 2
oled.print(" PARAMETROS PLANTA");
oled.display(); // muestra en pantalla todo lo establecido anteriormente
break;
case 4:
oled.clearDisplay(); // limpia pantalla
oled.setTextColor(WHITE); // establece color al unico disponible (pantalla monocromo)
oled.setCursor(0, 0); // ubica cursor en inicio de coordenadas 0,0
oled.setTextSize(1); // establece tamano de texto en 1
oled.print(" MENU SELECCION"); // escribe en pantalla el texto
oled.setCursor (0, 12); // ubica cursor en coordenas 10,30
oled.setTextSize(1); // establece tamano de texto en 2
oled.print(" GENERAL");
oled.setCursor (0, 22); // ubica cursor en coordenas 10,30
oled.setTextSize(1); // establece tamano de texto en 2
oled.print(" TEMPORIZACIONES");
oled.setCursor (0, 32); // ubica cursor en coordenas 10,30
oled.setTextSize(1); // establece tamano de texto en 2
oled.print(" PARAMETROS RED");
oled.setCursor (0, 42); // ubica cursor en coordenas 10,30
oled.setTextSize(1); // establece tamano de texto en 2
oled.print("> PARAMETROS PLANTA");
oled.display(); // muestra en pantalla todo lo establecido anteriormente
break;
case 5:
menu = 4;
break;
}
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//MENU DE SELECCION> SELECCIONA CASOS Y ACCION
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
void seleccion() {
switch (menu) {
case 1:
action1();
break;
case 2:
action2();
break;
case 3:
action3();
break;
case 4:
action4();
break;
}
}
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
void action1() {
oled.clearDisplay(); // limpia pantalla
oled.setTextColor(WHITE); // establece color al unico disponible (pantalla monocromo)
oled.setCursor(0, 0); // ubica cursor en inicio de coordenadas 0,0
oled.setTextSize(1); // establece tamano de texto en 1
oled.print(" MENU GENERAL"); // escribe en pantalla el texto
oled.setCursor (0, 12); // ubica cursor en coordenas 10,30
oled.setTextSize(1); // establece tamano de texto en 2
oled.print("> VOLTAJE NOMINAL");
oled.setCursor (0, 22); // ubica cursor en coordenas 10,30
oled.setTextSize(1); // establece tamano de texto en 2
oled.print(" CONTROL SECUENCIA");
oled.display(); // muestra en pantalla todo lo establecido anteriormente
delay(500);
general();
}
void action2() {
oled.clearDisplay(); // limpia pantalla
oled.setTextColor(WHITE); // establece color al unico disponible (pantalla monocromo)
oled.setCursor(0, 0); // ubica cursor en inicio de coordenadas 0,0
oled.setTextSize(1); // establece tamano de texto en 1
oled.print(" MENU TEMPORIZACIONES"); // escribe en pantalla el texto
oled.setCursor (0, 12); // ubica cursor en coordenas 10,30
oled.setTextSize(1); // establece tamano de texto en 2
oled.print("> TIEMPO DE RED");
oled.setCursor (0, 22); // ubica cursor en coordenas 10,30
oled.setTextSize(1); // establece tamano de texto en 2
oled.print(" TIEMPO DE PLANTA");
oled.setCursor (0, 32); // ubica cursor en coordenas 10,30
oled.setTextSize(1); // establece tamano de texto en 2
oled.print(" TIEMPO DE PLANTA");
oled.display(); // muestra en pantalla todo lo establecido anteriormente
regreso = 50;
delay(500);
temporizaciones();
}
void action3() {
oled.clearDisplay(); // limpia pantalla
oled.setTextColor(WHITE); // establece color al unico disponible (pantalla monocromo)
oled.setCursor(0, 0); // ubica cursor en inicio de coordenadas 0,0
oled.setTextSize(1); // establece tamano de texto en 1
oled.print(" MENU PARAMETROS RED"); // escribe en pantalla el texto
oled.display(); // muestra en pantalla todo lo establecido anteriormente
delay(1500);
}
void action4() {
oled.clearDisplay(); // limpia pantalla
oled.setTextColor(WHITE); // establece color al unico disponible (pantalla monocromo)
oled.setCursor(0, 0); // ubica cursor en inicio de coordenadas 0,0
oled.setTextSize(1); // establece tamano de texto en 1
oled.print(" MENU PARAMETROS RED"); // escribe en pantalla el texto
oled.display(); // muestra en pantalla todo lo establecido anteriormente
delay(1500);
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//ENTRA A MENU >GENERAL
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
void general() {
regreso = --regreso;
if (regreso <=2){
oled.clearDisplay(); // limpia pantalla
loop();
}
if (!digitalRead(downButton)){
menu++;
general1();
delay(100);
while (!digitalRead(downButton));
}
if (!digitalRead(upButton)){
menu--;
general1();
delay(100);
while(!digitalRead(upButton));
}
if (!digitalRead(selectButton)){
regreso=100;
generalseleccion();
oled.clearDisplay(); // limpia pantalla
delay(100);
return;
while (!digitalRead(selectButton));
}
if (regreso <=2){
oled.clearDisplay(); // limpia pantalla
loop();
}
delay(100);
general();
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//ENTRA A MENU >GENERAL > SELECCION
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
void general1() {
switch (menu) {
case 0:
menu = 1;
break;
case 1:
oled.clearDisplay(); // limpia pantalla
oled.setTextColor(WHITE); // establece color al unico disponible (pantalla monocromo)
oled.setCursor(0, 0); // ubica cursor en inicio de coordenadas 0,0
oled.setTextSize(1); // establece tamano de texto en 1
oled.print(" MENU GENERAL"); // escribe en pantalla el texto
oled.setCursor (0, 12); // ubica cursor en coordenas 10,30
oled.setTextSize(1); // establece tamano de texto en 2
oled.print("> VOLTAJE NOMINAL");
oled.setCursor (0, 22); // ubica cursor en coordenas 10,30
oled.setTextSize(1); // establece tamano de texto en 2
oled.print(" CONTROL SECUENCIA");
oled.display(); // muestra en pantalla todo lo establecido anteriormente
break;
case 2:
oled.clearDisplay(); // limpia pantalla
oled.setTextColor(WHITE); // establece color al unico disponible (pantalla monocromo)
oled.setCursor(0, 0); // ubica cursor en inicio de coordenadas 0,0
oled.setTextSize(1); // establece tamano de texto en 1
oled.print(" MENU GENERAL"); // escribe en pantalla el texto
oled.setCursor (0, 12); // ubica cursor en coordenas 10,30
oled.setTextSize(1); // establece tamano de texto en 2
oled.print(" VOLTAJE NOMINAL");
oled.setCursor (0, 22); // ubica cursor en coordenas 10,30
oled.setTextSize(1); // establece tamano de texto en 2
oled.print("> CONTROL SECUENCIA");
oled.display(); // muestra en pantalla todo lo establecido anteriormente
case 3:
menu = 2;
break;
}
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//ENTRA A MENU >GENERAL > SELECCION > CASE 1
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
void generalseleccion() {
switch (menu) {
case 1:
action11();
break;
case 2:
action22();
break;
}
}
void action11() {
oled.clearDisplay(); // limpia pantalla
oled.setTextColor(WHITE); // establece color al unico disponible (pantalla monocromo)
oled.setCursor(0, 0); // ubica cursor en inicio de coordenadas 0,0
oled.setTextSize(1); // establece tamano de texto en 1
oled.print(" MENU GENERAL"); // escribe en pantalla el texto
oled.setCursor (0, 12); // ubica cursor en coordenas 10,30
oled.setTextSize(1); // establece tamano de texto en 2
oled.print(" V - NOMINAL=>");
oled.print(vnominal);
oled.setCursor (0, 22); // ubica cursor en coordenas 10,30
oled.setTextSize(1); // establece tamano de texto en 2
oled.print(" CONTROL SECUENCIA=");
oled.print(ctlsecno);
oled.display(); // muestra en pantalla todo lo establecido anteriormente
delay(300);
regreso = --regreso;
if (regreso <=2){
loop();
}
if (!digitalRead(downButton)){
delay(100);
vnominal=vnominal-1;
}
if (!digitalRead(upButton)){
delay(100);
vnominal=vnominal+1;
}
if (!digitalRead(selectButton)){
regreso=100;
delay(200);
oled.clearDisplay(); // limpia pantalla
// menu=1;
action1();
return;
while (!digitalRead(selectButton));
}
if (regreso <=2){
loop();
}
action11();
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//ENTRA A MENU > GENERAL
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
void action22(){
oled.clearDisplay(); // limpia pantalla
oled.setTextColor(WHITE); // establece color al unico disponible (pantalla monocromo)
oled.setCursor(0, 0); // ubica cursor en inicio de coordenadas 0,0
oled.setTextSize(1); // establece tamano de texto en 1
oled.print(" MENU GENERAL"); // escribe en pantalla el texto
oled.setCursor (0, 12); // ubica cursor en coordenas 10,30
oled.setTextSize(1); // establece tamano de texto en 2
oled.print(" V- NOMINAL=");
oled.print(vnominal);
oled.setCursor (0, 22); // ubica cursor en coordenas 10,30
oled.setTextSize(1); // establece tamano de texto en 2
oled.print(" CONTROL SECUENCIA=>");
oled.print(ctlsecno);
oled.display(); // muestra en pantalla todo lo establecido anteriormente
delay(200);
regreso = --regreso;
if (regreso <=2){
oled.clearDisplay(); // limpia pantalla
loop();
}
if (!digitalRead(downButton)){
menu++;
general2();
delay(100);
while (!digitalRead(downButton));
}
if (!digitalRead(upButton)){
menu--;
general2();
delay(100);
while(!digitalRead(upButton));
}
if (!digitalRead(selectButton)){
regreso=100;
generalseleccion2();
oled.clearDisplay(); // limpia pantalla
delay(200);
return;
while (!digitalRead(selectButton));
}
if (regreso <=2){
oled.clearDisplay(); // limpia pantalla
loop();
}
action22();
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//ENTRA A MENU > GENERAL
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
void general2() {
switch (menu) {
case 0:
menu = 1;
break;
case 1:
oled.clearDisplay(); // limpia pantalla
oled.setTextColor(WHITE); // establece color al unico disponible (pantalla monocromo)
oled.setCursor(0, 0); // ubica cursor en inicio de coordenadas 0,0
oled.setTextSize(1); // establece tamano de texto en 1
oled.print(" MENU GENERAL"); // escribe en pantalla el texto
oled.setCursor (0, 12); // ubica cursor en coordenas 10,30
oled.setTextSize(1); // establece tamano de texto en 2
oled.print(" VOLTAJE NOMINAL=");
oled.print(vnominal);
oled.setCursor (0, 22); // ubica cursor en coordenas 10,30
oled.setTextSize(1); // establece tamano de texto en 2
oled.print(" CONTROL SECUENCIA=>");
oled.print(ctlsecsi);
oled.display(); // muestra en pantalla todo lo establecido anteriormente
break;
case 2:
oled.clearDisplay(); // limpia pantalla
oled.setTextColor(WHITE); // establece color al unico disponible (pantalla monocromo)
oled.setCursor(0, 0); // ubica cursor en inicio de coordenadas 0,0
oled.setTextSize(1); // establece tamano de texto en 1
oled.print(" MENU GENERAL"); // escribe en pantalla el texto
oled.setCursor (0, 12); // ubica cursor en coordenas 10,30
oled.setTextSize(1); // establece tamano de texto en 2
oled.print(" VOLTAJE NOMINAL=");
oled.print(vnominal);
oled.setCursor (0, 22); // ubica cursor en coordenas 10,30
oled.setTextSize(1); // establece tamano de texto en 2
oled.print(" CONTROL SECUENCIA=>");
oled.print(ctlsecno);
oled.display(); // muestra en pantalla todo lo establecido anteriormente
break;
case 3:
menu = 2;
break;
}
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//ENTRA A MENU >GENERAL
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
void generalseleccion2() {
switch (menu) {
case 1:
ctl=1;
action13();
break;
case 2:
ctl=2;
action13();
break;
}
}
void action13() {
action1();
}
//*******************************************************************************
//*******************************************************************************
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//ENTRA A MENU >TEMPORIZACIONES
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
void temporizaciones() {
regreso = --regreso;
if (regreso <=2){
oled.clearDisplay(); // limpia pantalla
loop();
}
if (!digitalRead(downButton)){
menu++;
delay(100);
tempori();
while (!digitalRead(downButton));
}
if (!digitalRead(upButton)){
menu--;
delay(100);
tempori();
while(!digitalRead(upButton));
}
if (!digitalRead(selectButton)){
regreso=100;
generalseleccion3();
oled.clearDisplay(); // limpia pantalla
delay(100);
return;
while (!digitalRead(selectButton));
}
if (regreso <=2){
oled.clearDisplay(); // limpia pantalla
loop();
}
delay(100);
temporizaciones();
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//ENTRA A MENU >GENERAL > SELECCION > temporizaciones
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
void tempori() {
switch (menu) {
case 0:
menu = 1;
break;
case 1:
oled.clearDisplay(); // limpia pantalla
oled.setTextColor(WHITE); // establece color al unico disponible (pantalla monocromo)
oled.setCursor(0, 0); // ubica cursor en inicio de coordenadas 0,0
oled.setTextSize(1); // establece tamano de texto en 1
oled.print(" MENU TEMPORIZACIONES"); // escribe en pantalla el texto
oled.setCursor (0, 12); // ubica cursor en coordenas 10,30
oled.setTextSize(1); // establece tamano de texto en 2
oled.print("> TIEMPO DE RED");
oled.setCursor (0, 22); // ubica cursor en coordenas 10,30
oled.setTextSize(1); // establece tamano de texto en 2
oled.print(" TIEMPO PLANTA");
oled.setCursor (0, 32); // ubica cursor en coordenas 10,30
oled.setTextSize(1); // establece tamano de texto en 2
oled.print(" TIEMPO MUERTO");
oled.display(); // muestra en pantalla todo lo establecido anteriormente
menu=1;
break;
case 2:
oled.clearDisplay(); // limpia pantalla
oled.setTextColor(WHITE); // establece color al unico disponible (pantalla monocromo)
oled.setCursor(0, 0); // ubica cursor en inicio de coordenadas 0,0
oled.setTextSize(1); // establece tamano de texto en 1
oled.print(" MENU TEMPORIZACIONES"); // escribe en pantalla el texto
oled.setCursor (0, 12); // ubica cursor en coordenas 10,30
oled.setTextSize(1); // establece tamano de texto en 2
oled.print(" TIEMPO DE RED");
oled.setCursor (0, 22); // ubica cursor en coordenas 10,30
oled.setTextSize(1); // establece tamano de texto en 2
oled.print("> TIEMPO PLANTA");
oled.setCursor (0, 32); // ubica cursor en coordenas 10,30
oled.setTextSize(1); // establece tamano de texto en 2
oled.print(" TIEMPO MUERTO");
oled.display(); // muestra en pantalla todo lo establecido anteriormente
menu=2;
break;
case 3:
oled.clearDisplay(); // limpia pantalla
oled.setTextColor(WHITE); // establece color al unico disponible (pantalla monocromo)
oled.setCursor(0, 0); // ubica cursor en inicio de coordenadas 0,0
oled.setTextSize(1); // establece tamano de texto en 1
oled.print(" MENU TEMPORIZACIONES"); // escribe en pantalla el texto
oled.setCursor (0, 12); // ubica cursor en coordenas 10,30
oled.setTextSize(1); // establece tamano de texto en 2
oled.print(" TIEMPO DE RED");
oled.setCursor (0, 22); // ubica cursor en coordenas 10,30
oled.setTextSize(1); // establece tamano de texto en 2
oled.print(" TIEMPO PLANTA");
oled.setCursor (0, 32); // ubica cursor en coordenas 10,30
oled.setTextSize(1); // establece tamano de texto en 2
oled.print("> TIEMPO MUERTO");
oled.display(); // muestra en pantalla todo lo establecido anteriormente
menu=3;
break;
case 4:
menu = 3;
break;
}
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//ENTRA A MENU >TEMPORIZACIONES
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
void generalseleccion3() {
switch (menu) {
case 0:
break;
case 1:
action12();
break;
case 2:
action12();
break;
case 3:
action12();
break;
}
}
//*************************************************************************
void action12() {
regreso = --regreso;
if (regreso <=2){
oled.clearDisplay(); // limpia pantalla
loop();
}
if (!digitalRead(downButton)){
menu++;
redap();
delay(100);
while (!digitalRead(downButton));
}
if (!digitalRead(upButton)){
menu--;
redap();
delay(100);
while(!digitalRead(upButton));
}
if (regreso <=2){
oled.clearDisplay(); // limpia pantalla
loop();
}
delay(100);
action12();
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//ENTRA A MENU >GENERAL > SELECCION > TIEMPO DE RED
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
void redap() {
switch (menu) {
case 0:
menu = 1;
break;
case 1:
oled.clearDisplay(); // limpia pantalla
oled.setTextColor(WHITE); // establece color al unico disponible (pantalla monocromo)
oled.setCursor(0, 0); // ubica cursor en inicio de coordenadas 0,0
oled.setTextSize(1); // establece tamano de texto en 1
oled.print(" MENU TIEMPOS DE RED"); // escribe en pantalla el texto
oled.setCursor (0, 12); // ubica cursor en coordenas 10,30
oled.setTextSize(1); // establece tamano de texto en 2
oled.print("> RED A PLANTA=");
oled.print(redaplanta);
oled.setCursor (0, 22); // ubica cursor en coordenas 10,30
oled.setTextSize(1); // establece tamano de texto en 2
oled.print(" RETORNO DE RED");
oled.print(retornored);
oled.display(); // muestra en pantalla todo lo establecido anteriormente
break;
case 2:
oled.clearDisplay(); // limpia pantalla
oled.setTextColor(WHITE); // establece color al unico disponible (pantalla monocromo)
oled.setCursor(0, 0); // ubica cursor en inicio de coordenadas 0,0
oled.setTextSize(1); // establece tamano de texto en 1
oled.print(" MENU TIEMPOS DE RED"); // escribe en pantalla el texto
oled.setCursor (0, 12); // ubica cursor en coordenas 10,30
oled.setTextSize(1); // establece tamano de texto en 2
oled.print(" RED A PLANTA=");
oled.print(redaplanta);
oled.setCursor (0, 22); // ubica cursor en coordenas 10,30
oled.setTextSize(1); // establece tamano de texto en 2
oled.print("> RETORNO DE RED");
oled.print(retornored);
oled.display(); // muestra en pantalla todo lo establecido anteriormente
break;
case 3:
menu = 2;
break;
}
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//ENTRA A MENU >TEMPORIZACIONES
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
void generalseleccion4() {
switch (menu) {
case 1:
oled.clearDisplay(); // limpia pantalla
oled.setTextColor(WHITE); // establece color al unico disponible (pantalla monocromo)
oled.setCursor(0, 0); // ubica cursor en inicio de coordenadas 0,0
oled.setTextSize(1); // establece tamano de texto en 1
oled.print(" MENU TIEMPOS DE RED"); // escribe en pantalla el texto
oled.setCursor (0, 12); // ubica cursor en coordenas 10,30
oled.setTextSize(1); // establece tamano de texto en 2
oled.print("> RED A PLANTA=");
oled.print(redaplanta);
oled.setCursor (0, 22); // ubica cursor en coordenas 10,30
oled.setTextSize(1); // establece tamano de texto en 2
oled.print(" RETORNO DE RED");
oled.print(retornored);
oled.display(); // muestra en pantalla todo lo establecido anteriormente
action14();
break;
case 2:
oled.clearDisplay(); // limpia pantalla
oled.setTextColor(WHITE); // establece color al unico disponible (pantalla monocromo)
oled.setCursor(0, 0); // ubica cursor en inicio de coordenadas 0,0
oled.setTextSize(1); // establece tamano de texto en 1
oled.print(" MENU TIEMPOS DE RED"); // escribe en pantalla el texto
oled.setCursor (0, 12); // ubica cursor en coordenas 10,30
oled.setTextSize(1); // establece tamano de texto en 2
oled.print(" RED A PLANTA=");
oled.print(redaplanta);
oled.setCursor (0, 22); // ubica cursor en coordenas 10,30
oled.setTextSize(1); // establece tamano de texto en 2
oled.print("> RETORNO DE RED");
oled.print(retornored);
oled.display(); // muestra en pantalla todo lo establecido anteriormente
action15();
break;
}
}
//*************************************************************************
void action14() {
delay(300);
regreso = --regreso;
if (regreso <=2){
loop();
}
if (!digitalRead(downButton)){
delay(100);
redaplanta=redaplanta-1;
}
if (!digitalRead(upButton)){
delay(100);
redaplanta=redaplanta+1;
}
if (!digitalRead(selectButton)){
regreso=100;
delay(200);
oled.clearDisplay(); // limpia pantalla
action12();
return;
while (!digitalRead(selectButton));
}
oled.clearDisplay(); // limpia pantalla
oled.setTextColor(WHITE); // establece color al unico disponible (pantalla monocromo)
oled.setCursor(0, 0); // ubica cursor en inicio de coordenadas 0,0
oled.setTextSize(1); // establece tamano de texto en 1
oled.print(" MENU TIEMPOS DE RED"); // escribe en pantalla el texto
oled.setCursor (0, 12); // ubica cursor en coordenas 10,30
oled.setTextSize(1); // establece tamano de texto en 2
oled.print(" RED A PLANTA=>");
oled.print(redaplanta);
oled.setCursor (0, 22); // ubica cursor en coordenas 10,30
oled.setTextSize(1); // establece tamano de texto en 2
oled.print("> RETORNO DE RED");
oled.print(retornored);
oled.display(); // muestra en pantalla todo lo establecido anteriormente
if (regreso <=2){
oled.clearDisplay(); // limpia pantalla
loop();
}
action14();
}
void action15() {
delay(300);
regreso = --regreso;
if (regreso <=2){
loop();
}
if (!digitalRead(downButton)){
delay(100);
retornored=retornored-1;
}
if (!digitalRead(upButton)){
delay(100);
retornored=retornored+1;
}
if (!digitalRead(selectButton)){
regreso=100;
delay(200);
oled.clearDisplay(); // limpia pantalla
action12();
return;
while (!digitalRead(selectButton));
}
oled.clearDisplay(); // limpia pantalla
oled.setTextColor(WHITE); // establece color al unico disponible (pantalla monocromo)
oled.setCursor(0, 0); // ubica cursor en inicio de coordenadas 0,0
oled.setTextSize(1); // establece tamano de texto en 1
oled.print(" MENU TIEMPOS DE RED"); // escribe en pantalla el texto
oled.setCursor (0, 12); // ubica cursor en coordenas 10,30
oled.setTextSize(1); // establece tamano de texto en 2
oled.print(" RED A PLANTA=>");
oled.print(redaplanta);
oled.setCursor (0, 22); // ubica cursor en coordenas 10,30
oled.setTextSize(1); // establece tamano de texto en 2
oled.print("> RETORNO DE RED");
oled.print(retornored);
oled.display(); // muestra en pantalla todo lo establecido anteriormente
if (regreso <=2){
oled.clearDisplay(); // limpia pantalla
loop();
}
action15();
}
//*****************************************************************