#include <U8g2lib.h> // Biblioteca para manejar la pantalla OLED
#include <Encoder.h> // Biblioteca para manejar el encoder rotativo
#include <Wire.h>
//U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE); // Inicialización del objeto OLED
U8G2_SH1106_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE); // Inicialización del objeto OLED
Encoder myEncoder(3, 7); // Declaración del encoder rotativo en pines 3 y 4
const int botonPulsadorEncoder = 4; // Pin del pulsador del encoder
const int botonPulsadorSalida = 12; // Pin del pulsador para habilitar la salida PWM
const int Maquina1 = 10; // Pin de la salida PWM
int renglonSeleccionado = 1; // Renglon seleccionado (1 para el primer renglón, 2 para el segundo renglón)
int ultimoEncoderPos = 0; // Última posición del encoder
int voltaje = 0; // Voltaje por defecto
int decimal = 0;
int intensidad = 0;
int modo = 1; // Modo por defecto
int tiempo = 2;
int duty = 20;
int valorPWM = 0; // Valor PWM inicial
int estado;
int Modificar;
int estadoP;
int Actuar;
int parpadeo;
int maquina = 1;
int cuenta = 0;
int flag = LOW;
int CamP = LOW;
const int Maquina2 = 11;
int Vmaq1 = 3;
int Dmaq1 = 0;
int Vmaq2 = 3;
int Dmaq2 = 0;
int Efecto= 0;
const int Efec = 9;
unsigned long previousMillis1 = 0;
unsigned long previousMillis2 = 0;
unsigned long currentMillis = 0;
int DutyOn = HIGH;
//***********LOGO******************
static const unsigned char logoH [] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xf8, 0xff, 0xc0, 0x1f, 0xfc, 0x3f, 0xe0, 0x07, 0x3f, 0xfe, 0x01, 0x80, 0xf0, 0x03, 0x00,
0x00, 0xf8, 0xff, 0xc3, 0x1f, 0xfc, 0x3f, 0xf8, 0x1f, 0x3f, 0xff, 0x00, 0xd8, 0xf8, 0x03, 0x00,
0x00, 0xf8, 0xff, 0xc7, 0x1f, 0xfc, 0x3f, 0xf8, 0x3f, 0x3f, 0xff, 0x00, 0xf8, 0xf9, 0x03, 0x00,
0x00, 0xf8, 0xff, 0xcf, 0x1f, 0xfe, 0x3f, 0xfc, 0x3f, 0x3f, 0x7f, 0xf0, 0xf8, 0xff, 0x00, 0x00,
0x00, 0xf8, 0xff, 0xcf, 0x1f, 0xfe, 0x3f, 0xfe, 0x3f, 0xbf, 0x3f, 0xf8, 0xfb, 0xff, 0x00, 0x00,
0x00, 0xf8, 0xff, 0xcf, 0x1f, 0xfe, 0x3f, 0xfe, 0x7f, 0xbf, 0x1f, 0xfc, 0xff, 0x7f, 0x00, 0x00,
0x00, 0xf8, 0xff, 0xdf, 0x1f, 0x7e, 0x3f, 0xff, 0x7f, 0xff, 0x0f, 0xfc, 0xff, 0x7f, 0x00, 0x00,
0x00, 0xe0, 0xc7, 0xdf, 0x1f, 0x7e, 0x7f, 0x7f, 0x7e, 0xff, 0x0f, 0xe0, 0xff, 0x0f, 0x00, 0x00,
0x00, 0xe0, 0xc7, 0xcf, 0x1f, 0x7e, 0x7f, 0x3f, 0x7e, 0xff, 0x0f, 0xc0, 0xff, 0x07, 0x00, 0x00,
0x00, 0xe0, 0xe7, 0xcf, 0x1f, 0x7e, 0x7f, 0x3f, 0x7e, 0xff, 0x0f, 0x80, 0xfc, 0x01, 0x00, 0x00,
0x00, 0xe0, 0xff, 0xcf, 0x1f, 0xfe, 0xff, 0x1f, 0x7c, 0xff, 0x9f, 0x03, 0xc0, 0x01, 0x00, 0x00,
0x00, 0xe0, 0xff, 0xcf, 0x1f, 0xfe, 0xff, 0x1f, 0x00, 0xff, 0xdf, 0xe7, 0x80, 0x00, 0x00, 0x00,
0x00, 0xe0, 0xff, 0xdf, 0x1f, 0xff, 0xff, 0x3f, 0x00, 0xff, 0xbf, 0xff, 0x00, 0x00, 0x00, 0x00,
0x00, 0xe0, 0xcf, 0xdf, 0x1f, 0xff, 0xff, 0x3f, 0x00, 0xff, 0x3f, 0xff, 0x3e, 0x00, 0x00, 0x00,
0x00, 0xe0, 0x8f, 0xdf, 0x1f, 0xff, 0xff, 0x7f, 0x00, 0x7f, 0x7f, 0xff, 0x3f, 0x00, 0x00, 0x00,
0x00, 0xe0, 0xcf, 0xff, 0x9f, 0x7f, 0xfe, 0xff, 0x7f, 0x7f, 0x7f, 0xfc, 0x3f, 0x00, 0x00, 0x00,
0x00, 0xe0, 0xff, 0xdf, 0x3f, 0x7f, 0xfe, 0xff, 0xff, 0x7f, 0x7f, 0xf8, 0x8f, 0x73, 0x00, 0x00,
0x00, 0xe0, 0xff, 0xdf, 0xff, 0x43, 0xfe, 0xff, 0xff, 0x7f, 0xfe, 0xf0, 0xc0, 0x7f, 0x1f, 0x00,
0x00, 0xf0, 0xff, 0xdf, 0xff, 0x7f, 0xfe, 0xff, 0xbf, 0x7f, 0xfe, 0x00, 0x80, 0xff, 0x1f, 0x00,
0x00, 0xf0, 0xff, 0xdf, 0xff, 0x7f, 0xfe, 0xfd, 0xbf, 0x7f, 0xfe, 0x01, 0x00, 0xff, 0x07, 0x00,
0x00, 0xf0, 0xff, 0xef, 0xff, 0x7f, 0xfe, 0xf9, 0xbf, 0x7f, 0xfe, 0x01, 0x00, 0xfc, 0x03, 0x00,
0x00, 0xf0, 0xff, 0xe3, 0xff, 0x7f, 0xfe, 0xe1, 0xbf, 0x7f, 0xfc, 0x03, 0x00, 0x70, 0x00, 0x00,
0x00, 0xe0, 0x7f, 0xc0, 0xff, 0x7f, 0xfc, 0x00, 0x3f, 0x3f, 0xf8, 0x01, 0x00, 0x20, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xe0, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xf8, 0x0f, 0xf8, 0xef, 0xef, 0xff, 0xdf, 0xff, 0xe7, 0xff, 0x07, 0xff, 0x1f, 0x00, 0x00,
0x00, 0xf8, 0x0f, 0xf8, 0xef, 0xef, 0xff, 0xdf, 0xff, 0xe7, 0xff, 0x0f, 0xff, 0x7f, 0x00, 0x00,
0x00, 0xf0, 0x0f, 0xf8, 0xef, 0xef, 0xff, 0xcf, 0xff, 0xe7, 0xff, 0x1f, 0xff, 0xff, 0x00, 0x00,
0x00, 0xf0, 0x0f, 0xf8, 0xef, 0xe7, 0xff, 0xcf, 0xff, 0xe7, 0xff, 0x3f, 0xff, 0xff, 0x01, 0x00,
0x00, 0xf0, 0x0f, 0xf8, 0xe7, 0xe7, 0xff, 0xcf, 0xff, 0xe7, 0xff, 0x7f, 0xff, 0xff, 0x03, 0x00,
0x00, 0xf0, 0x0f, 0xf8, 0xe7, 0xe7, 0xff, 0xc7, 0xff, 0xe7, 0xff, 0x7f, 0xff, 0xff, 0x03, 0x00,
0x00, 0xf0, 0x0f, 0xf8, 0xe7, 0xe7, 0xf3, 0xc7, 0xff, 0xe7, 0xff, 0x7f, 0xff, 0xff, 0x03, 0x00,
0x00, 0xf0, 0x0f, 0xf8, 0xe7, 0x07, 0xf8, 0xe3, 0xef, 0x87, 0x1f, 0x7f, 0xf8, 0xf9, 0x07, 0x00,
0x00, 0xe0, 0x8f, 0xf8, 0xe7, 0x07, 0xf8, 0xe3, 0xe7, 0x87, 0x1f, 0x7e, 0xf8, 0xf9, 0x07, 0x00,
0x00, 0xe0, 0x8f, 0xf9, 0xe3, 0x07, 0xf8, 0xe3, 0xe7, 0x87, 0xbf, 0x7f, 0xf8, 0xf1, 0x07, 0x00,
0x00, 0xe0, 0xcf, 0xf9, 0xe3, 0x0f, 0xfc, 0xe1, 0xff, 0x8f, 0xff, 0x7f, 0xf8, 0xf1, 0x07, 0x00,
0x00, 0xe0, 0xcf, 0xf9, 0xe3, 0x0f, 0xfc, 0xe1, 0xff, 0x8f, 0xff, 0x3f, 0xf8, 0xf1, 0x07, 0x00,
0x00, 0xe0, 0xef, 0xfb, 0xe3, 0x0f, 0xfc, 0xe1, 0xff, 0x8f, 0xff, 0x3f, 0xf8, 0xf1, 0x07, 0x00,
0x00, 0xe0, 0xef, 0xfb, 0xe3, 0x0f, 0xfe, 0xf1, 0xff, 0x8f, 0xff, 0x3f, 0xf8, 0xf1, 0x07, 0x00,
0x00, 0xe0, 0xff, 0xff, 0xe3, 0x0f, 0xfe, 0xf0, 0xff, 0x8f, 0xff, 0x3f, 0xfc, 0xfb, 0x07, 0x00,
0x00, 0xe0, 0xff, 0xff, 0xe3, 0x0f, 0xff, 0xf0, 0xff, 0x8f, 0xbf, 0x3f, 0xfc, 0xfb, 0x07, 0x00,
0x00, 0xc0, 0xff, 0xff, 0xe3, 0x0f, 0xff, 0xf0, 0xcf, 0x9f, 0x3f, 0x7f, 0xfc, 0xff, 0x03, 0x00,
0x00, 0xc0, 0xff, 0xff, 0xf3, 0x8f, 0xff, 0xf1, 0xcf, 0x9f, 0x3f, 0x7f, 0xfc, 0xff, 0x03, 0x00,
0x00, 0xc0, 0xff, 0xff, 0xf1, 0x8f, 0xff, 0xff, 0xe0, 0xdf, 0x3f, 0xff, 0xfc, 0xff, 0x03, 0x00,
0x00, 0xc0, 0xff, 0xff, 0xf1, 0xcf, 0xff, 0xff, 0xef, 0xdf, 0x3f, 0xff, 0xfc, 0xff, 0x01, 0x00,
0x00, 0xc0, 0x7f, 0xff, 0xf1, 0xdf, 0xff, 0xff, 0xef, 0xff, 0x7f, 0xff, 0xfc, 0xff, 0x00, 0x00,
0x00, 0xc0, 0x7f, 0xff, 0xf1, 0xff, 0xff, 0xff, 0xef, 0xff, 0x7f, 0xfe, 0xfd, 0x7f, 0x00, 0x00,
0x00, 0xc0, 0x3f, 0xfe, 0xf1, 0xff, 0xff, 0xff, 0xef, 0xff, 0x7f, 0xfe, 0xfd, 0x3f, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
static const unsigned char logoH2 [] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x0f, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0xf8, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0xfc, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0f, 0x00, 0x7e, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x1f, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x80, 0x0f, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0xc8, 0x0f, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x0f, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x07, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1d, 0x60, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x1f, 0xf8, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0f, 0xf4, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x07, 0xf2, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, 0xe9, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xde, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xda, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe2, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe7, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0x1f, 0x70, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x61, 0x41, 0x1c, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x78, 0x9f, 0x07, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0xf0, 0x03, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0xff, 0x00, 0xe0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x1f, 0x00, 0xfc, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3c, 0x00, 0x9c, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0xfc, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0x01, 0xfc, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x03, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x03, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x47, 0x7f, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xe7, 0x0f, 0x7e, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xc3, 0x03, 0x7e, 0x80, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xe8, 0xc3, 0x03, 0x3e, 0xc0, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe7, 0x07, 0x3f, 0xc0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x0f, 0x3f, 0xe0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x1f, 0x1f, 0xe1, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x8f, 0x1f, 0x9f, 0xf1, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0f, 0x9f, 0xdf, 0xf1, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x8f, 0xbf, 0xff, 0xf9, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xdf, 0x9f, 0xff, 0xfd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xdf, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xdf, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x8f, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x03, 0xce, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x00, 0xc0, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0xc0, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
static const unsigned char Shark [] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x40, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x40, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x40, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x40, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xa0, 0x01, 0x00, 0x00, 0x40, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x40, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x60, 0x03, 0x00, 0x00, 0x60, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x60, 0x06, 0x00, 0x00, 0x60, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x40, 0x04, 0x00, 0x00, 0x30, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xc0, 0x0c, 0x00, 0x00, 0x1c, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x07, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x30, 0x00, 0xc0, 0x01, 0x00, 0x80, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x60, 0x00, 0x78, 0x00, 0x00, 0x00, 0xfc, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xc0, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x80, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x80, 0x81, 0x03, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x1f, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xe3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xc0, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00,
0x00, 0x00, 0x70, 0xf0, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00,
0x00, 0x00, 0x30, 0x3c, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00,
0x00, 0x00, 0x18, 0x0f, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x03, 0x00, 0x00,
0x00, 0x00, 0xec, 0x03, 0x00, 0xf0, 0x01, 0x00, 0x00, 0x00, 0x00, 0xff, 0xe3, 0x01, 0x00, 0x00,
0x00, 0x00, 0x7c, 0x00, 0x00, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x7f, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x0f, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x03, 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0xf0, 0xff, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x80, 0xdf, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0xf8, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x0f, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xe3, 0x03, 0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x7e, 0x80, 0x3b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x07, 0xc0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x83, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x98, 0xd9, 0x00, 0xc7, 0x0d, 0x38, 0x08, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd8, 0xed, 0x80, 0xe9, 0x42, 0x24, 0x0f, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb8, 0x87, 0x83, 0x68, 0x46, 0x32, 0x0f, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x1b, 0x82, 0x16, 0xec, 0xae, 0x1d, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x01, 0x00, 0x70, 0x01, 0x10, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
//*********************************
void setup() {
u8g2.begin(); // Inicialización de la pantalla OLED
//u8g2.firstPage();
//u8g2.setDrawColor(1);
pinMode(botonPulsadorEncoder, INPUT_PULLUP); // Configuración del pulsador del encoder como entrada con resistencia pull-up
pinMode(5, INPUT);
pinMode(6, INPUT);
pinMode(Maquina1, OUTPUT); // Configuración de la salida PWM
pinMode(Maquina2,OUTPUT);
pinMode(Efec,OUTPUT);
estado=LOW;
voltaje = Vmaq1;
decimal = Dmaq1;
// Serial.begin(9600);
//***********muestra logo**************
u8g2.clearBuffer();
u8g2.drawXBMP(0, 0, 128, 64, logoH);
u8g2.sendBuffer();
delay(800);
u8g2.clearBuffer();
//u8g2.sendBuffer();
//delay(50);
u8g2.drawXBMP(0, 0, 128, 64, logoH2);
u8g2.sendBuffer();
delay(800);
u8g2.clearBuffer();
//delay(100);
u8g2.drawXBMP(0, 0, 128, 64, Shark);
u8g2.sendBuffer();
delay(300);
//*****
//************************************
}
void loop() {
// Leer el encoder rotativo y cambiar entre renglones
currentMillis = millis();
int encoderPos = (myEncoder.read())/(-4);
if (encoderPos != ultimoEncoderPos) {
if (Modificar == LOW){
if (encoderPos > ultimoEncoderPos && renglonSeleccionado > 1) {
renglonSeleccionado--; // Mover hacia abajo si el encoder gira en sentido horario y no está en el último renglón
} else if (encoderPos < ultimoEncoderPos && renglonSeleccionado < 5) {
renglonSeleccionado++; // Mover hacia arriba si el encoder gira en sentido antihorario y no está en el primer renglón
}
ultimoEncoderPos = encoderPos; // Actualizar la última posición del encoder
delay(80); // Pequeño retraso para evitar múltiples cambios al girar rápidamente el encoder
}
//Serial.println(Actuar);
// Actualizar el valor de tensión y el modo seleccionado
if (renglonSeleccionado == 1) {
// Cambiar el valor de tensión si el primer renglón está seleccionado
if (Modificar == HIGH){
//voltaje += (encoderPos - ultimoEncoderPos);
decimal += (encoderPos - ultimoEncoderPos);
if (decimal > 9){
decimal = 0;
voltaje ++;
} else if (decimal < 0){
if (voltaje == 0) {
decimal = 0;
} else {
decimal= 9;
voltaje--;
}
}
if (voltaje == 12) decimal = 0;
//encoderPos = 0;
ultimoEncoderPos = encoderPos;
if (voltaje < 0) voltaje = 0;
if (voltaje > 12) voltaje = 12;
//Actuar = HIGH;
if (maquina == 1){
Vmaq1 = voltaje;
Dmaq1 = decimal;
}
if (maquina == 2){
Vmaq2 = voltaje;
Dmaq2 = decimal;
}
}
}
if (renglonSeleccionado == 2) {
// Cambiar el modo si el segundo renglón está seleccionado
if (Modificar == HIGH){
modo += (encoderPos - ultimoEncoderPos);
ultimoEncoderPos = encoderPos;
if (modo < 1) modo = 1;
if (modo > 6) modo = 6;
Actuar = HIGH;
}
}
if (renglonSeleccionado == 3) {
// Cambiar de maquina si el segundo renglón está seleccionado
if (Modificar == HIGH){
maquina += (encoderPos - ultimoEncoderPos);
ultimoEncoderPos = encoderPos;
if (maquina < 1) maquina = 1;
if (maquina > 2) maquina = 2;
}
if (maquina == 1){
// maquina = 2;
voltaje = Vmaq2;
decimal = Dmaq2;
} else if (maquina == 2){
// maquina = 1;
voltaje = Vmaq1;
decimal = Dmaq1;
}
}
if (renglonSeleccionado == 4) {
// modifica el tiempo del ciclo de trabajo
if (Modificar == HIGH){
tiempo += (encoderPos - ultimoEncoderPos);
ultimoEncoderPos = encoderPos;
if (tiempo < 1) tiempo = 1;
if (tiempo > 10) tiempo = 10;
}
}
if (renglonSeleccionado == 5) {
// modifica el duty del ciclo de trabajo
if (Modificar == HIGH){
duty += (encoderPos - ultimoEncoderPos)*5;
ultimoEncoderPos = encoderPos;
if (duty < 5) duty = 5;
if (duty > 95) duty = 95;
}
}
}
//************activar salida segun modo y pedal******
//if (Modificar == LOW) {
intensidad = (voltaje*10)+decimal;
if (modo == 1 || modo == 3) {
if (digitalRead(botonPulsadorSalida) == HIGH) {
delay(50); // Debounce
if(maquina == 1){
valorPWM = 0;
analogWrite(Maquina1, 0); // Desactivar salida PWM si está activada
analogWrite(Maquina2, 0); // Desactivar salida PWM si está activada
} else {
valorPWM = 0;
analogWrite(Maquina2, 0); // Desactivar salida PWM si está activada
analogWrite(Maquina1, 0); // Desactivar salida PWM si está activada
}
} else {
//valorPWM = map(voltaje, 0, 12, 0, 255); // Mapear voltaje a valor PWM
valorPWM = map(intensidad, 0, 120, 0, 255); // Mapear voltaje a valor PWM
//analogWrite(salidaPWM, valorPWM); // Activar salida PWM con el valor calculado
if(maquina == 1){
analogWrite(Maquina1, valorPWM); // Desactivar salida PWM si está activada
analogWrite(Maquina2, 0); // Desactivar salida PWM si está activada
} else {
analogWrite(Maquina2, valorPWM); // Desactivar salida PWM si está activada
analogWrite(Maquina1, 0); // Desactivar salida PWM si está activada
}
}
} else if (modo == 2 || modo == 4) {
if (Actuar == HIGH) {
if(maquina == 1){
valorPWM = 0;
analogWrite(Maquina1, 0); // Desactivar salida PWM si está activada
analogWrite(Maquina2, 0); // Desactivar salida PWM si está activada
} else {
valorPWM = 0;
analogWrite(Maquina2, 0); // Desactivar salida PWM si está activada
analogWrite(Maquina1, 0); // Desactivar salida PWM si está activada
}
//analogWrite(salidaPWM, 0); // Desactivar salida PWM si está activada
} else {
//valorPWM = map(voltaje, 0, 12, 0, 255); // Mapear voltaje a valor PWM
valorPWM = map(intensidad, 0, 120, 0, 255); // Mapear voltaje a valor PWM
//analogWrite(salidaPWM, valorPWM); // Activar salida PWM con el valor calculado
if(maquina == 1){
analogWrite(Maquina1, valorPWM); // Desactivar salida PWM si está activada
analogWrite(Maquina2, 0); // Desactivar salida PWM si está activada
} else {
analogWrite(Maquina2, valorPWM); // Desactivar salida PWM si está activada
analogWrite(Maquina1, 0); // Desactivar salida PWM si está activada
}
}
} else if (modo == 5 || modo == 6) { //esto es para activar la salida con el duty
if (Actuar == HIGH) {
if(maquina == 1){
valorPWM = 0;
analogWrite(Maquina1, 0); // Desactivar salida PWM si está activada
analogWrite(Maquina2, 0); // Desactivar salida PWM si está activada
} else {
valorPWM = 0;
analogWrite(Maquina2, 0); // Desactivar salida PWM si está activada
analogWrite(Maquina1, 0); // Desactivar salida PWM si está activada
}
//analogWrite(salidaPWM, 0); // Desactivar salida PWM si está activada
} else {
if (currentMillis - previousMillis1 >= (tiempo * (100 - duty) * 10) && DutyOn == HIGH) {
previousMillis2 = currentMillis;
//previousMillis1 = currentMillis;
DutyOn = LOW;
valorPWM = map(intensidad, 0, 120, 0, 255); // Mapear voltaje a valor PWM
if(maquina == 1){
analogWrite(Maquina1, valorPWM); // Desactivar salida PWM si está activada
analogWrite(Maquina2, 0); // Desactivar salida PWM si está activada
} else {
analogWrite(Maquina2, valorPWM); // Desactivar salida PWM si está activada
analogWrite(Maquina1, 0); // Desactivar salida PWM si está activada
}
}
if (currentMillis - previousMillis2 >= (tiempo * (duty) * 10) && DutyOn == LOW) {
previousMillis1 = currentMillis;
//previousMillis2 = currentMillis;
DutyOn = HIGH;
if(maquina == 1){
valorPWM = 0;
analogWrite(Maquina1, 0); // Desactivar salida PWM si está activada
analogWrite(Maquina2, 0); // Desactivar salida PWM si está activada
} else {
valorPWM = 0;
analogWrite(Maquina2, 0); // Desactivar salida PWM si está activada
analogWrite(Maquina1, 0); // Desactivar salida PWM si está activada
}
//Serial.println(DutyOn);
}
}
}
//*************************Pulsador encoder*******************
if(digitalRead(botonPulsadorEncoder)==LOW && estado==LOW){
// ... se enciende el LED
if (Modificar == LOW){
Modificar = HIGH;
}
else {
Modificar = LOW;
}
// Se establece un retraso de medio segundo entre pulsaciones
delay(100);
// El estado se queda con un valor de HIGH (LED encendido)
estado=HIGH;
}
// Si el pulsador es pulsador cuando el LED está encendido...
if(digitalRead(botonPulsadorEncoder) == HIGH && estado==HIGH){
// El estado se queda con un valor de LOW (LED apagado)
estado=LOW;
}
//*********************************************
//*********************PEDAL***********************
if(digitalRead(botonPulsadorSalida)==LOW && estadoP==LOW){
// ... se enciende el LED
CamP = HIGH;
if (Actuar == LOW){
Actuar = HIGH;
}
else {
Actuar = LOW;
}
// Se establece un retraso de medio segundo entre pulsaciones
delay(150);
// El estado se queda con un valor de HIGH (LED encendido)
estadoP=HIGH;
}
// Si el pulsador es pulsador cuando el LED está encendido...
if(digitalRead(botonPulsadorSalida) == HIGH && estadoP==HIGH){
// El estado se queda con un valor de LOW (LED apagado)
estadoP=LOW;
delay(100);
}
if(modo == 1 || modo == 3){
if(digitalRead(botonPulsadorSalida)==LOW){ //prender led efecto
if(Efecto<255){
Efecto = Efecto + 10;
if(Efecto>255){
Efecto=255;
}
}
}
}
if(modo == 2 || modo == 4 || modo == 5 || modo ==6 ){
if(Actuar == LOW){ //prender led efecto
if(Efecto<256){
Efecto = Efecto + 10;
if(Efecto>255){
Efecto=255;
}
}
}
}
if(modo == 1 || modo == 3){
if(digitalRead(botonPulsadorSalida)==HIGH){
if(Efecto>0){
Efecto = Efecto - 20;
if(Efecto<0){
Efecto=0;
}
}
}
}
if(modo == 2 || modo == 4 || modo == 5 || modo ==6){
if(Actuar == HIGH){
if(Efecto>0){
Efecto = Efecto - 20;
if(Efecto<0){
Efecto=0;
}
}
}
}
analogWrite(Efec, Efecto);
//*********************************************
//***********CAMBIAR DE MAQUINA CON PEDAL******
if(modo == 3 || modo == 4 || modo == 6){
if (CamP == HIGH && flag == LOW && digitalRead(botonPulsadorSalida) == HIGH){
flag = HIGH;
cuenta = 0;
CamP = LOW;
}
if (CamP == HIGH && flag == HIGH && cuenta < 4 && estadoP == LOW && digitalRead(botonPulsadorSalida) == HIGH){
flag = LOW;
Actuar = HIGH;
if (maquina == 1){
maquina = 2;
voltaje = Vmaq2;
decimal = Dmaq2;
} else if (maquina == 2){
maquina = 1;
voltaje = Vmaq1;
decimal = Dmaq1;
}
}
if (cuenta > 4) {
flag = LOW;
}
cuenta++;
}
//**********************************************
// Mostrar el puntero, los textos y los valores en la pantalla OLED
u8g2.clearBuffer();
//u8g2.setFont(u8g2_font_ncenB14_tr);
u8g2.setFont(u8g2_font_7x13_mf);
// Marco
u8g2.drawHLine(0,0,127);
u8g2.drawHLine(0,1,127);
u8g2.drawHLine(0,63,127);
u8g2.drawHLine(0,62,127);
u8g2.drawVLine(0,0,63);
u8g2.drawVLine(1,0,63);
u8g2.drawVLine(127,0,63);
u8g2.drawVLine(126,0,63);
// Primer renglón
u8g2.setCursor(8, 20);
if (renglonSeleccionado == 1) {
//******
if (Modificar == HIGH){
if (parpadeo == HIGH){
u8g2.print(">");
parpadeo = LOW;
} else {
u8g2.print(" ");
parpadeo = HIGH;
}
} else {
u8g2.print(">");
}
//*****
u8g2.setCursor(15, 20);
u8g2.print(" Voltaje: ");
u8g2.print(voltaje);
u8g2.print(",");
u8g2.print(decimal);
u8g2.print("V");
} else {
u8g2.print(" ");
u8g2.setCursor(15, 20);
u8g2.print(" Voltaje: ");
u8g2.print(voltaje);
u8g2.print(",");
u8g2.print(decimal);
u8g2.print("V");
}
// Segundo renglón
u8g2.setCursor(8, 38);
if (renglonSeleccionado == 2) {
//******
if (Modificar == HIGH){
if (parpadeo == HIGH){
u8g2.print(">");
parpadeo = LOW;
} else {
u8g2.print(" ");
parpadeo = HIGH;
}
} else {
u8g2.print(">");
}
//*****
u8g2.setCursor(15, 38);
u8g2.print(" Modo: ");
//u8g2.print(modo);
if (modo == 1){
u8g2.print(" 1M Pul ");
}
if (modo == 2){
u8g2.print(" 1M Ret ");
}
if (modo == 3){
u8g2.print(" 2M Pul ");
}
if (modo == 4){
u8g2.print(" 2M Ret ");
}
if (modo == 5){
u8g2.print(" 1M Duty");
}
if (modo == 6){
u8g2.print(" 2M Duty");
}
} else {
u8g2.print(" ");
u8g2.setCursor(15, 38);
u8g2.print(" Modo: ");
//u8g2.print(modo);
if (modo == 1){
u8g2.print(" 1M Pul ");
}
if (modo == 2){
u8g2.print(" 1M Ret ");
}
if (modo == 3){
u8g2.print(" 2M Pul ");
}
if (modo == 4){
u8g2.print(" 2M Ret ");
}
if (modo == 5){
u8g2.print(" 1M Duty");
}
if (modo == 6){
u8g2.print(" 2M Duty");
}
}
if (renglonSeleccionado != 4 || renglonSeleccionado != 5) {
// Tercer renglón
u8g2.setCursor(8, 55);
if (renglonSeleccionado == 3) {
//******
if (Modificar == HIGH){
if (parpadeo == HIGH){
u8g2.print(">");
parpadeo = LOW;
} else {
u8g2.print(" ");
parpadeo = HIGH;
}
} else {
u8g2.print(">");
}
//*****
u8g2.setCursor(15, 55);
u8g2.print(" Maquina: ");
u8g2.print(maquina);
} else {
u8g2.print(" ");
u8g2.setCursor(15, 55);
u8g2.print(" Maquina: ");
u8g2.print(maquina);
}
}
if (renglonSeleccionado == 4){
// Cuarto renglón
u8g2.setCursor(8, 55);
if (renglonSeleccionado == 4) {
//******
if (Modificar == HIGH){
if (parpadeo == HIGH){
u8g2.print(">");
parpadeo = LOW;
} else {
u8g2.print(" ");
parpadeo = HIGH;
}
} else {
u8g2.print(">");
}
//*****
u8g2.setCursor(15, 55);
u8g2.print(" Tiempo: ");
u8g2.print(tiempo);
u8g2.print("Seg");
} else {
u8g2.print(" ");
u8g2.setCursor(15, 55);
u8g2.print(" Tiempo: ");
u8g2.print(tiempo);
u8g2.print("Seg");
}
}
if(renglonSeleccionado == 5){
// Quinto renglón
u8g2.setCursor(8, 55);
if (renglonSeleccionado == 5) {
//******
if (Modificar == HIGH){
if (parpadeo == HIGH){
u8g2.print(">");
parpadeo = LOW;
} else {
u8g2.print(" ");
parpadeo = HIGH;
}
} else {
u8g2.print(">");
}
//*****
u8g2.setCursor(15, 55);
u8g2.print(" Duty: ");
u8g2.print(duty);
u8g2.print("%");
} else {
u8g2.print(" ");
u8g2.setCursor(15, 55);
u8g2.print(" Duty: ");
u8g2.print(duty);
u8g2.print("%");
}
}
u8g2.sendBuffer();
}