ARDUINO BASADO EN GRAFCET APLICADO AL CONTROL DE CIRCUITOS ELECTRONEUMÁTICOS CON 2 CILINDROS https://youtube.com/playlist?list=PLHTERkK4EZJpJEcByUotJ5YOIiC -Vmimt
Hola jóvenes, en estos enlaces del BLOGG y DEL CANAL, pueden encontrar recursos sobre fundamentos de ingeniería mecatrónica como : SOLIDWORKS, PROGRAMACIÓN DE ARDUINO, HIDRÁULICA – LENGUAJE LADDER , LENGUAJE GRAFCET ,ELECTROHIDRÁULICA , NEUMÁTICA, ELECTRONEUMÁTICA, PLC M221, PLC SIEMEMS S7 1200, PLC SIEMENS S7 300 , FLUID SIM, FACTORY IO, CONTROL, entre otros https://www.mecatrónica.com.co/ https://mecatronicaitsa.blogspot.com/ http://www.youtube.com/c/JovannyDu que?sub_confirmation=1_ Si te ha sido útil, regálame un Like, comenta y suscríbete :) (っ◕‿◕)
SISTEMAS DE AUTOMATIZACIÓN SECUENCIALES IMPLEMENTADOS EN GRAFCET SOBRE ARDUINO
ARDUINO Acceso a PDF
https://play.google.com/books/s/370286768613/ebooks https://mega.nz/folder/a9thTIjA#bSAwbpbG3Z34DW3jJ_bMQg
ARDUINO Aprende a programar Arduino desde una solucio n LADDER o GRAFCET con metodologí as confiables https://youtube.com/playlist?list=PLHTERkK4EZJr7zDQNKjjEyxhErjllCCUy
GRAFCET CON ARDUINO Programa en Arduino sistemas secuenciales simulados en GRAFCET , con un metodo confiable 100% https://youtube.com/playlist?list=PLHTERkK4EZJpJEcByUotJ5YOIiC-Vmimt
http://www.youtube.com/c/JovannyDuque?sub_confirmation=1_ https://mecatronica-itsa.blogspot.com/ ACTIVIDAD FORMATIVA 2DO PARCIAL - CX3 RESET CONTROL DE CIRCUITOS ELECTRONEUMÁTICOS / ELECTROHIDRÁULICOS (% del Corte FORMATIVA
)
https://youtube.com/playlist?list=PLHTERkK4EZJoUmPtqY8kKCboLIrGN8tYc https://youtube.com/playlist?list=PLHTERkK4EZJpJEcByUotJ5YOIiC-Vmimt
NOMBRE DE LOS ESTUDIANTES:___________________________________________________________________________________________________________________________________________________
Planteamiento de la situación: Disene el Circuito de control eléctrico para gobernar los cilindros A y B segun el diagrama Espacio- Fase (CASO ASIGNADO), tal que al dar la senal de inicio (CX3) , realice solo tres (3) ciclos completos con una temporizacion entre cada ciclo, una vez terminado, solo se podra reiniciar, reseteando el contador de circuito con la senal (RESET) A TENER EN CUENTA = Todos los proyectos usaran las mismas electrovalvulas, al finalizar los 3 ciclos todos los reles deben estar desactivados, todos los proyectos usaran los mismos pines de entradas y salidas. Diagrama Espacio - Fase
2
http://www.youtube.com/c/JovannyDuque?sub_confirmation=1_ https://mecatronica-itsa.blogspot.com/ Circuito Electroneumático Electrohidráulico
o
GRAFCET
3
Circuito
http://www.youtube.com/c/JovannyDuque?sub_confirmation=1_ https://mecatronica-itsa.blogspot.com/
4
http://www.youtube.com/c/JovannyDuque?sub_confirmation=1_ https://mecatronica-itsa.blogspot.com/
// CODIGO ARDUINO DEL CASO EJEMPLO //TRATAMIENTO //
OK
CX3
R
PREVIO
I O
ITSAINO
// ETAPAS GRAFCET PRINCIPAL int E1; int E2; int E3; int E4; int E5; int E6; int E7; int E8; int E9; int E16; int E19; int E24;
// DECLARACION DE LOS PINES DE ENTRADAS int A_0 = 10; int A_1 = 11; int B_0 = 12; int B_1 = 13; int CX3 = 8; int R_ESET = 9;
// DECLARACION DE LOS PINES DE LAS SALIDAS int Y1 = 2; int Y2 = 3; int Y3 = 4;
5
http://www.youtube.com/c/JovannyDuque?sub_confirmation=1_ https://mecatronica-itsa.blogspot.com/ // Variables
asociadas a
int T1 = 0;
// Bit
int tiempo1 = 2000;
"temp1".
asociado
//
al
temporizador
Temporización
de 2
1
segundos
int activado1 = 0; // Al principio no ha sido activado. long inicio1, final1, actual1;
// Variables
asociadas a
int T2 = 0;
// Bit
int tiempo2 = 2000;
"temp2".
asociado
//
al
temporizador
Temporización
de 2
2
segundos
int activado2 = 0; // Al principio no ha sido activado. long inicio2, final2, actual2;
// Variables
asociadas a
int CONTADOR = 0; // const int
CONTADOR
INICIALIZACIÒN DEL CONTADOR
PSCONTADOR = 3;
int ESTADOPREVIO_E3 = 0;
// PRESELEC DEL CONTADOR = # DE CICLOS //
Estado previo de la
void setup() {
Serial.begin(9600);
//Declaración de puertos digitales
de
ENTRADAS
pinMode(A_0, INPUT); pinMode(A_1, INPUT); pinMode(B_0, INPUT); pinMode(B_1, INPUT); pinMode(CX3, INPUT); pinMode(R_ESET, INPUT);
6
etapa
que
incrementa
el
contador
http://www.youtube.com/c/JovannyDuque?sub_confirmation=1_ https://mecatronica-itsa.blogspot.com/
// //Declaración de puertos digitales
de SALIDAS
pinMode(Y1, OUTPUT); pinMode(Y2, OUTPUT); pinMode(Y3, OUTPUT);
//ALGUNOS DISPOSITIVOS TRAEN UNA CONFIGURACION POR ESO ES NECESARIO COLOCAR LOS PUERTOS EN 0V digitalWrite(Y1, LOW); digitalWrite(Y2, LOW); digitalWrite(Y3, LOW);
// ETAPAS DEL GRAFCET PRINCIPAL (ESTADO INICIAL) E1 = HIGH; E2 = LOW; E3 = LOW; E4 = LOW; E5 = LOW; E6 = LOW; E7 = LOW; E8 = LOW; E9 = LOW; E16 = LOW; E19 = LOW; E24 = LOW; }
void loop ( )
{
7
http://www.youtube.com/c/JovannyDuque?sub_confirmation=1_ https://mecatronica-itsa.blogspot.com/ //TRATAMIENTO SECUENCIAL //Capturar valores de puertos digitales de entrada
CX3 = digitalRead(8); R_ESET = digitalRead(9); A_0 = digitalRead(10); A_1 = digitalRead(11); B_0 = digitalRead(12); B_1 = digitalRead(13);
// ECUACIONES GRAFCET PRINCIPAL // Ecuaciones booleanas E1 = ((E1 | (E24 & E24)
derivadas
de
la lógica binodal para cada ETAPA
) & (~E2));
E2 = ((E2 | (E1 & (A_0 & B_0 & CX3) )|(E16 & T2)) & (~E3)); E3 = ((E3 | (E2 & A_1)) & (~E4) ); E4 = ((E4 | (E3 & B_1)) & (~E5) ); E5 = ((E5 | (E4 & T1)) & (~E6) );
E6 = ((E6 | (E5 & B_0)) & (~E7) );
E7 = ((E7 | (E6 & A_0)) & (~E8) );
E8 = ((E8 | (E7 & A_1)) & (~E9) );
E9 = ((E9 | (E8 & A_0))
E16 = ((E16 | (E9
& (~E16) & (~E19)
);
& (CONTADOR < PSCONTADOR)) ) & (~E2));
8
http://www.youtube.com/c/JovannyDuque?sub_confirmation=1_ https://mecatronica-itsa.blogspot.com/ E19 = ((E19 | (E9
& (CONTADOR >= PSCONTADOR)) ) & (~E24));
E24 = ( (E24 | (E19 &
R_ESET )) & (~E1) )
;
//TRATAMIENTO POSTERIOR // ACCIONES GRAFCET PRINCIPAL if (E1 == HIGH) { Serial.println("Etapa 1"); CONTADOR = 0; Serial.print("VALOR DEL CONTADOR :
");
Serial.println(CONTADOR); }
if (E2 == HIGH) { digitalWrite(Y1, HIGH); Serial.println("Etapa2");
}
if (E3 == HIGH) { digitalWrite(Y1, LOW); digitalWrite(Y3, HIGH); Serial.println("Etapa3 ");
}
if ((E3) != ESTADOPREVIO_E3) { if (E3 == HIGH) { CONTADOR++; Serial.print("CONTADOR
CONTADOR
CONTADOR :
9
");
http://www.youtube.com/c/JovannyDuque?sub_confirmation=1_ https://mecatronica-itsa.blogspot.com/ Serial.println(CONTADOR); } ESTADOPREVIO_E3 = E3; }
if (E4 == HIGH) { Serial.println("Etapa4"); activetemp1(); else {
}
desactivetemp1();
}
if (E5 == HIGH) { digitalWrite(Y3, LOW); Serial.println("Etapa5"); }
if (E6 == HIGH) { Serial.println("Etapa6"); digitalWrite(Y2, HIGH);
}
if (E7 == HIGH) { digitalWrite(Y2, LOW);
digitalWrite(Y1, HIGH);
Serial.println("Etapa7");
}
if (E8 == HIGH) { Serial.println("Etapa 8"); digitalWrite(Y1, LOW); digitalWrite(Y2, HIGH);
}
if (E9 == HIGH) {
10
http://www.youtube.com/c/JovannyDuque?sub_confirmation=1_ https://mecatronica-itsa.blogspot.com/ Serial.println("Etapa 9"); digitalWrite(Y2, LOW);
}
if (E16 == HIGH) { Serial.println("Etapa16"); activetemp2(); else {
}
desactivetemp2();
}
if (E19 == HIGH) { Serial.println("Etapa19");
}
if (E24 == HIGH) { CONTADOR = 0; Serial.println("Etapa 24 ");
}
delay(200);
//
//
del
Fin
Retardo void
}
creado
para
visualizar
Loop
//SUBRUTINA TEMPORIZADOR 1 void activetemp1() {
if (activado1 == 0) {
// Si ha pulsado HIGH y no ha sido activado=0 antes...
activado1 = 1;
// marca activado=1 y guarda el tiempo de inicio.
inicio1 = millis(); final1 = inicio1 + tiempo1; segundos.
actual1 = millis();
}
// Tiempo final es inicio mas tiempo1
// Consulta el tiempo actual.
11
http://www.youtube.com/c/JovannyDuque?sub_confirmation=1_ https://mecatronica-itsa.blogspot.com/ if (activado1 == 1 && (actual1 > final1) ) { es mayor que el final.... T1 = HIGH;
else {
// Si fue activado=1 y el tiempo actual
}
T1 = LOW;
}
} void desactivetemp1() { T1 = LOW; activado1 = 0;// haz un parpadeo. inicio1 = 0;
final1 = 0;
actual1 = 0;
}
//SUBRUTINA TEMPORIZADOR 2 void activetemp2() {
if (activado2 == 0) {
// Si ha pulsado HIGH y no ha sido activado=0 antes...
activado2 = 1;
// marca activado=1 y guarda el tiempo de inicio.
inicio2 = millis(); final2 = inicio2 + tiempo2; } segundos.
actual2 = millis();
// Tiempo final es inicio mas tiempo2
// Consulta el tiempo actual.
if (activado2 == 1 && (actual2 > final2) ) { es mayor que el final.... T2 = HIGH;
else {
}
T2 = LOW;
}
}
12
// Si fue activado=1 y el tiempo actual
http://www.youtube.com/c/JovannyDuque?sub_confirmation=1_ https://mecatronica-itsa.blogspot.com/ void desactivetemp2() { T2 = LOW; activado2 = 0;// haz un parpadeo. inicio2 = 0; final2 = 0; actual2 = 0; }
PINES
DE ENTRADA EN LA
Y
SALIDA ARDUINO NANO
ESTACIÓN
13
“ITSAINO”
http://www.youtube.com/c/JovannyDuque?sub_confirmation=1_ https://mecatronica-itsa.blogspot.com/ Casos para realizar con circuitos Electroneumáticos Desarrolle el proyecto con el uso del software Fluid Sim P.
CASO 1
CASO 2
CASO 9
Diagrama Espacio -Fase
Diagrama Espacio - Fase
CASO 10
Diagrama Espacio - Fase
CASO 3 Diagrama Espacio - Fase
CASO 11
14
Diagrama
Espacio - Fase
Diagrama Espacio - Fase
http://www.youtube.com/c/JovannyDuque?sub_confirmation=1_ https://mecatronica-itsa.blogspot.com/ CASO 12
Diagrama Espacio - Fase
CASO 5 Diagrama Espacio – Fase
CASO 13
Diagrama Espacio - Fase
CASO 6 Diagrama Espacio - Fase
CASO 14 Diagrama Espacio - Fase
CASO 4 Diagrama Espacio - Fase
15
http://www.youtube.com/c/JovannyDuque?sub_confirmation=1_ CASO 7 Diagrama Espacio – Fase CASO 15 Diagrama Espacio - Fase https://mecatronica-itsa.blogspot.com/
CASO 8
Diagrama Espacio - Fase
CASO 16
Diagrama Espacio - Fase
Jovenes, este material ha sido elaborado con mucho gusto. Si te es util Rega lame un Like, comenta y suscríbete :) (っ◕‿◕) Te invito al CANAL DE YOUTUBE MEKATRONICA para conocer ma s
http://www.youtube.com/c/JovannyDuque?sub _confirmation=1_ Amigos/as en el BLOGG MEKATRONICA J DUKE podras encontrar cantidad de recursos sobre SOLIDWORKS, HIDRAULICA ELECTROHIDRAULICA , NEUMATICA, ELECTRONEUMATICA, CONTROL, PLC M221, PLC SIEMEMS S7 1200, PLC SIEMENS S7 300 , FLUID SIM FACTORY IO, entre otros
https://mecatronica-itsa.blogspot.com/ 16