programación de arduino uno r3
arduino,
arduino ladder,
arduino uno r3
arduino 1
arduino tutorial,
como programar arduino,
proyectos arduino,
arduino ladder,
programación de arduino,
arduino project,
arduino uno
arduino tutorial,
como programar arduino,
proyectos arduino,
arduino plc,
introdución a arduino,
arduino desde cero,
ARDUINO GRAFCET - A+TEMPA- CONDICIONES OK FLUIDSIM P ARDUINO GRAFCET.pdf
1. Elaborado por el Ing. Jovanny Duque Docente de la Institución Universitaria - ITSA Pág. 1
CICLO DE TRABAJO (A+/TEMPORIZACIÓN/ A-) CON POSIBILIDAD DE
ELEGIR ENTRE CU – CC O CX3 CON TEMP. ENTRE CICLOS
https://youtube.com/playlist?list=PLHTERkK4EZJoUmPtqY8kKCboLIrGN8tYc
GRAFCET CON ARDUINO Programa en Arduino sistemas secuenciales simulados en GRAFCET , con un
método confiable 100%
https://youtube.com/playlist?list=PLHTERkK4EZJpJEcByUotJ5YOIiC-Vmimt
ESPECIFICACIONES DEL CONTROL
1. El sistema de control debe permitir la selección entre Ciclo Único (CU), Ciclo Continuo (CC) o Ciclo X3
(CX3).
2. El CC o CX3 deben quedar interrumpido (termina el ciclo actual y se detiene en posición inicial) por la
acción de conmutar a CU (solicitud de parada a fin de Ciclo) o mediante el pulsador de Paro de
Emergencia (PE) o cuando no hay más PIEZA (interruptor abierto).
3. El dispositivo se explora a través de un detector de PIEZA (interruptor cerrado), sin la presencia de
PIEZA, no puede iniciar ningún ciclo.
4. Cuando se terminan las piezas en el depósito de gravedad y está en modo CC o Cx3, debe terminar el
ciclo en el que está y al terminarlo, ha de pararse la instalación en su posición base (inicial).
5. Después de haber realizado los (3) tres ciclos del modo CX3 sólo puede iniciarse el funcionamiento en
cualquier otro ciclo después de pulsar RESET. No debe haber ningún movimiento de a máquina al pulsar
RESET, para iniciar cualquier ciclo deben usarse cualquiera de los pulsadores CU, CC o CX3.
6. Una vez accionado el pulsador de Paro de Emergencia, deben retornar inmediatamente el cilindro.
Debiendo quedar al final retraído en su posición inicial.
7. En el modo CC o en CX3 el sistema debe asegurar una temporización entre ciclos.
2. Elaborado por el Ing. Jovanny Duque Docente de la Institución Universitaria - ITSA Pág. 2
GRAFCET EQUIVALENTE PARA ARDUINO
3. Elaborado por el Ing. Jovanny Duque Docente de la Institución Universitaria - ITSA Pág. 3
ESQUEMA DE CONEXIÓN DE E / S SIMULACIÓN FLUID SIM P 4.2
4. Elaborado por el Ing. Jovanny Duque Docente de la Institución Universitaria - ITSA Pág. 4
Actividad: Observa el video “1 GRAFCET FLUIDIM P 4.2” en el que se describe un proyecto
sencillo programado con GRAFCET usando el software FLUID SIMP 4.2 de FESTO, en el enlace
https://www.youtube.com/watch?v=ocYJqCrrSlk&t=11s
Actividad: Observa el video “2 GRAFCET FLUIDIM P 4.2” en el que se describe en detalle, como usar el
editor de GRAFCET del software FLUID SIMP 4.2 de FESTO para modelar el sistema, en el enlace
https://www.youtube.com/watch?v=KcgWf2-GAsc
ESQUEMA DE CONEXIÓN DE E / S ARDUINO UNO
5. Elaborado por el Ing. Jovanny Duque Docente de la Institución Universitaria - ITSA Pág. 5
CÓDIGO EQUIVALENTE PARA ARDUINO
//TRATAMIENTO PREVIO
// ETAPAS GRAFCET PRINCIPAL
int E1; int E2; int E3; int E4; int E5; int E10;
int E11; int E14; int E21;
// ETAPAS GRAFCET CICLO CONTINUO
int E6; int E7; int E61;
// ETAPAS GRAFCET CICLO X 3
int E8; int E9; int E81;
// ETAPAS GRAFCET P EMERGENCIA
int E12; int E13; int E120;
// DECLARACION DE LOS PINES DE
ENTRADAS
int PIEZA = 2; int PE = 7; int CU = 3;
int CC = 4; int A_0 = 9; int A_1 = 10;
int CX3 = 13; int RESET = 8;
// DECLARACION DE LOS PINES DE LAS
SALIDAS
int Y1 = 5; int Y2 = 6;
// DECLARACION E INICIALIZACION DE LAS
MEMORIAS
int MCC = LOW; int MCX3 = LOW;
int FIN_CX3 = LOW; int EMERG = LOW;
// Variables asociadas a "temp1".
int T1;
int activado1 = 0; // Al principio no ha sido
activado.
long inicio1, final1, actual1;
// Variables asociadas a “temp2".
int T2;
int activado2 = 0; // Al principio no ha sido
activado.
long inicio2, final2, actual2;
// Variables asociadas a "temp3".
int T3;
int activado3 = 0; // Al principio no ha sido
activado.
long inicio3, final3, actual3;
// Variables asociadas a CONTADOR
int CONTADOR = 0; // INICIALIZACIÒN DEL
CONTADOR
const int PSCONTADOR = 3; // PRESELEC
DEL CONTADOR = # DE CICLOS
int ESTADOPREVIO_E3 = 0;
void setup () {
Serial.begin(9600);
//entradas//
pinMode (PIEZA, INPUT);
pinMode (PE, INPUT);
pinMode (CU, INPUT);
pinMode (CC, INPUT);
pinMode (A_0, INPUT);
pinMode (A_1, INPUT);
pinMode (CX3, INPUT);
pinMode (RESET, INPUT);
7. Elaborado por el Ing. Jovanny Duque Docente de la Institución Universitaria - ITSA Pág. 7
// ECUACIONES GRAFCET P EMERGENCIA
E12 = ((E12 | (E120 & E120)) & (~E13));
E13 = ((E13 | (E12 & PE)) & (~E120));
E120 = ((E120 | (E13 & A_0)) & (~E12));
//TRATAMIENTO POSTERIOR
if (E1 == HIGH) {
Serial.println("Etapa1");
Serial.print("VALOR DEL CONTADOR: ");
Serial.println(CONTADOR);}
if (E2 == HIGH) {
digitalWrite (Y1, HIGH);
Serial.println("Etapa2");}
else {digitalWrite (Y1, LOW);}
if (E3 == HIGH) {
Serial.println("Etapa3 33333333");
activetemp1();}
else {desactivetemp1();}
if ((E3 & MCX3) != ESTADOPREVIO_E3) {
if (E3 == HIGH)
{ CONTADOR++;
Serial.print("CONTADOR : " );
Serial.println(CONTADOR);
}
ESTADOPREVIO_E3 = E3;
}if (E4 == HIGH) {digitalWrite (Y2, HIGH);
Serial.println("Etapa4");}
else {digitalWrite (Y2, LOW);}
if (E5 == HIGH) {
Serial.println("Etapa5");}
if (E6 == HIGH) {
Serial.println("Etapa6");}
if (E7 == HIGH) {MCC = HIGH;
Serial.println("Etapa7 MCC");}
else {MCC = LOW;}
if (E8 == HIGH) {Serial.println("Etapa 8 ");}
if (E9 == HIGH) {MCX3 = HIGH;
Serial.println("Etapa9 MCX3");}
else {MCX3 = LOW;}
if (E10 == HIGH) {Serial.println("Etapa10");
activetemp2();}
else {desactivetemp2();}
if (E11 == HIGH) {Serial.println("Etapa11 ");
activetemp3();}
else {desactivetemp3();}
if (E12 == HIGH) {Serial.println("Etapa12");}
if (E13 == HIGH) {digitalWrite (Y1, LOW);
digitalWrite (Y2, HIGH);
EMERG = HIGH;
Serial.println("Etapa13 EMERG ");}
else {EMERG = LOW;}
if (E120 == HIGH) {
Serial.println("Etapa120 ");
digitalWrite (Y2, LOW);}
8. Elaborado por el Ing. Jovanny Duque Docente de la Institución Universitaria - ITSA Pág. 8
if (E61 == HIGH) {
Serial.println("Etapa61");}
if (E81 == HIGH) {Serial.println("Etapa81");}
if (E14 == HIGH) {FIN_CX3 = HIGH;
CONTADOR = 0;
Serial.println("Etapa 14 ");}
else {FIN_CX3 = LOW;}
}
//SUBRUTINA TEMPORIZADOR 1
void activetemp1() {
if (E3 == HIGH && 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 + 1000; //
Tiempo final es inicio más 8 segundos.
}
actual1 = millis(); // Consulta
el tiempo actual.
if (activado1 == 1 && (actual1 > final1) ) { //
Si fue activado=1 y el tiempo actual es mayor
que el final....
T1 = HIGH;
}
else {
T1 = LOW;
}
}
void desactivetemp1() {
T1 = LOW;
activado1 = 0;// haz un parpadeo.
inicio1 = 0;
final1 = 0;
actual1 = 0;
}
//SUBRUTINA TEMPORIZADOR 2
void activetemp2() {
if (E10 == HIGH && 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 + 2000; // Tiempo final es inicio
mas 2 segundos.
}
actual2 = millis(); // Consulta
el tiempo actual.
if (activado2 == 1 && (actual2 > final2)) {// Si
fue activado=1 y el tiempo actual es mayor que
el final....
T2 = HIGH;}
else {T2 = LOW;}
}
void desactivetemp2() {
T2 = LOW;
activado2 = 0;// haz un parpadeo.
inicio2 = 0;
final2 = 0;
9. Elaborado por el Ing. Jovanny Duque Docente de la Institución Universitaria - ITSA Pág. 9
actual2 = 0;
}
//SUBRUTINA TEMPORIZADOR 3
void activetemp3() {
if (E11 == HIGH && activado3 == 0) {// Si ha
pulsado HIGH y no ha sido activado=0 antes...
activado3 = 1; // marca activado=1 y guarda el
tiempo de inicio.
inicio3 = millis();
final3 = inicio3 + 2000; // Tiempo final es inicio
mas 2 segundos.
}
actual3 = millis (); // Consulta el tiempo
actual.
if (activado3 == 1 && (actual3 > final3)) {// Si
fue activado=1 y el tiempo actual es mayor que
el final....
T3 = HIGH;}
else {T3 = LOW;}
}
void desactivetemp3() {
T3 = LOW;
activado3 = 0;// haz un parpadeo.
inicio3 = 0;
final3 = 0;
actual3 = 0;
}
11. Elaborado por el Ing. Jovanny Duque Docente de la Institución Universitaria - ITSA Pág. 11
Jóvenes, este material ha sido elaborado con mucho gusto.
Si te es útil Regálame un Like, comenta y suscríbete :) (っ◕‿◕)
Te invito al CANAL DE YOUTUBE MEKATRONICA
para conocer más
http://www.youtube.com/c/JovannyDuque?sub_confirmation=1_
__________________________________
y Amigos/as en el BLOGG MEKATRONICA podrás encontrar cantidad de recursos
sobre SOLIDWORKS, HIDRÁULICA - ELECTROHIDRÁULICA , NEUMÁTICA, ELECTRONEUMÁTICA,
CONTROL, PLC M221, PLC SIEMEMS S7 1200, PLC SIEMENS S7 300 , FLUID SIM FACTORY
IO, entre otros
https://mecatronica-itsa.blogspot.com/
12. Elaborado por el Ing. Jovanny Duque Docente de la Institución Universitaria - ITSA Pág. 12