#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 MOC=3;
int FULL_AUTO=5;
int SAFETY_DOOR_CLOSE=6;
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;
//SALIDAS
int EV_ARRIBA=38;
int EV_ABAJO=39;
int EV_IZQUIERDA=40;
int EV_DERECHA=41;
int EV_GIRO_P_D=42;
int EV_GIRO_P_I=43;
int EV_GIRO_V_UP=44;
int EV_GIRO_V_DOWN=45;
int GRIPER=46;
//DATOS GENERALES PROGRAMA
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 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
//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
//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
//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(SAFETY_DOOR_CLOSE,INPUT);
pinMode(EJECTOR,INPUT);
pinMode(EXTERNAL_SIGNAL,INPUT);
pinMode(ES1, INPUT);
pinMode(ES2,INPUT);
//configuracion de salidas
pinMode(EV_ARRIBA, OUTPUT);
pinMode(EV_ABAJO, OUTPUT);
pinMode(EV_IZQUIERDA, OUTPUT);
pinMode(EV_DERECHA, OUTPUT);
pinMode(EV_GIRO_P_D, OUTPUT);
pinMode(EV_GIRO_P_I, OUTPUT);
pinMode(EV_GIRO_V_UP, OUTPUT);
pinMode(EV_GIRO_V_DOWN, OUTPUT);
pinMode(GRIPER, OUTPUT);
//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_ARRIBA, HIGH);
digitalWrite(EV_ABAJO, HIGH);
digitalWrite(EV_IZQUIERDA, HIGH);
digitalWrite(EV_DERECHA, HIGH);
digitalWrite(EV_GIRO_P_D, HIGH);
digitalWrite(EV_GIRO_P_I, HIGH);
digitalWrite(EV_GIRO_V_UP, HIGH);
digitalWrite(EV_GIRO_V_DOWN, HIGH);
digitalWrite(GRIPER, HIGH);
//valores de inicio
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;
actualizar_datos();
PANTALLA_INICIO();
MENU_1();
cursor_m_1();
}
void loop() {
//ENTRADA Y REDIRECCIONAMIENTO BASE A KEYBOARD
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){
manual();
lcd.setCursor(12, 2);
lcd.print(dato);
}
}
// SIGUIENTES RUTINAS DEL LOOP
//
//
//lectura de señales maquina
//+**********************
if(v_menu==4){
dato_s=digitalRead(MOC);
if(dato_s==HIGH){
state_step=1;
}
if(dato_s==LOW){
state_step=4;
}
if (state_step==4){
if(a_state_step!=state_step){
MONITOREO2_M4();
Serial.println("ESPERANDO MOC");
a_state_step=state_step;
}
}
//**************************************
if(state_step==3){
if(a_state_step!=state_step){
MONITOREO2_M4();
Serial.println("TIMER ON");
a_state_step=state_step;
}
AUTOMATICO();
}
//************************************
if (state_step==2){
rutina();
if(a_state_step!=state_step){
MONITOREO2_M4();
Serial.println("ESPERANDO SENSOR");
a_state_step=state_step;
}
}
//************************************
if(state_step==1){
if(a_state_step!=state_step){
MONITOREO2_M4();
Serial.println("INICIA PASO");
a_state_step=state_step;
}
rutina();
}
}
//****************************************
if(v_menu==2 && state_mov_m==2){
sensores();
}
//
}
//******************************
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;
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==HIGH){
state_mov_m=1;
lcd.setCursor(6,3);
lcd.print(" DO ");
}
break;
case 6:
dato_s=digitalRead(GIRO_V_DOWN);
if(dato_s==HIGH){
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_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_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;
}
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;
}
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=10;
}
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>12){
v_c_m3x2=1;
}
CURSOR_M3_X();
s_timers();
Serial.println("tt");
}
CURSOR_M3_X();
}
}
//*************************************
void BACK(){
if(v_menu==2){
v_menu=1;
lcd.clear();
MENU_1();
cursor_m_1();
}
if(v_menu==3){
v_menu=1;
lcd.clear();
MENU_1();
cursor_m_1();
}
if(v_menu==4){
v_menu=3;
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;
lcd.clear();
MENU_2();
}
if(v_c==2){
v_menu=3;
lcd.clear();
MENU_3();
CURSOR_M3_Y();
CURSOR_M3_X();
s_timers();
}
}
if(v_menu==3){
if(v_c_m3y==3){
v_menu=4;
lcd.clear();
MENU_4();
set_home();
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==1){
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");
}
}
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==HIGH){
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:
P_OPEN();
state_step=3;
break;
case 10:
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 11:
P_GIRO_N();
state_step=3;
break;
case 12:
if(state_step==1){
P_SWING_N();
state_step=2;
}
if(state_step==2){
dato_s=digitalRead(GIRO_V_DOWN);
if(dato_s==HIGH){
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){
P_ABAJO();
state_step==2;
}
if(state_step==2){
dato_s=digitalRead(ABAJO);
if(dato_s==HIGH){
state_step=3;
}
}
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;
}
break;
case 4:
if(state_step==1){
P_ARRIBA();
state_step==2;
}
if(state_step==2){
dato_s=digitalRead(ARRIBA);
if(dato_s==HIGH){
state_step=3;
}
}
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;
}
}
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==HIGH){
state_step=3;
}
}
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;
}
}
break;
case 8:
P_GIRO_P();
state_step=3;
break;
case 9:
P_OPEN();
state_step=3;
break;
case 10:
if(state_step==1){
P_ARRIBA();
state_step==2;
}
if(state_step==2){
dato_s=digitalRead(ARRIBA);
if(dato_s==HIGH){
state_step=3;
}
}
break;
case 11:
P_GIRO_N();
state_step=3;
break;
case 12:
if(state_step==1){
P_SWING_N();
state_step==2;
}
if(state_step==2){
dato_s=digitalRead(GIRO_V_DOWN);
if(dato_s==HIGH){
state_step=3;
}
}
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("Set_N_PROG");
}
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){
case 1:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
lcd.print(v_timer_12_l);
lcd.setCursor(14, 2);
lcd.print(v_timer_12_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){
case 1:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
lcd.print(v_timer_12_u);
lcd.setCursor(14, 2);
lcd.print(v_timer_12_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;
}
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);
}
//*****************************************
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:
if(state_mov_m==1){
lcd.setCursor(6,3);
lcd.print(" DOING ");
P_ABAJO();
state_mov_m=2;
}
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:
if(state_mov_m==1){
lcd.setCursor(6,3);
lcd.print(" DOING ");
P_SWING_P();
state_mov_m=2;
}
break;
case 6:
if(state_mov_m==1){
lcd.setCursor(6,3);
lcd.print(" DOING ");
P_SWING_N();
state_mov_m=2;
}
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 =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;
v_c_m3x2 ++;
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;
v_c_m3x2 ++;
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;
v_c_m3x2 ++;
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;
v_c_m3x2 ++;
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;
v_c_m3x2 ++;
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;
v_c_m3x2 ++;
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;
v_c_m3x2 ++;
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;
v_c_m3x2 ++;
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;
v_c_m3x2 ++;
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;
v_c_m3x2 ++;
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;
v_c_m3x2 ++;
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;
v_c_m3x2 =1;
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;
}
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;
}
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(EV_ABAJO, LOW);
digitalWrite(EV_ARRIBA, HIGH);
}
//*************************************
void P_ABAJO(){
Serial.println("ABAJO");
digitalWrite(EV_ABAJO, HIGH);
digitalWrite(EV_ARRIBA, LOW);
}
//***************************
void P_IZQUIERDA(){
Serial.println("IZQUIERDA");
digitalWrite(EV_IZQUIERDA, HIGH);
digitalWrite(EV_DERECHA, LOW);
}
//**********************************
void P_DERECHA(){
Serial.println("DERECHA");
digitalWrite(EV_IZQUIERDA, LOW);
digitalWrite(EV_DERECHA, HIGH);
}
//******************************
void P_SWING_P(){
Serial.println("SWING_P");
digitalWrite(EV_GIRO_P_I, HIGH);
digitalWrite(EV_GIRO_P_D, LOW);
}
//**********************************
void P_SWING_N(){
Serial.println("SWING_N");
digitalWrite(EV_GIRO_P_D, HIGH);
digitalWrite(EV_GIRO_P_I, LOW);
}
//********************************
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, LOW);
}
void P_CLOSE(){
Serial.println("CLOSE");
digitalWrite(GRIPER, HIGH);
}