#include <LiquidCrystal_I2C.h>
#include <Keypad.h>
#include <EEPROM.h>
LiquidCrystal_I2C lcd(0x27,20,4);
const byte ROWS = 4; //four rows
const byte COLS = 4; //three columns
char keys[ROWS][COLS] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
byte rowPins[ROWS] = {23, 25, 27, 29}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {31, 33, 35, 37}; //connect to the column pinouts of the keypad
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
//COMUNICACION MAQUINA
int MCI=2;
int RMCI=4;
int EJECTOR=7;
int EXTERNAL_SIGNAL=8;
int ES1=9;
int ES2=10;
//SENSORES
int ARRIBA=22;
int ABAJO=24;
int IZQUIERDA=26;
int DERECHA=28;
int GIRO_V_UP=30;
int GIRO_V_DOWN=32;
int MOC=34; //SEÑAL DE INICIO
int FULL_AUTO=3; //SEÑAL DE CICLO
int SA_DO_CLO=36; //SENSOR DE PUERTAS
int EMERGENCIA=48;
//SALIDAS
int EV_ABAJO=38;
int EV_DERECHA=39;
int EV_GIRO_P_D=40;
int EV_GIRO_P_I=41;
int EV_GIRO_V_DOWN=42;
int GRIPER=43;
int AUTOX=44;
int SAFETY_MOLD_CLOSE=45;
int INYECTION;
//DATOS GENERALES PROGRAMA
int home; //dato que indica el paso en rutina home
int send_home; //dato que envia al home. 2 indica echo 1 va a home
int a_state_step;
int state_mov_m;
int dato_s; // lectura sensores
int state_step; //1==inicia paso 2==en espera de sensor 3==en timer
int dato2;
int dato1;
int P_E; //VALOR PARO DE EMERGENCIA
int P_E_A; //VALOR ANTERIOR PARO DE EMERGENCIA
int dato; //valor introducido keyboard
int v_c; //posicion cursor en menu 1
int v_c_m2; //posicion cursor en menu 2
int v_menu; //menu en pantalla
int v_c_m3x; //posicion cursor en menu 3 en x1
int v_c_m3y; //posicion cursor en menu 3 en y
int v_c_m3x2; //posicion cursor en menu 3 en x2
int val_m4_1; //valor 1 monitoreado en menu 4
int val_m4_2; //valor 2 monitoreado en menu 4
int U;
int D;
int L;
int R;
int H;
int V;
int FA;
int ST;
int SD;
int A_U;
int A_D;
int A_L;
int A_R;
int A_H;
int A_V;
int A_FA;
int A_ST;
int A_SD;
//TIMER RUTINA L
int v_timer_1_l; //timer 1
int v_timer_2_l; //timer 2
int v_timer_3_l; //timer 3
int v_timer_4_l; //timer 4
int v_timer_5_l; //timer 5
int v_timer_6_l; //timer 6
int v_timer_7_l; //timer 7
int v_timer_8_l; //timer 8
int v_timer_9_l; //timer 9
int v_timer_10_l; //timer 10
int v_timer_11_l; //timer 11
int v_timer_12_l; //timer 12
int v_timer_13_l; //timer 13
int v_timer_14_l; //timer 14
//TIMER RUTINA LI
int v_timer_1_li; //timer 1
int v_timer_2_li; //timer 2
int v_timer_3_li; //timer 3
int v_timer_4_li; //timer 4
int v_timer_5_li; //timer 5
int v_timer_6_li; //timer 6
int v_timer_7_li; //timer 7
int v_timer_8_li; //timer 8
int v_timer_9_li; //timer 9
int v_timer_10_li; //timer 10
int v_timer_11_li; //timer 11
int v_timer_12_li; //timer 12
//TIMER RUTINA U
int v_timer_1_u; //timer 1
int v_timer_2_u; //timer 2
int v_timer_3_u; //timer 3
int v_timer_4_u; //timer 4
int v_timer_5_u; //timer 5
int v_timer_6_u; //timer 6
int v_timer_7_u; //timer 7
int v_timer_8_u; //timer 8
int v_timer_9_u; //timer 9
int v_timer_10_u; //timer 10
int v_timer_11_u; //timer 11
int v_timer_12_u; //timer 12
int v_timer_13_u; //timer 11
int v_timer_14_u; //timer 12
//TIMER RUTINA U
int v_timer_1_ui; //timer 1
int v_timer_2_ui; //timer 2
int v_timer_3_ui; //timer 3
int v_timer_4_ui; //timer 4
int v_timer_5_ui; //timer 5
int v_timer_6_ui; //timer 6
int v_timer_7_ui; //timer 7
int v_timer_8_ui; //timer 8
int v_timer_9_ui; //timer 9
int v_timer_10_ui; //timer 10
int v_timer_11_ui; //timer 11
int v_timer_12_ui; //timer 12
//DATOS PARA USO DE DELAYS CON MILLIS()
unsigned long t_ref;
unsigned long t_actual;
int START_TIMER;
int STATE_TIMER;
int count_dato;
void setup() {
Serial.begin(9600);
//CONFIGURACION DE ENTRADAS
pinMode(MCI,INPUT);
pinMode(RMCI,INPUT);
pinMode(MOC,INPUT);
pinMode(FULL_AUTO,INPUT);
pinMode(EJECTOR,INPUT);
pinMode(EXTERNAL_SIGNAL,INPUT);
pinMode(ES1, INPUT);
pinMode(ES2,INPUT);
pinMode(EMERGENCIA,INPUT);
//configuracion de salidas
pinMode(EJECTOR, OUTPUT);
pinMode(EV_ABAJO, OUTPUT);
pinMode(EV_DERECHA, OUTPUT);
pinMode(EV_GIRO_P_D, OUTPUT);
pinMode(EV_GIRO_P_I, OUTPUT);
pinMode(EV_GIRO_V_DOWN, OUTPUT);
pinMode(GRIPER, OUTPUT);
pinMode(AUTOX,OUTPUT); //CICLE START
pinMode(SAFETY_MOLD_CLOSE, OUTPUT); //SEÑAL ROBOT ARRIBA
pinMode(EJECTOR, OUTPUT); // SEÑAL EJECTOR
//CONFIGURACION SENSORES
pinMode(ARRIBA, INPUT);
pinMode(ABAJO, INPUT);
pinMode(IZQUIERDA, INPUT);
pinMode(DERECHA, INPUT);
pinMode(GIRO_V_UP, INPUT);
pinMode(GIRO_V_DOWN, INPUT);
//*******************************
digitalWrite(EV_ABAJO, HIGH);
//digitalWrite(SAFETY_MOLD_CLOSE, HIGH);
digitalWrite(EV_DERECHA, HIGH);
digitalWrite(EV_GIRO_P_D, LOW);
digitalWrite(EV_GIRO_P_I, HIGH);
digitalWrite(EV_GIRO_V_DOWN, HIGH);
digitalWrite(GRIPER, HIGH);
//***********************
//digitalWrite(EJECTOR, LOW);
digitalWrite(EV_ABAJO, HIGH);
digitalWrite(SAFETY_MOLD_CLOSE, LOW);
//digitalWrite(AUTOX, LOW);
delay(2000);
digitalWrite(EV_DERECHA, LOW);
digitalWrite(EV_GIRO_P_D, LOW);
digitalWrite(EV_GIRO_P_I, HIGH);
digitalWrite(EV_GIRO_V_DOWN, HIGH);
digitalWrite(GRIPER, HIGH);
//valores de inicio
send_home=2;
home=1;
v_c=1;
v_c_m2=1;
v_menu=1;
v_c_m3x=1;
v_c_m3y=1;
v_c_m3x2=1;
val_m4_1=1;
val_m4_2=1;
STATE_TIMER=1;
START_TIMER=1;
count_dato=1;
state_step=4;
state_mov_m=1;
PERMISOS();
LECTURA_SENSORES1();
actualizar_datos();
PANTALLA_INICIO();
MENU_1();
cursor_m_1();
}
void loop() {
// ENTRADA Y REDIRECCIONAMIENTO BASE A KEYBOARD
dato_s=digitalRead(EMERGENCIA);
if(dato_s==HIGH){
P_E=1;
}
else {
P_E=2;
}
if(P_E!=P_E_A){
P_E_A=P_E;
if(P_E==1){
v_menu=1;
PERMISOS();
lcd.clear();
MENU_1();
cursor_m_1();
}
else{
PANTALLA_EMERGENCIA();
}
}
if(P_E==1){
char key = keypad.getKey();
if (key){
if(key!='A' && key!='B' && key!='C' && key!='D' && key!='*' && key!='#'){
if(key=='1'){
dato=1;
}
if(key=='2'){
dato=2;
}
if(key=='3'){
dato=3;
}
if(key=='4'){
dato=4;
}
if(key=='5'){
dato=5;
}
if(key=='6'){
dato=6;
}
if(key=='7'){
dato=7;
}
if(key=='8'){
dato=8;
}
if(key=='9'){
dato=9;
}
if(key=='0'){
dato=0;
}
Serial.println("NUMERO");
Serial.println(key);
if(v_menu==3 && v_c_m3y==2){
Serial.println("m3_y2");
CONVERTIR_DATO();
}
}
else{
if(key=='A'){
UP();
}
if(key=='B'){
DOWN();
}
if(key=='C'){
BACK();
}
if(key=='D'){
OK();
}
if(key=='*'){
LEFT();
}
if(key=='#'){
RIGTH();
}
Serial.println("LETRA");
Serial.println(key);
}
if(v_menu==2){
PERMISOS();
dato_s=digitalRead(SA_DO_CLO);
if(dato_s==LOW){
manual();
lcd.setCursor(12, 2);
lcd.print(dato);
}
}
}
// SIGUIENTES RUTINAS DEL LOOP
//lectura de señales maquina
//+**********************
if(v_menu==1){
PERMISOS();
}
if(v_menu==2){
PERMISOS();
}
if(v_menu==4){
dato_s=digitalRead(FULL_AUTO);
if(dato_s==LOW){
dato_s=digitalRead(SA_DO_CLO);
if(dato_s==LOW){
if(send_home==1){
rutina_home();
}
if(send_home==2){
rutina_state_step();
}
}
else{
BACK();
}}
else {
LECTURA_SENSORES1();
BACK();
}
}
if(v_menu==5){
MENU_5_REFRESH();
}
//****************************************
if(v_menu==2 && state_mov_m==2){
sensores();
PERMISOS();
}
//
//
}
}
//******************************
void rutina_home(){
switch (home){
case 1:
P_ARRIBA();
lcd.setCursor(2,3);
lcd.print(" SET HOME ");
home=2;
Serial.println("caso 1");
break;
case 2:
dato_s=digitalRead(ARRIBA);
if(dato_s==HIGH){
home=3;
Serial.println("caso 2 ");
}
break;
case 3:
P_SWING_N();
home=4;
Serial.println("caso 3");
break;
case 4:
dato_s=digitalRead(GIRO_V_DOWN);
if(dato_s==LOW){
home=5;
Serial.println("caso 4");
}
break;
case 5:
P_DERECHA();
home=6;
Serial.println("caso 5");
break;
case 6:
dato_s=digitalRead(DERECHA);
if(dato_s==HIGH){
home=7;
Serial.println("caso 6");
}
break;
case 7:
P_OPEN();
P_GIRO_N();
home=1;
send_home=2;
Serial.println("caso 7");
break;
}
}
//**************************
void rutina_state_step(){
switch(state_step){
case 1:
if(a_state_step!=state_step){
MONITOREO2_M4();
Serial.println("INICIA PASO");
a_state_step=state_step;
}
rutina();
break;
case 2:
if(a_state_step!=state_step){
MONITOREO2_M4();
Serial.println("ESPERANDO SENSOR");
a_state_step=state_step;
}
rutina();
break;
case 3:
if(a_state_step!=state_step){
MONITOREO2_M4();
Serial.println("TIMER ON");
a_state_step=state_step;
}
AUTOMATICO();
break;
case 4:
if(a_state_step!=state_step){
MONITOREO2_M4();
Serial.println("ESPERANDO MOC");
a_state_step=state_step;
}
dato_s=digitalRead(MOC);
if(dato_s==HIGH){
state_step=4;
Serial.println("sensor low");
}
if(dato_s==LOW){
// dato_s=digitalRead(START); //REVUSAR NUEVOS PERMISOS
// if(dato_s==HIGH){ //NOT USE
state_step=1;
// Serial.println("sensor high"); //NOT USE
// } // NOT USE
}
break;
}
}
//***************************
void sensores(){
switch(dato){
case 0:
state_mov_m=1;
lcd.setCursor(6,3);
lcd.print(" DO ");
break;
case 1:
dato_s=digitalRead(ARRIBA);
if(dato_s==HIGH){
state_mov_m=1;
digitalWrite(SAFETY_MOLD_CLOSE, LOW);
digitalWrite(AUTOX, LOW);
lcd.setCursor(6,3);
lcd.print(" DO ");
}
if(dato_s==LOW){
}
break;
case 2:
dato_s=digitalRead(ABAJO);
if(dato_s==HIGH){
state_mov_m=1;
lcd.setCursor(6,3);
lcd.print(" DO ");
}
break;
case 3:
dato_s=digitalRead(IZQUIERDA);
if(dato_s==HIGH){
state_mov_m=1;
lcd.setCursor(6,3);
lcd.print(" DO ");
}
break;
case 4:
dato_s=digitalRead(DERECHA);
if(dato_s==HIGH){
state_mov_m=1;
lcd.setCursor(6,3);
lcd.print(" DO ");
}
break;
case 5:
dato_s=digitalRead(GIRO_V_UP);
if(dato_s==LOW){
state_mov_m=1;
lcd.setCursor(6,3);
lcd.print(" DO ");
}
break;
case 6:
dato_s=digitalRead(GIRO_V_DOWN);
if(dato_s==LOW){
state_mov_m=1;
lcd.setCursor(6,3);
lcd.print(" DO ");
}
break;
case 7:
state_mov_m=1;
lcd.setCursor(6,3);
lcd.print(" DO ");
break;
case 8:
state_mov_m=1;
lcd.setCursor(6,3);
lcd.print(" DO ");
break;
case 9:
state_mov_m=1;
lcd.setCursor(6,3);
lcd.print(" DO ");
break;
}
}
//***********************************
void mov_manual(){
v_c_m2=dato;
CURSOR_M2();
}
//********************************
void actualizar_datos(){
v_timer_1_l=EEPROM.read(1);
v_timer_2_l=EEPROM.read(2);
v_timer_3_l=EEPROM.read(3);
v_timer_4_l=EEPROM.read(4);
v_timer_5_l=EEPROM.read(5);
v_timer_6_l=EEPROM.read(6);
v_timer_7_l=EEPROM.read(7);
v_timer_8_l=EEPROM.read(8);
v_timer_9_l=EEPROM.read(9);
v_timer_10_l=EEPROM.read(10);
v_timer_11_l=EEPROM.read(11);
v_timer_12_l=EEPROM.read(12);
v_timer_13_l=EEPROM.read(49);
v_timer_14_l=EEPROM.read(50);
v_timer_1_li=EEPROM.read(13);
v_timer_2_li=EEPROM.read(14);
v_timer_3_li=EEPROM.read(15);
v_timer_4_li=EEPROM.read(16);
v_timer_5_li=EEPROM.read(17);
v_timer_6_li=EEPROM.read(18);
v_timer_7_li=EEPROM.read(19);
v_timer_8_li=EEPROM.read(20);
v_timer_9_li=EEPROM.read(21);
v_timer_10_li=EEPROM.read(22);
v_timer_11_li=EEPROM.read(23);
v_timer_12_li=EEPROM.read(24);
v_timer_1_u=EEPROM.read(25);
v_timer_2_u=EEPROM.read(26);
v_timer_3_u=EEPROM.read(27);
v_timer_4_u=EEPROM.read(28);
v_timer_5_u=EEPROM.read(29);
v_timer_6_u=EEPROM.read(30);
v_timer_7_u=EEPROM.read(31);
v_timer_8_u=EEPROM.read(32);
v_timer_9_u=EEPROM.read(33);
v_timer_10_u=EEPROM.read(34);
v_timer_11_u=EEPROM.read(35);
v_timer_12_u=EEPROM.read(36);
v_timer_13_u=EEPROM.read(51);
v_timer_14_u=EEPROM.read(52);
v_timer_1_ui=EEPROM.read(37);
v_timer_2_ui=EEPROM.read(38);
v_timer_3_ui=EEPROM.read(39);
v_timer_4_ui=EEPROM.read(40);
v_timer_5_ui=EEPROM.read(41);
v_timer_6_ui=EEPROM.read(42);
v_timer_7_ui=EEPROM.read(43);
v_timer_8_ui=EEPROM.read(44);
v_timer_9_ui=EEPROM.read(45);
v_timer_10_ui=EEPROM.read(46);
v_timer_11_ui=EEPROM.read(47);
v_timer_12_ui=EEPROM.read(48);
}
void SET_DATO(){
if(v_menu==3 && v_c_m3y==2){
switch(v_c_m3x){
case 1:
switch(v_c_m3x2){
case 1:
v_timer_1_l=dato;
EEPROM.write(1, v_timer_1_l);
break;
case 2:
v_timer_2_l=dato;
EEPROM.write(2, v_timer_2_l);
break;
case 3:
v_timer_3_l=dato;
EEPROM.write(3, v_timer_3_l);
break;
case 4:
v_timer_4_l=dato;
EEPROM.write(4, v_timer_4_l);
break;
case 5:
v_timer_5_l=dato;
EEPROM.write(5, v_timer_5_l);
break;
case 6:
v_timer_6_l=dato;
EEPROM.write(6, v_timer_6_l);
break;
case 7:
v_timer_7_l=dato;
EEPROM.write(7, v_timer_7_l);
break;
case 8:
v_timer_8_l=dato;
EEPROM.write(8, v_timer_8_l);
break;
case 9:
v_timer_9_l=dato;
EEPROM.write(9, v_timer_9_l);
break;
case 10:
v_timer_10_l=dato;
EEPROM.write(10, v_timer_10_l);
break;
case 11:
v_timer_11_l=dato;
EEPROM.write(11, v_timer_11_l);
break;
case 12:
v_timer_12_l=dato;
EEPROM.write(12, v_timer_12_l);
break;
case 13:
v_timer_13_l=dato;
EEPROM.write(49, v_timer_13_l);
break;
case 14:
v_timer_14_l=dato;
EEPROM.write(50, v_timer_14_l);
break;
}
break;
case 2:
switch(v_c_m3x2){
case 1:
v_timer_1_li=dato;
EEPROM.write(13, v_timer_1_li);
break;
case 2:
v_timer_2_li=dato;
EEPROM.write(14, v_timer_2_li);
break;
case 3:
v_timer_3_li=dato;
EEPROM.write(15, v_timer_3_li);
break;
case 4:
v_timer_4_li=dato;
EEPROM.write(16, v_timer_4_li);
break;
case 5:
v_timer_5_li=dato;
EEPROM.write(17, v_timer_5_li);
break;
case 6:
v_timer_6_li=dato;
EEPROM.write(18, v_timer_6_li);
break;
case 7:
v_timer_7_li=dato;
EEPROM.write(19, v_timer_7_li);
break;
case 8:
v_timer_8_li=dato;
EEPROM.write(20, v_timer_8_li);
break;
case 9:
v_timer_9_li=dato;
EEPROM.write(21, v_timer_9_li);
break;
case 10:
v_timer_10_li=dato;
EEPROM.write(22, v_timer_10_li);
break;
case 11:
v_timer_11_li=dato;
EEPROM.write(23, v_timer_11_li);
break;
case 12:
v_timer_12_li=dato;
EEPROM.write(24, v_timer_12_li);
break;
}
break;
case 3:
switch(v_c_m3x2){
case 1:
v_timer_1_u=dato;
EEPROM.write(25, v_timer_1_u);
break;
case 2:
v_timer_2_u=dato;
EEPROM.write(26, v_timer_2_u);
break;
case 3:
v_timer_3_u=dato;
EEPROM.write(27, v_timer_3_u);
break;
case 4:
v_timer_4_u=dato;
EEPROM.write(28, v_timer_4_u);
break;
case 5:
v_timer_5_u=dato;
EEPROM.write(29, v_timer_5_u);
break;
case 6:
v_timer_6_u=dato;
EEPROM.write(30, v_timer_6_u);
break;
case 7:
v_timer_7_u=dato;
EEPROM.write(31, v_timer_7_u);
break;
case 8:
v_timer_8_u=dato;
EEPROM.write(32, v_timer_8_u);
break;
case 9:
v_timer_9_u=dato;
EEPROM.write(33, v_timer_9_u);
break;
case 10:
v_timer_10_u=dato;
EEPROM.write(34, v_timer_10_u);
break;
case 11:
v_timer_11_u=dato;
EEPROM.write(35, v_timer_11_u);
break;
case 12:
v_timer_12_u=dato;
EEPROM.write(36, v_timer_12_u);
break;
case 13:
v_timer_13_u=dato;
EEPROM.write(51, v_timer_13_u);
break;
case 14:
v_timer_14_u=dato;
EEPROM.write(52, v_timer_14_u);
break;
}
break;
case 4:
switch(v_c_m3x2){
case 1:
v_timer_1_ui=dato;
EEPROM.write(37, v_timer_1_ui);
break;
case 2:
v_timer_2_ui=dato;
EEPROM.write(38, v_timer_2_ui);
break;
case 3:
v_timer_3_ui=dato;
EEPROM.write(39, v_timer_3_ui);
break;
case 4:
v_timer_4_ui=dato;
EEPROM.write(40, v_timer_4_ui);
break;
case 5:
v_timer_5_ui=dato;
EEPROM.write(41, v_timer_5_ui);
break;
case 6:
v_timer_6_ui=dato;
EEPROM.write(42, v_timer_6_ui);
break;
case 7:
v_timer_7_ui=dato;
EEPROM.write(43, v_timer_7_ui);
break;
case 8:
v_timer_8_ui=dato;
EEPROM.write(44, v_timer_8_ui);
break;
case 9:
v_timer_9_ui=dato;
EEPROM.write(45, v_timer_9_ui);
break;
case 10:
v_timer_10_ui=dato;
EEPROM.write(46, v_timer_10_ui);
break;
case 11:
v_timer_11_ui=dato;
EEPROM.write(47, v_timer_11_ui);
break;
case 12:
v_timer_12_ui=dato;
EEPROM.write(48, v_timer_12_ui);
break;
}
break;
}
s_timers();
}
//********************************************
}
void UP(){
if(v_menu==1){
v_c--;
if(v_c<1){
v_c=3;
}
cursor_m_1();
}
if(v_menu==3){
v_c_m3y --;
if(v_c_m3y<1){
v_c_m3y=3;
}
CURSOR_M3_Y();
}
}
//************************************
void DOWN(){
if(v_menu==1){
v_c ++;
if(v_c>=4){
v_c=1;
}
cursor_m_1();
}
if(v_menu==3){
v_c_m3y ++;
if(v_c_m3y>3){
v_c_m3y=1;
}
CURSOR_M3_Y();
}
}
//**********************************
void LEFT(){
if(v_menu==3){
if(v_c_m3y==1){
v_c_m3x --;
if(v_c_m3x<1){
v_c_m3x=4;
}
v_c_m3x2=1;
s_timers();
Serial.println("tt");
v_c_m3y=2;
CURSOR_M3_X();
v_c_m3y=1;
}
if(v_c_m3y==2){
count_dato=1;
v_c_m3x2 --;
if(v_c_m3x2<1){
v_c_m3x2=14;
}
s_timers();
Serial.println("tt");
}
CURSOR_M3_X();
}
}
//**********************************
void RIGTH(){
if(v_menu==3){
if(v_c_m3y==1){
v_c_m3x ++;
if(v_c_m3x>4){
v_c_m3x=1;
}
v_c_m3x2=1;
s_timers();
Serial.println("tt");
v_c_m3y=2;
CURSOR_M3_X();
v_c_m3y=1;
}
if(v_c_m3y==2){
count_dato=1;
v_c_m3x2 ++;
if(v_c_m3x2>14){
v_c_m3x2=1;
}
CURSOR_M3_X();
s_timers();
Serial.println("tt");
}
CURSOR_M3_X();
}
}
//*************************************
void BACK(){
if(v_menu==2){
v_menu=1;
PERMISOS();
lcd.clear();
MENU_1();
cursor_m_1();
}
if(v_menu==5){
v_menu=1;
PERMISOS();
lcd.clear();
MENU_1();
cursor_m_1();
}
if(v_menu==3){
v_menu=1;
PERMISOS();
lcd.clear();
MENU_1();
cursor_m_1();
}
if(v_menu==4){
v_menu=3;
PERMISOS();
lcd.clear();
MENU_3();
v_c_m3y=2;
CURSOR_M3_X();
v_c_m3y=1;
CURSOR_M3_X();
CURSOR_M3_Y();
s_timers();
}
}
//*************************************************
void OK(){
if(v_menu==1){
if(v_c==1){
v_menu=2;
PERMISOS();
lcd.clear();
MENU_2();
}
if(v_c==2){
v_menu=3;
PERMISOS();
lcd.clear();
MENU_3();
CURSOR_M3_Y();
CURSOR_M3_X();
s_timers();
}
if(v_c==3){
v_menu=5;
MENU_5();
menu_5_s1();
MENU_5_REFRESH();
}
}
if(v_menu==3){
dato_s=digitalRead(FULL_AUTO);
if(dato_s==LOW){ //SEÑAL NO DEJA ENTRARA AL MENU 4 SIN MAQUINA CORRIENDO EN AUTO
if(v_c_m3y==3){
v_menu=4;
PERMISOS();
lcd.clear();
MENU_4();
set_home();
send_home=1;
state_step=4;
MONITOREO1_M4();
}
}
}
}
void PANTALLA_INICIO(){
lcd.init();
lcd.backlight();
lcd.setCursor(3,0);
lcd.print("Control ROBOT");
lcd.setCursor(4,1);
lcd.print("NECONTECH");
delay(1000);
lcd.clear();
lcd.setCursor(3,1);
lcd.print("INICIANDO");
lcd.setCursor(3,2);
lcd.print("DISPOSITIVO");
delay(500);
lcd.print(".");
delay(500);
lcd.print(".");
delay(500);
lcd.print(".");
delay(500);
lcd.clear();
}
//********************************************************
void rutina(){
switch (v_c_m3x){
case 1:
switch(v_c_m3x2){
case 1:
if (state_step==4){
}
if(state_step==1){
digitalWrite(SAFETY_MOLD_CLOSE, HIGH);
digitalWrite(AUTOX, HIGH);
P_ABAJO();
state_step=2;
Serial.println("p_abvajo");
}
if(state_step==2){
dato_s=digitalRead(ABAJO);
if(dato_s==HIGH){
state_step=3;
Serial.println("snsor abajo");
}
}
break;
case 2:
if(state_step==1){
P_IZQUIERDA();
state_step=2;
}
if(state_step==2){
dato_s=digitalRead(IZQUIERDA);
if(dato_s==HIGH){
state_step=3;
Serial.println("snsor iz");
}
}
break;
case 3:
P_CLOSE();
state_step=3;
break;
case 4:
if(state_step==1){
P_DERECHA();
state_step=2;
}
if(state_step==2){
dato_s=digitalRead(DERECHA);
if(dato_s==HIGH){
state_step=3;
Serial.println("snsor der");
}
}
break;
case 5:
if(state_step==1){
P_ARRIBA();
state_step=2;
}
if(state_step==2){
dato_s=digitalRead(ARRIBA);
if(dato_s==HIGH){
state_step=3;
Serial.println("snsor arriba");
digitalWrite(SAFETY_MOLD_CLOSE, LOW);
digitalWrite(AUTOX, LOW);
}
}
break;
case 6:
if(state_step==1){
P_SWING_P();
state_step=2;
}
if(state_step==2){
dato_s=digitalRead(GIRO_V_UP);
if(dato_s==LOW){
state_step=3;
Serial.println("snsor swing+");
}
}
break;
case 7:
if(state_step==1){
P_ABAJO();
state_step=2;
}
if(state_step==2){
dato_s=digitalRead(ABAJO);
if(dato_s==HIGH){
state_step=3;
Serial.println("snsor abajo");
}
}
break;
case 8:
P_GIRO_P();
state_step=3;
break;
case 9:
PINZA_OPEN();
state_step=3;
break;
case 10:
PINZA_CLOSE();
state_step=3;
break;
case 11:
P_OPEN();
state_step=3;
break;
case 12:
if(state_step==1){
P_ARRIBA();
state_step=2;
}
if(state_step==2){
dato_s=digitalRead(ARRIBA);
if(dato_s==HIGH){
state_step=3;
Serial.println("snsor arriba");
}
}
break;
case 13:
P_GIRO_N();
state_step=3;
break;
case 14:
if(state_step==1){
P_SWING_N();
state_step=2;
}
if(state_step==2){
dato_s=digitalRead(GIRO_V_DOWN);
if(dato_s==LOW){
state_step=3;
Serial.println("swing-");
}
}
break;
}
break;
case 2:
switch(v_c_m3x2){
case 1:
break;
case 2:
break;
case 3:
break;
case 4:
break;
case 5:
break;
case 6:
break;
case 7:
break;
case 8:
break;
case 9:
break;
case 10:
break;
case 11:
break;
case 12:
break;
}
break;
case 3:
switch(v_c_m3x2){
case 1:
if(state_step==1){
digitalWrite(SAFETY_MOLD_CLOSE, HIGH);
digitalWrite(AUTOX, HIGH);
P_ABAJO();
state_step=2;
Serial.println("p_abvajo");
}
if(state_step==2){
dato_s=digitalRead(ABAJO);
if(dato_s==HIGH){
state_step=3;
Serial.println("snsor abajo");
}
}
break;
case 2:
P_CLOSE();
state_step=3;
break;
case 3:
if(state_step==1){
P_DERECHA();
state_step=2;
}
if(state_step==2){
dato_s=digitalRead(DERECHA);
if(dato_s==HIGH){
state_step=3;
Serial.println("snsor der");
}
}
break;
case 4:
if(state_step==1){
P_ARRIBA();
state_step=2;
}
if(state_step==2){
dato_s=digitalRead(ARRIBA);
if(dato_s==HIGH){
digitalWrite(SAFETY_MOLD_CLOSE, LOW);
digitalWrite(AUTOX, LOW);
state_step=3;
Serial.println("snsor arriba");
}
}
break;
case 5:
if(state_step==1){
P_IZQUIERDA();
state_step=2;
}
if(state_step==2){
dato_s=digitalRead(IZQUIERDA);
if(dato_s==HIGH){
state_step=3;
Serial.println("snsor iz");
}
}
break;
case 6:
if(state_step==1){
P_SWING_P();
state_step=2;
}
if(state_step==2){
dato_s=digitalRead(GIRO_V_UP);
if(dato_s==LOW){
state_step=3;
Serial.println("snsor swing+");
}
}
break;
case 7:
if(state_step==1){
P_ABAJO();
state_step=2;
}
if(state_step==2){
dato_s=digitalRead(ABAJO);
if(dato_s==HIGH){
state_step=3;
Serial.println("snsor abajo");
}
}
break;
case 8:
P_GIRO_P();
state_step=3;
break;
case 9:
PINZA_OPEN();
state_step=3;
break;
case 10:
PINZA_CLOSE();
state_step=3;
break;
case 11:
PINZA_OPEN();
P_OPEN();
state_step=3;
break;
case 12:
if(state_step==1){
P_ARRIBA();
state_step=2;
}
if(state_step==2){
dato_s=digitalRead(ARRIBA);
if(dato_s==HIGH){
state_step=3;
Serial.println("snsor arriba");
}
}
break;
case 13:
P_GIRO_N();
state_step=3;
break;
case 14:
if(state_step==1){
P_SWING_N();
state_step=2;
}
if(state_step==2){
dato_s=digitalRead(GIRO_V_DOWN);
if(dato_s==LOW){
state_step=3;
Serial.println("swing-");
}
}
break;
}
break;
case 4:
switch(v_c_m3x2){
case 1:
break;
case 2:
break;
case 3:
break;
case 4:
break;
case 5:
break;
case 6:
break;
case 7:
break;
case 8:
break;
case 9:
break;
case 10:
break;
case 11:
break;
case 12:
break;
}
break;
}
}
//**********************************************************
void MENU_1(){
lcd.setCursor(8, 0);
lcd.print("Menu");
lcd.setCursor(6, 1);
lcd.print("Manual");
lcd.setCursor(6, 2);
lcd.print("Automatico");
lcd.setCursor(6,3);
lcd.print("Sensores");
}
void cursor_m_1(){
//limpiar cursor
lcd.setCursor(0, 1);
lcd.print(" ");
lcd.setCursor(0, 2);
lcd.print(" ");
lcd.setCursor(0, 3);
lcd.print(" ");
switch (v_c){
case 1:
lcd.setCursor(0, 1);
lcd.print("--->");
break;
case 2:
lcd.setCursor(0, 2);
lcd.print("--->");
break;
case 3:
lcd.setCursor(0, 3);
lcd.print("--->");
break;
}
}
void MENU_2(){
lcd.setCursor(7, 0);
lcd.print("MANUAL");
lcd.setCursor(5, 1);
lcd.print("MOVIMIENTO");
lcd.setCursor(5, 2);
lcd.print("<<");
lcd.setCursor(13, 2);
lcd.print(">>");
lcd.setCursor(7, 2);
lcd.print("MOV ");
lcd.setCursor(6,3);
lcd.print("EN ESPERA");
}
void CURSOR_M2(){
lcd.setCursor(11, 2);
lcd.print(v_c_m2);
}
//****************************************
void MENU_3(){
lcd.setCursor(5, 0);
lcd.print("AUTOMATICO");
lcd.setCursor(5, 1);
lcd.print("< MODO >");
lcd.setCursor(3, 2);
lcd.print("<PASO 1>");
lcd.setCursor(12, 2);
lcd.print("(");
lcd.setCursor(16, 2);
lcd.print("S)");
lcd.setCursor(6,3);
lcd.print("***RUN***");
}
//*********************************************
void s_timers(){
lcd.setCursor(13, 2);
switch(v_c_m3x){
case 1:
switch(v_c_m3x2){
if(v_timer_1_l<10){
lcd.print("0");
lcd.setCursor(15, 2);
lcd.print(v_timer_1_l);
}
else{
lcd.print(v_timer_1_l);
}
lcd.setCursor(14, 2);
lcd.print(v_timer_1_l);
lcd.setCursor(14, 2);
lcd.print(".");
break;
case 2:
if(v_timer_2_l<10){
lcd.print("0");
lcd.setCursor(15, 2);
lcd.print(v_timer_2_l);
}
else{
lcd.print(v_timer_2_l);
}
lcd.setCursor(14, 2);
lcd.print(v_timer_2_l);
lcd.setCursor(14, 2);
lcd.print(".");
break;
case 3:
if(v_timer_3_l<10){
lcd.print("0");
lcd.setCursor(15, 2);
lcd.print(v_timer_3_l);
}
else{
lcd.print(v_timer_3_l);
}
lcd.setCursor(14, 2);
lcd.print(v_timer_3_l);
lcd.setCursor(14, 2);
lcd.print(".");
break;
case 4:
if(v_timer_4_l<10){
lcd.print("0");
lcd.setCursor(15, 2);
lcd.print(v_timer_4_l);
}
else{
lcd.print(v_timer_4_l);
}
lcd.setCursor(14, 2);
lcd.print(v_timer_4_l);
lcd.setCursor(14, 2);
lcd.print(".");
break;
case 5:
if(v_timer_5_l<10){
lcd.print("0");
lcd.setCursor(15, 2);
lcd.print(v_timer_5_l);
}
else{
lcd.print(v_timer_5_l);
}
lcd.setCursor(14, 2);
lcd.print(v_timer_5_l);
lcd.setCursor(14, 2);
lcd.print(".");
break;
case 6:
if(v_timer_6_l<10){
lcd.print("0");
lcd.setCursor(15, 2);
lcd.print(v_timer_6_l);
}
else{
lcd.print(v_timer_6_l);
}
lcd.setCursor(14, 2);
lcd.print(v_timer_6_l);
lcd.setCursor(14, 2);
lcd.print(".");
break;
case 7:
if(v_timer_7_l<10){
lcd.print("0");
lcd.setCursor(15, 2);
lcd.print(v_timer_7_l);
}
else{
lcd.print(v_timer_7_l);
}
lcd.setCursor(14, 2);
lcd.print(v_timer_7_l);
lcd.setCursor(14, 2);
lcd.print(".");
break;
case 8:
if(v_timer_8_l<10){
lcd.print("0");
lcd.setCursor(15, 2);
lcd.print(v_timer_8_l);
}
else{
lcd.print(v_timer_8_l);
}
lcd.setCursor(14, 2);
lcd.print(v_timer_8_l);
lcd.setCursor(14, 2);
lcd.print(".");
break;
case 9:
if(v_timer_9_l<10){
lcd.print("0");
lcd.setCursor(15, 2);
lcd.print(v_timer_9_l);
}
else{
lcd.print(v_timer_9_l);
}
lcd.setCursor(14, 2);
lcd.print(v_timer_9_l);
lcd.setCursor(14, 2);
lcd.print(".");
break;
case 10:
if(v_timer_10_l<10){
lcd.print("0");
lcd.setCursor(15, 2);
lcd.print(v_timer_10_l);
}
else{
lcd.print(v_timer_10_l);
}
lcd.setCursor(14, 2);
lcd.print(v_timer_10_l);
lcd.setCursor(14, 2);
lcd.print(".");
break;
case 11:
if(v_timer_11_l<10){
lcd.print("0");
lcd.setCursor(15, 2);
lcd.print(v_timer_11_l);
}
else{
lcd.print(v_timer_11_l);
}
lcd.setCursor(14, 2);
lcd.print(v_timer_11_l);
lcd.setCursor(14, 2);
lcd.print(".");
break;
case 12:
if(v_timer_12_l<10){
lcd.print("0");
lcd.setCursor(15, 2);
lcd.print(v_timer_12_l);
}
else{
lcd.print(v_timer_12_l);
}
lcd.setCursor(14, 2);
lcd.print(v_timer_12_l);
lcd.setCursor(14, 2);
lcd.print(".");
break;
case 13:
if(v_timer_13_l<10){
lcd.print("0");
lcd.setCursor(15, 2);
lcd.print(v_timer_13_l);
}
else{
lcd.print(v_timer_13_l);
}
lcd.setCursor(14, 2);
lcd.print(v_timer_13_l);
lcd.setCursor(14, 2);
lcd.print(".");
break;
case 14:
if(v_timer_14_l<10){
lcd.print("0");
lcd.setCursor(15, 2);
lcd.print(v_timer_14_l);
}
else{
lcd.print(v_timer_14_l);
}
lcd.setCursor(14, 2);
lcd.print(v_timer_14_l);
lcd.setCursor(14, 2);
lcd.print(".");
break;
}
break;
case 2:
switch(v_c_m3x2){
case 1:
lcd.print(v_timer_1_li);
lcd.setCursor(14, 2);
lcd.print(v_timer_1_li);
lcd.setCursor(14, 2);
lcd.print(".");
break;
case 2:
lcd.print(v_timer_2_li);
lcd.setCursor(14, 2);
lcd.print(v_timer_2_li);
lcd.setCursor(14, 2);
lcd.print(".");
break;
case 3:
lcd.print(v_timer_3_li);
lcd.setCursor(14, 2);
lcd.print(v_timer_3_li);
lcd.setCursor(14, 2);
lcd.print(".");
break;
case 4:
lcd.print(v_timer_4_li);
lcd.setCursor(14, 2);
lcd.print(v_timer_4_li);
lcd.setCursor(14, 2);
lcd.print(".");
break;
case 5:
lcd.print(v_timer_5_li);
lcd.setCursor(14, 2);
lcd.print(v_timer_5_li);
lcd.setCursor(14, 2);
lcd.print(".");
break;
case 6:
lcd.print(v_timer_6_li);
lcd.setCursor(14, 2);
lcd.print(v_timer_6_li);
lcd.setCursor(14, 2);
lcd.print(".");
break;
case 7:
lcd.print(v_timer_7_li);
lcd.setCursor(14, 2);
lcd.print(v_timer_7_li);
lcd.setCursor(14, 2);
lcd.print(".");
break;
case 8:
lcd.print(v_timer_8_li);
lcd.setCursor(14, 2);
lcd.print(v_timer_8_li);
lcd.setCursor(14, 2);
lcd.print(".");
break;
case 9:
lcd.print(v_timer_9_li);
lcd.setCursor(14, 2);
lcd.print(v_timer_9_li);
lcd.setCursor(14, 2);
lcd.print(".");
break;
case 10:
lcd.print(v_timer_10_li);
lcd.setCursor(14, 2);
lcd.print(v_timer_10_li);
lcd.setCursor(14, 2);
lcd.print(".");
break;
case 11:
lcd.print(v_timer_11_li);
lcd.setCursor(14, 2);
lcd.print(v_timer_11_li);
lcd.setCursor(14, 2);
lcd.print(".");
break;
case 12:
lcd.print(v_timer_12_li);
lcd.setCursor(14, 2);
lcd.print(v_timer_12_li);
lcd.setCursor(14, 2);
lcd.print(".");
break;
}
break;
case 3:
switch(v_c_m3x2){
if(v_timer_1_u<10){
lcd.print("0");
lcd.setCursor(15, 2);
lcd.print(v_timer_1_u);
}
else{
lcd.print(v_timer_1_u);
}
lcd.setCursor(14, 2);
lcd.print(v_timer_1_u);
lcd.setCursor(14, 2);
lcd.print(".");
break;
case 2:
if(v_timer_2_u<10){
lcd.print("0");
lcd.setCursor(15, 2);
lcd.print(v_timer_2_u);
}
else{
lcd.print(v_timer_2_u);
}
lcd.setCursor(14, 2);
lcd.print(v_timer_2_u);
lcd.setCursor(14, 2);
lcd.print(".");
break;
case 3:
if(v_timer_3_u<10){
lcd.print("0");
lcd.setCursor(15, 2);
lcd.print(v_timer_3_u);
}
else{
lcd.print(v_timer_3_u);
}
lcd.setCursor(14, 2);
lcd.print(v_timer_3_u);
lcd.setCursor(14, 2);
lcd.print(".");
break;
case 4:
if(v_timer_4_u<10){
lcd.print("0");
lcd.setCursor(15, 2);
lcd.print(v_timer_4_u);
}
else{
lcd.print(v_timer_4_u);
}
lcd.setCursor(14, 2);
lcd.print(v_timer_4_u);
lcd.setCursor(14, 2);
lcd.print(".");
break;
case 5:
if(v_timer_5_u<10){
lcd.print("0");
lcd.setCursor(15, 2);
lcd.print(v_timer_5_u);
}
else{
lcd.print(v_timer_5_u);
}
lcd.setCursor(14, 2);
lcd.print(v_timer_5_u);
lcd.setCursor(14, 2);
lcd.print(".");
break;
case 6:
if(v_timer_6_u<10){
lcd.print("0");
lcd.setCursor(15, 2);
lcd.print(v_timer_6_u);
}
else{
lcd.print(v_timer_6_u);
}
lcd.setCursor(14, 2);
lcd.print(v_timer_6_u);
lcd.setCursor(14, 2);
lcd.print(".");
break;
case 7:
if(v_timer_7_u<10){
lcd.print("0");
lcd.setCursor(15, 2);
lcd.print(v_timer_7_u);
}
else{
lcd.print(v_timer_7_u);
}
lcd.setCursor(14, 2);
lcd.print(v_timer_7_u);
lcd.setCursor(14, 2);
lcd.print(".");
break;
case 8:
if(v_timer_8_u<10){
lcd.print("0");
lcd.setCursor(15, 2);
lcd.print(v_timer_8_u);
}
else{
lcd.print(v_timer_8_u);
}
lcd.setCursor(14, 2);
lcd.print(v_timer_8_u);
lcd.setCursor(14, 2);
lcd.print(".");
break;
case 9:
if(v_timer_9_u<10){
lcd.print("0");
lcd.setCursor(15, 2);
lcd.print(v_timer_9_u);
}
else{
lcd.print(v_timer_9_u);
}
lcd.setCursor(14, 2);
lcd.print(v_timer_9_u);
lcd.setCursor(14, 2);
lcd.print(".");
break;
case 10:
if(v_timer_10_u<10){
lcd.print("0");
lcd.setCursor(15, 2);
lcd.print(v_timer_10_u);
}
else{
lcd.print(v_timer_10_u);
}
lcd.setCursor(14, 2);
lcd.print(v_timer_10_u);
lcd.setCursor(14, 2);
lcd.print(".");
break;
case 11:
if(v_timer_11_u<10){
lcd.print("0");
lcd.setCursor(15, 2);
lcd.print(v_timer_11_u);
}
else{
lcd.print(v_timer_11_u);
}
lcd.setCursor(14, 2);
lcd.print(v_timer_11_u);
lcd.setCursor(14, 2);
lcd.print(".");
break;
case 12:
if(v_timer_12_u<10){
lcd.print("0");
lcd.setCursor(15, 2);
lcd.print(v_timer_12_u);
}
else{
lcd.print(v_timer_12_u);
}
lcd.setCursor(14, 2);
lcd.print(v_timer_12_u);
lcd.setCursor(14, 2);
lcd.print(".");
break;
case 13:
if(v_timer_13_u<10){
lcd.print("0");
lcd.setCursor(15, 2);
lcd.print(v_timer_13_u);
}
else{
lcd.print(v_timer_13_u);
}
lcd.setCursor(14, 2);
lcd.print(v_timer_13_u);
lcd.setCursor(14, 2);
lcd.print(".");
break;
case 14:
if(v_timer_14_u<10){
lcd.print("0");
lcd.setCursor(15, 2);
lcd.print(v_timer_14_u);
}
else{
lcd.print(v_timer_14_u);
}
lcd.setCursor(14, 2);
lcd.print(v_timer_14_u);
lcd.setCursor(14, 2);
lcd.print(".");
break;
}
break;
case 4:
switch(v_c_m3x2){
case 1:
lcd.print(v_timer_1_ui);
lcd.setCursor(14, 2);
lcd.print(v_timer_1_ui);
lcd.setCursor(14, 2);
lcd.print(".");
break;
case 2:
lcd.print(v_timer_2_ui);
lcd.setCursor(14, 2);
lcd.print(v_timer_2_ui);
lcd.setCursor(14, 2);
lcd.print(".");
break;
case 3:
lcd.print(v_timer_3_ui);
lcd.setCursor(14, 2);
lcd.print(v_timer_3_ui);
lcd.setCursor(14, 2);
lcd.print(".");
break;
case 4:
lcd.print(v_timer_4_ui);
lcd.setCursor(14, 2);
lcd.print(v_timer_4_ui);
lcd.setCursor(14, 2);
lcd.print(".");
break;
case 5:
lcd.print(v_timer_5_ui);
lcd.setCursor(14, 2);
lcd.print(v_timer_5_ui);
lcd.setCursor(14, 2);
lcd.print(".");
break;
case 6:
lcd.print(v_timer_6_ui);
lcd.setCursor(14, 2);
lcd.print(v_timer_6_ui);
lcd.setCursor(14, 2);
lcd.print(".");
break;
case 7:
lcd.print(v_timer_7_ui);
lcd.setCursor(14, 2);
lcd.print(v_timer_7_ui);
lcd.setCursor(14, 2);
lcd.print(".");
break;
case 8:
lcd.print(v_timer_8_ui);
lcd.setCursor(14, 2);
lcd.print(v_timer_8_ui);
lcd.setCursor(14, 2);
lcd.print(".");
break;
case 9:
lcd.print(v_timer_9_ui);
lcd.setCursor(14, 2);
lcd.print(v_timer_9_ui);
lcd.setCursor(14, 2);
lcd.print(".");
break;
case 10:
lcd.print(v_timer_10_ui);
lcd.setCursor(14, 2);
lcd.print(v_timer_10_ui);
lcd.setCursor(14, 2);
lcd.print(".");
break;
case 11:
lcd.print(v_timer_11_ui);
lcd.setCursor(14, 2);
lcd.print(v_timer_11_ui);
lcd.setCursor(14, 2);
lcd.print(".");
break;
case 12:
lcd.print(v_timer_12_ui);
lcd.setCursor(14, 2);
lcd.print(v_timer_12_ui);
lcd.setCursor(14, 2);
lcd.print(".");
break;
}
break;
}
}
//*********************************************
void CURSOR_M3_Y(){
lcd.setCursor(0, 1);
lcd.print(" ");
lcd.setCursor(0, 2);
lcd.print(" ");
lcd.setCursor(0, 3);
lcd.print(" ");
switch (v_c_m3y){
case 1:
lcd.setCursor(0, 1);
lcd.print("->");
break;
case 2:
lcd.setCursor(0, 2);
lcd.print("->");
break;
case 3:
lcd.setCursor(0, 3);
lcd.print(">>>");
break;
}
}
//**************************************************************
void CURSOR_M3_X(){
switch (v_c_m3y){
case 1:
switch(v_c_m3x){
case 1:
lcd.setCursor(5, 1);
lcd.print("<MODO L >");
break;
case 2:
lcd.setCursor(5, 1);
lcd.print("<MODO LI >");
break;
case 3:
lcd.setCursor(5, 1);
lcd.print("<MODO U >");
break;
case 4:
lcd.setCursor(5, 1);
lcd.print("<MODO UI >");
}
break;
case 2:
switch(v_c_m3x2){
case 1:
lcd.setCursor(3, 2);
lcd.print("<PASO 1> ");
break;
case 2:
lcd.setCursor(3, 2);
lcd.print("<PASO 2>");
break;
case 3:
lcd.setCursor(3, 2);
lcd.print("<PASO 3>");
break;
case 4:
lcd.setCursor(3, 2);
lcd.print("<PASO 4>");
break;
case 5:
lcd.setCursor(3, 2);
lcd.print("<PASO 5>");
break;
case 6:
lcd.setCursor(3, 2);
lcd.print("<PASO 6>");
break;
case 7:
lcd.setCursor(3, 2);
lcd.print("<PASO 7>");
break;
case 8:
lcd.setCursor(3, 2);
lcd.print("<PASO 8>");
break;
case 9:
lcd.setCursor(3, 2);
lcd.print("<PASO 9> ");
break;
case 10:
lcd.setCursor(3, 2);
lcd.print("<PASO 10>");
break;
case 11:
lcd.setCursor(3, 2);
lcd.print("<PASO 11>");
break;
case 12:
lcd.setCursor(3, 2);
lcd.print("<PASO 12> ");
break;
case 13:
lcd.setCursor(3, 2);
lcd.print("<PASO 13>");
break;
case 14:
lcd.setCursor(3, 2);
lcd.print("<PASO 14>");
break;
}
break;
}
}
void MENU_4(){
lcd.setCursor(1, 0);
lcd.print("----AUTOMATICO----");
lcd.setCursor(1, 1);
lcd.print("-----*RUNNING*-----");
lcd.setCursor(3, 2);
lcd.print("<<<PASO >>> ");
lcd.setCursor(0,3);
lcd.print("<< >>");
}
//***************************************
void MONITOREO1_M4(){
lcd.setCursor(11, 2);
lcd.print(v_c_m3x2);
lcd.print(" ");
}
//*****************************************
void MONITOREO2_M4(){
lcd.setCursor(2,3);
switch (state_step){
case 1:
lcd.print(" START STEP ");
break;
case 2:
lcd.print(" WAITING SENSOR ");
break;
case 3:
lcd.print(" TIMER ");
break;
case 4:
lcd.print(" WAITING MOC ");
break;
}
}
//*******************************************
void manual(){
switch (dato){
case 1:
if(state_mov_m==1){
lcd.setCursor(6,3);
lcd.print(" DOING ");
P_ARRIBA();
state_mov_m=2;
}
break;
case 2:
dato_s=digitalRead(MOC);
if(dato_s==LOW){
if(state_mov_m==1){
lcd.setCursor(6,3);
lcd.print(" DOING ");
digitalWrite(SAFETY_MOLD_CLOSE, HIGH);
digitalWrite(AUTOX, HIGH);
P_ABAJO();
state_mov_m=2;
}}
else{
dato_s=digitalRead(GIRO_V_UP);
if(dato_s==LOW){
if(state_mov_m==1){
lcd.setCursor(6,3);
lcd.print(" DOING ");
P_ABAJO();
state_mov_m=2;
}}
else{
lcd.setCursor(6,3);
lcd.print("MOLD CLOSE");
}}
break;
case 3:
if(state_mov_m==1){
lcd.setCursor(6,3);
lcd.print(" DOING ");
P_IZQUIERDA();
state_mov_m=2;
}
break;
case 4:
if(state_mov_m==1){
lcd.setCursor(6,3);
lcd.print(" DOING ");
P_DERECHA();
state_mov_m=2;
}
break;
case 5:
dato_s=digitalRead(ARRIBA);
if(dato_s==HIGH){
if(state_mov_m==1){
lcd.setCursor(6,3);
lcd.print(" DOING ");
P_SWING_P();
state_mov_m=2;
}
}
else{
lcd.setCursor(6,3);
lcd.print("ERROR POS");
}
break;
case 6:
dato_s=digitalRead(ARRIBA);
if(dato_s==HIGH){
if(state_mov_m==1){
lcd.setCursor(6,3);
lcd.print(" DOING ");
P_SWING_N();
state_mov_m=2;
}
}
else{
lcd.setCursor(6,3);
lcd.print("ERROR POS");
}
break;
case 7:
if(state_mov_m==1){
lcd.setCursor(6,3);
lcd.print(" DO ");
P_GIRO_P();
state_mov_m=1;
}
break;
case 8:
if(state_mov_m==1){
lcd.setCursor(6,3);
lcd.print(" DO ");
P_GIRO_N();
state_mov_m=1;
}
break;
case 9:
if(state_mov_m==1){
lcd.setCursor(6,3);
lcd.print(" DO ");
P_OPEN();
state_mov_m=1;
}
break;
case 0:
if(state_mov_m==1){
lcd.setCursor(6,3);
lcd.print(" DO ");
P_CLOSE();
state_mov_m=1;
}
break;
}
}
//*********************************************************
void TIMERS_L(){
switch(v_c_m3x2){
case 1:
t_actual=millis();
if(t_actual-t_ref>v_timer_1_l*100){
STATE_TIMER=2;
START_TIMER=1;
state_step=1;
v_c_m3x2 ++;
MONITOREO1_M4();
Serial.println("fin");
}
break;
case 2:
t_actual=millis();
if(t_actual-t_ref>v_timer_2_l*100){
STATE_TIMER=2;
START_TIMER=1;
state_step=1;
v_c_m3x2 ++;
MONITOREO1_M4();
Serial.println("fin");
}
break;
case 3:
t_actual=millis();
if(t_actual-t_ref>v_timer_3_l*100){
STATE_TIMER=2;
START_TIMER=1;
state_step=1;
v_c_m3x2 ++;
MONITOREO1_M4();
Serial.println("fin");
}
break;
case 4:
t_actual=millis();
if(t_actual-t_ref>v_timer_4_l*100){
STATE_TIMER=2;
START_TIMER=1;
state_step=1;
v_c_m3x2 ++;
MONITOREO1_M4();
Serial.println("fin");
}
break;
case 5:
t_actual=millis();
if(t_actual-t_ref>v_timer_5_l*100){
STATE_TIMER=2;
START_TIMER=1;
state_step=1;
v_c_m3x2 ++;
MONITOREO1_M4();
Serial.println("fin");
}
break;
case 6:
t_actual=millis();
if(t_actual-t_ref>v_timer_6_l*100){
STATE_TIMER=2;
START_TIMER=1;
state_step=1;
v_c_m3x2 ++;
MONITOREO1_M4();
Serial.println("fin");
}
break;
case 7:
t_actual=millis();
if(t_actual-t_ref>v_timer_7_l*100){
STATE_TIMER=2;
START_TIMER=1;
state_step=1;
v_c_m3x2 ++;
MONITOREO1_M4();
Serial.println("fin");
}
break;
case 8:
t_actual=millis();
if(t_actual-t_ref>v_timer_8_l*100){
STATE_TIMER=2;
START_TIMER=1;
state_step=1;
v_c_m3x2 ++;
MONITOREO1_M4();
Serial.println("fin");
}
break;
case 9:
t_actual=millis();
if(t_actual-t_ref>v_timer_9_l*100){
STATE_TIMER=2;
START_TIMER=1;
state_step=1;
v_c_m3x2 ++;
MONITOREO1_M4();
Serial.println("fin");
}
break;
case 10:
t_actual=millis();
if(t_actual-t_ref>v_timer_10_l*100){
STATE_TIMER=2;
START_TIMER=1;
state_step=1;
v_c_m3x2 ++;
MONITOREO1_M4();
Serial.println("fin");
}
break;
case 11:
t_actual=millis();
if(t_actual-t_ref>v_timer_11_l*100){
STATE_TIMER=2;
START_TIMER=1;
state_step=1;
v_c_m3x2 ++;
MONITOREO1_M4();
Serial.println("fin");
}
break;
case 12:
t_actual=millis();
if(t_actual-t_ref>v_timer_12_l*100){
STATE_TIMER=2;
START_TIMER=1;
state_step=1;
v_c_m3x2 ++;
MONITOREO1_M4();
Serial.println("fin");
}
break;
case 13:
t_actual=millis();
if(t_actual-t_ref>v_timer_13_l*100){
STATE_TIMER=2;
START_TIMER=1;
state_step=1;
v_c_m3x2 ++;
MONITOREO1_M4();
Serial.println("fin");
}
Serial.println("toy revisando");
break;
case 14:
t_actual=millis();
if(t_actual-t_ref>v_timer_14_l*100){
STATE_TIMER=2;
START_TIMER=1;
state_step=4;
v_c_m3x2 =1;
MONITOREO1_M4();
Serial.println("fin");
}
break;
}
}
//************************************************************
void TIMERS_LI(){
switch(v_c_m3x2){
case 1:
t_actual=millis();
if(t_actual-t_ref>v_timer_1_li*100){
STATE_TIMER=2;
START_TIMER=1;
v_c_m3x2 ++;
Serial.println("fin");
}
break;
case 2:
t_actual=millis();
if(t_actual-t_ref>v_timer_2_li*100){
STATE_TIMER=2;
START_TIMER=1;
v_c_m3x2 ++;
Serial.println("fin");
}
break;
case 3:
t_actual=millis();
if(t_actual-t_ref>v_timer_3_li*100){
STATE_TIMER=2;
START_TIMER=1;
v_c_m3x2 ++;
Serial.println("fin");
}
break;
case 4:
t_actual=millis();
if(t_actual-t_ref>v_timer_4_li*100){
STATE_TIMER=2;
START_TIMER=1;
v_c_m3x2 ++;
Serial.println("fin");
}
break;
case 5:
t_actual=millis();
if(t_actual-t_ref>v_timer_5_li*100){
STATE_TIMER=2;
START_TIMER=1;
v_c_m3x2 ++;
Serial.println("fin");
}
break;
case 6:
t_actual=millis();
if(t_actual-t_ref>v_timer_6_li*100){
STATE_TIMER=2;
START_TIMER=1;
v_c_m3x2 ++;
Serial.println("fin");
}
break;
case 7:
t_actual=millis();
if(t_actual-t_ref>v_timer_7_li*100){
STATE_TIMER=2;
START_TIMER=1;
v_c_m3x2 ++;
Serial.println("fin");
}
break;
case 8:
t_actual=millis();
if(t_actual-t_ref>v_timer_8_li*100){
STATE_TIMER=2;
START_TIMER=1;
v_c_m3x2 ++;
Serial.println("fin");
}
break;
case 9:
t_actual=millis();
if(t_actual-t_ref>v_timer_9_li*100){
STATE_TIMER=2;
START_TIMER=1;
v_c_m3x2 ++;
Serial.println("fin");
}
break;
case 10:
t_actual=millis();
if(t_actual-t_ref>v_timer_10_li*100){
STATE_TIMER=2;
START_TIMER=1;
v_c_m3x2 ++;
Serial.println("fin");
}
break;
case 11:
t_actual=millis();
if(t_actual-t_ref>v_timer_11_li*100){
STATE_TIMER=2;
START_TIMER=1;
v_c_m3x2 ++;
Serial.println("fin");
}
break;
case 12:
t_actual=millis();
if(t_actual-t_ref>v_timer_12_li*100){
STATE_TIMER=2;
START_TIMER=1;
v_c_m3x2 =1;
Serial.println("fin");
}
break;
}
}
//***************************************************************
void TIMERS_U(){
switch(v_c_m3x2){
case 1:
t_actual=millis();
if(t_actual-t_ref>v_timer_1_u*100){
STATE_TIMER=2;
START_TIMER=1;
state_step=1;
v_c_m3x2 ++;
MONITOREO1_M4();
Serial.println("fin");
}
break;
case 2:
t_actual=millis();
if(t_actual-t_ref>v_timer_2_u*100){
STATE_TIMER=2;
START_TIMER=1;
state_step=1;
v_c_m3x2 ++;
MONITOREO1_M4();
Serial.println("fin");
}
break;
case 3:
t_actual=millis();
if(t_actual-t_ref>v_timer_3_u*100){
STATE_TIMER=2;
START_TIMER=1;
state_step=1;
v_c_m3x2 ++;
MONITOREO1_M4();
Serial.println("fin");
}
break;
case 4:
t_actual=millis();
if(t_actual-t_ref>v_timer_4_u*100){
STATE_TIMER=2;
START_TIMER=1;
state_step=1;
v_c_m3x2 ++;
MONITOREO1_M4();
Serial.println("fin");
}
break;
case 5:
t_actual=millis();
if(t_actual-t_ref>v_timer_5_u*100){
STATE_TIMER=2;
START_TIMER=1;
state_step=1;
v_c_m3x2 ++;
MONITOREO1_M4();
Serial.println("fin");
}
break;
case 6:
t_actual=millis();
if(t_actual-t_ref>v_timer_6_u*100){
STATE_TIMER=2;
START_TIMER=1;
state_step=1;
v_c_m3x2 ++;
MONITOREO1_M4();
Serial.println("fin");
}
break;
case 7:
t_actual=millis();
if(t_actual-t_ref>v_timer_7_u*100){
STATE_TIMER=2;
START_TIMER=1;
state_step=1;
v_c_m3x2 ++;
MONITOREO1_M4();
Serial.println("fin");
}
break;
case 8:
t_actual=millis();
if(t_actual-t_ref>v_timer_8_u*100){
STATE_TIMER=2;
START_TIMER=1;
state_step=1;
v_c_m3x2 ++;
MONITOREO1_M4();
Serial.println("fin");
}
break;
case 9:
t_actual=millis();
if(t_actual-t_ref>v_timer_9_u*100){
STATE_TIMER=2;
START_TIMER=1;
state_step=1;
v_c_m3x2 ++;
MONITOREO1_M4();
Serial.println("fin");
}
break;
case 10:
t_actual=millis();
if(t_actual-t_ref>v_timer_10_u*100){
STATE_TIMER=2;
START_TIMER=1;
state_step=1;
v_c_m3x2 ++;
MONITOREO1_M4();
Serial.println("fin");
}
break;
case 11:
t_actual=millis();
if(t_actual-t_ref>v_timer_11_u*100){
STATE_TIMER=2;
START_TIMER=1;
state_step=1;
v_c_m3x2 ++;
MONITOREO1_M4();
Serial.println("fin");
}
break;
case 12:
t_actual=millis();
if(t_actual-t_ref>v_timer_12_u*100){
STATE_TIMER=2;
START_TIMER=1;
state_step=1;
v_c_m3x2++;
MONITOREO1_M4();
Serial.println("fin");
}
break;
case 13:
t_actual=millis();
if(t_actual-t_ref>v_timer_13_u*100){
STATE_TIMER=2;
START_TIMER=1;
state_step=1;
v_c_m3x2 ++;
MONITOREO1_M4();
Serial.println("fin");
}
else{
Serial.println("toy revisando");
}
break;
case 14:
t_actual=millis();
if(t_actual-t_ref>v_timer_14_u*100){
STATE_TIMER=2;
START_TIMER=1;
state_step=4;
v_c_m3x2=1;
MONITOREO1_M4();
Serial.println("fin");
}
break;
}
}
//**************************************************************
void TIMERS_UI(){
switch(v_c_m3x2){
case 1:
t_actual=millis();
if(t_actual-t_ref>v_timer_1_ui*100){
STATE_TIMER=2;
START_TIMER=1;
v_c_m3x2 ++;
Serial.println("fin");
}
break;
case 2:
t_actual=millis();
if(t_actual-t_ref>v_timer_2_ui*100){
STATE_TIMER=2;
START_TIMER=1;
v_c_m3x2 ++;
Serial.println("fin");
}
break;
case 3:
t_actual=millis();
if(t_actual-t_ref>v_timer_3_ui*100){
STATE_TIMER=2;
START_TIMER=1;
v_c_m3x2 ++;
Serial.println("fin");
}
break;
case 4:
t_actual=millis();
if(t_actual-t_ref>v_timer_4_ui*100){
STATE_TIMER=2;
START_TIMER=1;
v_c_m3x2 ++;
Serial.println("fin");
}
break;
case 5:
t_actual=millis();
if(t_actual-t_ref>v_timer_5_ui*100){
STATE_TIMER=2;
START_TIMER=1;
v_c_m3x2 ++;
Serial.println("fin");
}
break;
case 6:
t_actual=millis();
if(t_actual-t_ref>v_timer_6_ui*100){
STATE_TIMER=2;
START_TIMER=1;
v_c_m3x2 ++;
Serial.println("fin");
}
break;
case 7:
t_actual=millis();
if(t_actual-t_ref>v_timer_7_ui*100){
STATE_TIMER=2;
START_TIMER=1;
v_c_m3x2 ++;
Serial.println("fin");
}
break;
case 8:
t_actual=millis();
if(t_actual-t_ref>v_timer_8_ui*100){
STATE_TIMER=2;
START_TIMER=1;
v_c_m3x2 ++;
Serial.println("fin");
}
break;
case 9:
t_actual=millis();
if(t_actual-t_ref>v_timer_9_ui*100){
STATE_TIMER=2;
START_TIMER=1;
v_c_m3x2 ++;
Serial.println("fin");
}
break;
case 10:
t_actual=millis();
if(t_actual-t_ref>v_timer_10_ui*100){
STATE_TIMER=2;
START_TIMER=1;
v_c_m3x2 ++;
Serial.println("fin");
}
break;
case 11:
t_actual=millis();
if(t_actual-t_ref>v_timer_11_ui*100){
STATE_TIMER=2;
START_TIMER=1;
v_c_m3x2 ++;
Serial.println("fin");
}
break;
case 12:
t_actual=millis();
if(t_actual-t_ref>v_timer_12_ui*100){
STATE_TIMER=2;
START_TIMER=1;
v_c_m3x2 =1;
Serial.println("fin");
}
break;
}
}
void AUTOMATICO(){
switch (v_c_m3x){
case 1:
switch(v_c_m3x2){
case 1:
if(START_TIMER==1){
MONITOREO1_M4();
Serial.println("TIMER 1");
//INSERTAR ACCION
t_ref=millis();
START_TIMER=2;
STATE_TIMER=1;
}
TIMERS_L();
break;
case 2:
if(START_TIMER==1){
MONITOREO1_M4();
Serial.println("TIMER 2");
//INSERTAR ACCION
t_ref=millis();
START_TIMER=2;
}
TIMERS_L();
break;
case 3:
if(START_TIMER==1){
MONITOREO1_M4();
Serial.println("TIMER 3");
//INSERTAR ACCION
t_ref=millis();
START_TIMER=2;
}
TIMERS_L();
break;
case 4:
if(START_TIMER==1){
MONITOREO1_M4();
Serial.println("TIMER 4");
//INSERTAR ACCION
t_ref=millis();
START_TIMER=2;
}
TIMERS_L();
break;
case 5:
if(START_TIMER==1){
MONITOREO1_M4();
Serial.println("TIMER 5");
//INSERTAR ACCION
t_ref=millis();
START_TIMER=2;
}
TIMERS_L();
break;
case 6:
if(START_TIMER==1){
MONITOREO1_M4();
Serial.println("TIMER 6");
//INSERTAR ACCION
t_ref=millis();
START_TIMER=2;
}
TIMERS_L();
break;
case 7:
if(START_TIMER==1){
MONITOREO1_M4();
Serial.println("TIMER 7");
//INSERTAR ACCION
t_ref=millis();
START_TIMER=2;
}
TIMERS_L();
break;
case 8:
if(START_TIMER==1){
MONITOREO1_M4();
Serial.println("TIMER 8");
//INSERTAR ACCION
t_ref=millis();
START_TIMER=2;
}
TIMERS_L();
break;
case 9:
if(START_TIMER==1){
MONITOREO1_M4();
Serial.println("TIMER 9");
//INSERTAR ACCION
t_ref=millis();
START_TIMER=2;
}
TIMERS_L();
break;
case 10:
if(START_TIMER==1){
MONITOREO1_M4();
Serial.println("TIMER 10");
//INSERTAR ACCION
t_ref=millis();
START_TIMER=2;
}
TIMERS_L();
break;
case 11:
if(START_TIMER==1){
MONITOREO1_M4();
Serial.println("TIMER 11");
//INSERTAR ACCION
t_ref=millis();
START_TIMER=2;
}
TIMERS_L();
break;
case 12:
if(START_TIMER==1){
MONITOREO1_M4();
Serial.println("TIMER 12");
//INSERTAR ACCION
t_ref=millis();
START_TIMER=2;
}
TIMERS_L();
break;
case 13:
if(START_TIMER==1){
MONITOREO1_M4();
Serial.println("TIMER 13");
//INSERTAR ACCION
t_ref=millis();
START_TIMER=2;
}
TIMERS_L();
break;
case 14:
if(START_TIMER==1){
MONITOREO1_M4();
Serial.println("TIMER 14");
//INSERTAR ACCION
t_ref=millis();
START_TIMER=2;
}
TIMERS_L();
break;
}
break;
case 2:
switch(v_c_m3x2){
case 1:
if(START_TIMER==1){
MONITOREO1_M4();
Serial.println("TIMER 1");
//INSERTAR ACCION
t_ref=millis();
START_TIMER=2;
STATE_TIMER=1;
}
TIMERS_LI();
break;
case 2:
if(START_TIMER==1){
MONITOREO1_M4();
Serial.println("TIMER 2");
//INSERTAR ACCION
t_ref=millis();
START_TIMER=2;
}
TIMERS_LI();
break;
case 3:
if(START_TIMER==1){
MONITOREO1_M4();
Serial.println("TIMER 3");
//INSERTAR ACCION
t_ref=millis();
START_TIMER=2;
}
TIMERS_LI();
break;
case 4:
if(START_TIMER==1){
MONITOREO1_M4();
Serial.println("TIMER 4");
//INSERTAR ACCION
t_ref=millis();
START_TIMER=2;
}
TIMERS_LI();
break;
case 5:
if(START_TIMER==1){
MONITOREO1_M4();
Serial.println("TIMER 5");
//INSERTAR ACCION
t_ref=millis();
START_TIMER=2;
}
TIMERS_LI();
break;
case 6:
if(START_TIMER==1){
MONITOREO1_M4();
MONITOREO2_M4();
Serial.println("TIMER 6");
//INSERTAR ACCION
t_ref=millis();
START_TIMER=2;
}
TIMERS_LI();
break;
case 7:
if(START_TIMER==1){
MONITOREO1_M4();
MONITOREO2_M4();
Serial.println("TIMER 7");
//INSERTAR ACCION
t_ref=millis();
START_TIMER=2;
}
TIMERS_LI();
break;
case 8:
if(START_TIMER==1){
MONITOREO1_M4();
MONITOREO2_M4();
Serial.println("TIMER 8");
//INSERTAR ACCION
t_ref=millis();
START_TIMER=2;
}
TIMERS_LI();
break;
case 9:
if(START_TIMER==1){
MONITOREO1_M4();
MONITOREO2_M4();
Serial.println("TIMER 9");
//INSERTAR ACCION
t_ref=millis();
START_TIMER=2;
}
TIMERS_LI();
break;
case 10:
if(START_TIMER==1){
MONITOREO1_M4();
MONITOREO2_M4();
Serial.println("TIMER 10");
//INSERTAR ACCION
t_ref=millis();
START_TIMER=2;
}
TIMERS_LI();
break;
case 11:
if(START_TIMER==1){
MONITOREO1_M4();
MONITOREO2_M4();
Serial.println("TIMER 11");
//INSERTAR ACCION
t_ref=millis();
START_TIMER=2;
}
TIMERS_LI();
break;
case 12:
if(START_TIMER==1){
MONITOREO1_M4();
MONITOREO2_M4();
Serial.println("TIMER 12");
//INSERTAR ACCION
t_ref=millis();
START_TIMER=2;
}
TIMERS_LI();
break;
}
break;
case 3:
switch(v_c_m3x2){
case 1:
if(START_TIMER==1){
MONITOREO1_M4();
MONITOREO2_M4();
Serial.println("TIMER 1");
//INSERTAR ACCION
t_ref=millis();
START_TIMER=2;
STATE_TIMER=1;
}
TIMERS_U();
break;
case 2:
if(START_TIMER==1){
MONITOREO1_M4();
MONITOREO2_M4();
Serial.println("TIMER 2");
//INSERTAR ACCION
t_ref=millis();
START_TIMER=2;
}
TIMERS_U();
break;
case 3:
if(START_TIMER==1){
MONITOREO1_M4();
MONITOREO2_M4();
Serial.println("TIMER 3");
//INSERTAR ACCION
t_ref=millis();
START_TIMER=2;
}
TIMERS_U();
break;
case 4:
if(START_TIMER==1){
MONITOREO1_M4();
MONITOREO2_M4();
Serial.println("TIMER 4");
//INSERTAR ACCION
t_ref=millis();
START_TIMER=2;
}
TIMERS_U();
break;
case 5:
if(START_TIMER==1){
MONITOREO1_M4();
MONITOREO2_M4();
Serial.println("TIMER 5");
//INSERTAR ACCION
t_ref=millis();
START_TIMER=2;
}
TIMERS_U();
break;
case 6:
if(START_TIMER==1){
MONITOREO1_M4();
MONITOREO2_M4();
Serial.println("TIMER 6");
//INSERTAR ACCION
t_ref=millis();
START_TIMER=2;
}
TIMERS_U();
break;
case 7:
if(START_TIMER==1){
MONITOREO1_M4();
MONITOREO2_M4();
Serial.println("TIMER 7");
//INSERTAR ACCION
t_ref=millis();
START_TIMER=2;
}
TIMERS_U();
break;
case 8:
if(START_TIMER==1){
MONITOREO1_M4();
MONITOREO2_M4();
Serial.println("TIMER 8");
//INSERTAR ACCION
t_ref=millis();
START_TIMER=2;
}
TIMERS_U();
break;
case 9:
if(START_TIMER==1){
MONITOREO1_M4();
MONITOREO2_M4();
Serial.println("TIMER 9");
//INSERTAR ACCION
t_ref=millis();
START_TIMER=2;
}
TIMERS_U();
break;
case 10:
if(START_TIMER==1){
MONITOREO1_M4();
MONITOREO2_M4();
Serial.println("TIMER 10");
//INSERTAR ACCION
t_ref=millis();
START_TIMER=2;
}
TIMERS_U();
break;
case 11:
if(START_TIMER==1){
MONITOREO1_M4();
MONITOREO2_M4();
Serial.println("TIMER 11");
//INSERTAR ACCION
t_ref=millis();
START_TIMER=2;
}
TIMERS_U();
break;
case 12:
if(START_TIMER==1){
MONITOREO1_M4();
MONITOREO2_M4();
Serial.println("TIMER 12");
//INSERTAR ACCION
t_ref=millis();
START_TIMER=2;
}
TIMERS_U();
break;
case 13:
if(START_TIMER==1){
MONITOREO1_M4();
MONITOREO2_M4();
Serial.println("TIMER 13");
//INSERTAR ACCION
t_ref=millis();
START_TIMER=2;
}
TIMERS_U();
break;
case 14:
if(START_TIMER==1){
MONITOREO1_M4();
MONITOREO2_M4();
Serial.println("TIMER 14");
//INSERTAR ACCION
t_ref=millis();
START_TIMER=2;
}
TIMERS_U();
break;
}
break;
case 4:
switch(v_c_m3x2){
case 1:
if(START_TIMER==1){
MONITOREO1_M4();
MONITOREO2_M4();
Serial.println("TIMER 1");
//INSERTAR ACCION
t_ref=millis();
START_TIMER=2;
STATE_TIMER=1;
}
TIMERS_UI();
break;
case 2:
if(START_TIMER==1){
MONITOREO1_M4();
MONITOREO2_M4();
Serial.println("TIMER 2");
//INSERTAR ACCION
t_ref=millis();
START_TIMER=2;
}
TIMERS_UI();
break;
case 3:
if(START_TIMER==1){
MONITOREO1_M4();
MONITOREO2_M4();
Serial.println("TIMER 3");
//INSERTAR ACCION
t_ref=millis();
START_TIMER=2;
}
TIMERS_UI();
break;
case 4:
if(START_TIMER==1){
MONITOREO1_M4();
MONITOREO2_M4();
Serial.println("TIMER 4");
//INSERTAR ACCION
t_ref=millis();
START_TIMER=2;
}
TIMERS_UI();
break;
case 5:
if(START_TIMER==1){
MONITOREO1_M4();
MONITOREO2_M4();
Serial.println("TIMER 5");
//INSERTAR ACCION
t_ref=millis();
START_TIMER=2;
}
TIMERS_UI();
break;
case 6:
if(START_TIMER==1){
MONITOREO1_M4();
MONITOREO2_M4();
Serial.println("TIMER 6");
//INSERTAR ACCION
t_ref=millis();
START_TIMER=2;
}
TIMERS_UI();
break;
case 7:
if(START_TIMER==1){
MONITOREO1_M4();
MONITOREO2_M4();
Serial.println("TIMER 7");
//INSERTAR ACCION
t_ref=millis();
START_TIMER=2;
}
TIMERS_UI();
break;
case 8:
if(START_TIMER==1){
MONITOREO1_M4();
MONITOREO2_M4();
Serial.println("TIMER 8");
//INSERTAR ACCION
t_ref=millis();
START_TIMER=2;
}
TIMERS_UI();
break;
case 9:
if(START_TIMER==1){
MONITOREO1_M4();
MONITOREO2_M4();
Serial.println("TIMER 9");
//INSERTAR ACCION
t_ref=millis();
START_TIMER=2;
}
TIMERS_UI();
break;
case 10:
if(START_TIMER==1){
MONITOREO1_M4();
MONITOREO2_M4();
Serial.println("TIMER 10");
//INSERTAR ACCION
t_ref=millis();
START_TIMER=2;
}
TIMERS_UI();
break;
case 11:
if(START_TIMER==1){
MONITOREO1_M4();
MONITOREO2_M4();
Serial.println("TIMER 11");
//INSERTAR ACCION
t_ref=millis();
START_TIMER=2;
}
TIMERS_UI();
break;
case 12:
if(START_TIMER==1){
MONITOREO1_M4();
MONITOREO2_M4();
Serial.println("TIMER 12");
//INSERTAR ACCION
t_ref=millis();
START_TIMER=2;
}
TIMERS_UI();
break;
}
break;
}
}
//*******************************************
void set_home(){
v_c_m3x2=1;
}
//*******************************************
void CONVERTIR_DATO(){
switch(count_dato){
case 1:
Serial.println("set d1");
dato1=dato;
count_dato=2;
set_dt1();
break;
case 2:
Serial.println("set d2");
dato2=dato;
dato=(dato1*10)+dato2;
SET_DATO();
count_dato=1;
set_dt2();
Serial.println("valor=");
Serial.println(dato);
break;
}
}
//**************************************
void set_dt1(){
lcd.setCursor(13, 2);
lcd.print(dato1);
lcd.print(".");
}
//*******************************************************
void set_dt2(){
lcd.setCursor(15, 2);
lcd.print(dato2);
}
//********************************
void P_ARRIBA(){
Serial.println("ARRIBA");
digitalWrite(SAFETY_MOLD_CLOSE, LOW);
digitalWrite(AUTOX, LOW);
digitalWrite(EV_ABAJO, HIGH);
}
//*************************************
void P_ABAJO(){
Serial.println("ABAJO");
digitalWrite(EV_ABAJO, LOW);
}
//***************************
void P_IZQUIERDA(){
Serial.println("IZQUIERDA");
digitalWrite(EV_DERECHA, HIGH);
}
//**********************************
void P_DERECHA(){
Serial.println("DERECHA");
digitalWrite(EV_DERECHA, LOW);
}
//******************************
void P_SWING_P(){
Serial.println("SWING_P");
digitalWrite(EV_GIRO_P_I, LOW);
digitalWrite(EV_GIRO_P_D, HIGH);
}
//**********************************
void P_SWING_N(){
Serial.println("SWING_N");
digitalWrite(EV_GIRO_P_D, LOW);
digitalWrite(EV_GIRO_P_I, HIGH);
}
//********************************
void P_GIRO_P(){
Serial.println("GIRO P");
digitalWrite(EV_GIRO_V_DOWN, LOW);
}
//********************************
void P_GIRO_N(){
Serial.println("GIRO N");
digitalWrite(EV_GIRO_V_DOWN, HIGH);
}
//********************************
void P_OPEN(){
Serial.println("OPEN");
digitalWrite(GRIPER, HIGH);
}
void P_CLOSE(){
Serial.println("CLOSE");
digitalWrite(GRIPER, LOW);
}
void PINZA_CLOSE(){
digitalWrite(EV_GIRO_P_D, LOW);
}
void PINZA_OPEN(){
digitalWrite(EV_GIRO_P_D, HIGH);
}
void LECTURA_SENSORES1(){
lcd.init();
lcd.backlight();
dato_s=digitalRead(MOC);
if(dato_s==HIGH){
lcd.setCursor(5, 1);
lcd.print("MOC ON");
}
else {
lcd.setCursor(5, 1);
lcd.print("MOC OFF");
}
dato_s=digitalRead(FULL_AUTO);
if(dato_s==HIGH){
lcd.setCursor(5, 2);
lcd.print("FULL A ON");
}
else {
lcd.setCursor(5, 2);
lcd.print("FULL A OFF");
}
dato_s=digitalRead(SA_DO_CLO);
if(dato_s==HIGH){
lcd.setCursor(5, 3);
lcd.print("PUERTAS ON");
}
else {
lcd.setCursor(5, 3);
lcd.print("PUERTAS OFF");
}
delay(3000);
}
void PERMISOS(){
switch (v_menu){
case 1:
digitalWrite(EJECTOR, LOW);
digitalWrite(AUTOX, LOW);
dato_s=digitalRead(ARRIBA);
if(dato_s==HIGH){
digitalWrite(SAFETY_MOLD_CLOSE, LOW);
}
else {
digitalWrite(SAFETY_MOLD_CLOSE, HIGH);
}
break;
case 2:
digitalWrite(EJECTOR, LOW);
dato_s=digitalRead(ARRIBA);
if(dato_s==HIGH){
digitalWrite(SAFETY_MOLD_CLOSE, LOW);
digitalWrite(AUTOX, LOW);
}
else {
digitalWrite(SAFETY_MOLD_CLOSE, HIGH);
digitalWrite(AUTOX, HIGH);
}
break;
case 3:
digitalWrite(EJECTOR, LOW);
dato_s=digitalRead(ARRIBA);
if(dato_s==HIGH){
digitalWrite(SAFETY_MOLD_CLOSE, LOW);
digitalWrite(AUTOX, LOW);
}
else {
digitalWrite(SAFETY_MOLD_CLOSE, HIGH);
digitalWrite(AUTOX, HIGH);
}
break;
}
}
void MENU_5(){
lcd.clear();
lcd.setCursor(1,1);
lcd.print("U:");
lcd.setCursor(1,2);
lcd.print("D:");
lcd.setCursor(1,3);
lcd.print("L:");
lcd.setCursor(7,1);
lcd.print("R:");
lcd.setCursor(7,2);
lcd.print("H:");
lcd.setCursor(7,3);
lcd.print("V:");
lcd.setCursor(15,1);
lcd.print("FA:");
lcd.setCursor(15,2);
lcd.print("ST:");
lcd.setCursor(15,3);
lcd.print("SD:");
}
void menu_5_s1(){
lcd.setCursor(6,0);
lcd.print("SENSORES");
dato_s=digitalRead(ARRIBA);
if(dato_s==HIGH){
U=2;
A_U=U;
lcd.setCursor(4,1);
lcd.print("*");
}
else{
U=1;
A_U=U;
}
dato_s=digitalRead(ABAJO);
if(dato_s==HIGH){
D=2;
A_D=D;
lcd.setCursor(4,2);
lcd.print("*");
}
else{
D=1;
A_D=D;
}
dato_s=digitalRead(IZQUIERDA);
if(dato_s==HIGH){
L=2;
A_L=L;
lcd.setCursor(4,3);
lcd.print("*");
}
else{
L=1;
A_L=L;
}
dato_s=digitalRead(DERECHA);
if(dato_s==HIGH){
R=2;
A_R=R;
lcd.setCursor(10,1);
lcd.print("*");
}
else{
R=1;
A_R=R;
}
dato_s=digitalRead(GIRO_V_UP);
if(dato_s==LOW){
H=2;
A_H=H;
lcd.setCursor(10,2);
lcd.print("*");
}
else{
H=1;
A_H=H;
}
dato_s=digitalRead(GIRO_V_DOWN);
if(dato_s==LOW){
V=2;
A_V=V;
lcd.setCursor(10,3);
lcd.print("*");
}
else{
V=1;
A_V=V;
}
dato_s=digitalRead(MOC);
if(dato_s==HIGH){
FA=2;
A_FA=FA;
lcd.setCursor(18,1);
lcd.print("*");
}
else{
FA=1;
A_FA=FA;
}
dato_s=digitalRead(FULL_AUTO);
if(dato_s==HIGH){
ST=2;
A_ST=ST;
lcd.setCursor(18,2);
lcd.print("*");
}
else{
ST=1;
A_ST=ST;
}
dato_s=digitalRead(SA_DO_CLO);
if(dato_s==HIGH){
SD=2;
A_SD=SD;
lcd.setCursor(18,3);
lcd.print("*");
}
else{
SD=1;
A_SD=SD;
}
}
//**********************************
void MENU_5_REFRESH(){
dato_s=digitalRead(ARRIBA);
if(dato_s==HIGH){
U=2;
if(U !=A_U){
lcd.setCursor(4,1);
lcd.print("*");
A_U=U;
}
}
else{
U=1;
if(U!=A_U){
lcd.setCursor(4,1);
lcd.print(" ");
A_U=U;
}
}
dato_s=digitalRead(ABAJO);
if(dato_s==HIGH){
D=2;
if(D != A_D){
lcd.setCursor(4,2);
lcd.print("*");
A_D=D;
}
}
else{
D=1;
if(D != A_D){
lcd.setCursor(4,2);
lcd.print(" ");
A_D=D;
}
}
dato_s=digitalRead(IZQUIERDA);
if(dato_s==HIGH){
L=2;
if(L != A_L){
lcd.setCursor(4,3);
lcd.print("*");
A_L=L;
}
}
else{
L=1;
if(L != A_L){
lcd.setCursor(4,3);
lcd.print(" ");
A_L=L;
}
}
dato_s=digitalRead(DERECHA);
if(dato_s==HIGH){
R=2;
if(R != A_R){
lcd.setCursor(10,1);
lcd.print("*");
A_R=R;
}
}
else{
R=1;
if(R != A_R){
lcd.setCursor(10,1);
lcd.print(" ");
A_R=R;
}
}
dato_s=digitalRead(GIRO_V_UP);
if(dato_s==LOW){
H=2;
if(H != A_H){
lcd.setCursor(10,2);
lcd.print("*");
A_H=H;
}
}
else{
H=1;
if(H != A_H){
lcd.setCursor(10,2);
lcd.print(" ");
A_H=H;
}
}
dato_s=digitalRead(GIRO_V_DOWN);
if(dato_s==LOW){
V=2;
if(V != A_V){
lcd.setCursor(10,3);
lcd.print("*");
A_V=V;
}
}
else{
V=1;
if(V != A_V){
lcd.setCursor(10,3);
lcd.print(" ");
A_V=V;
}
}
dato_s=digitalRead(MOC);
if(dato_s==HIGH){
FA=2;
if(FA != A_FA){
lcd.setCursor(18,1);
lcd.print("*");
A_FA=FA;
}
}
else{
FA=1;
if(FA != A_FA){
lcd.setCursor(18,1);
lcd.print(" ");
A_FA=FA;
}
}
dato_s=digitalRead(FULL_AUTO);
if(dato_s==HIGH){
ST=2;
if(ST != A_ST){
lcd.setCursor(18,2);
lcd.print("*");
A_ST=ST;
}
}
else{
ST=1;
if(ST != A_ST){
lcd.setCursor(18,2);
lcd.print(" ");
A_ST=ST;
}
}
dato_s=digitalRead(SA_DO_CLO);
if(dato_s==HIGH){
SD=2;
if(SD != A_SD){
lcd.setCursor(18,3);
lcd.print("*");
A_SD=SD;
}
}
else{
SD=1;
if(SD != A_SD){
lcd.setCursor(18,3);
lcd.print(" ");
A_SD=SD;
}
}
}
void PANTALLA_EMERGENCIA(){
lcd.clear();
lcd.setCursor(0,0);
lcd.print("////////////////////");
lcd.setCursor(4,1);
lcd.print("PARO DE");
lcd.setCursor(3,2);
lcd.print("EMERGENCIA");
lcd.setCursor(0,3);
lcd.print("////////////////////");
}