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,
1. 1
// Elaborado por Ing. Jovanny R Duque
DISPOSITIVO PARA REMACHAR ELECTRONEUMÁTICO
(A+/B+/TEMP/B-/A-/A+/A-)
GRAFCET CON FLUIDSIM
Usa el software Fluid Sim P para simular GRAFCET aplicados a sistemas electroneumáticos, desde lo más
sencillo a lo más complejo.
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
DIAGRAMA ESPACIO/FASE
ESPECIFICACIONES DEL CONTROL
1. El sistema de control debe permitir la selección entre Ciclo Único (CU), Ciclo Continuo (CC) o
Ciclo X3.
2. 2
// Elaborado por Ing. Jovanny R Duque
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 todos
los cilindros a la posición de partida, pero el sistema debe asegurar que el cilindro A regrese
solo cuando el cilindro B lo haya hecho completamente. Debiendo quedar al final los dos
cilindros retraídos en su posición inicial. Es decir primero verifica el retorno del cilindro B y
después el retorno del cilindro A.
7. En el modo CC o en CX3 el sistema debe asegurar una temporización entre ciclos.
SUBIR ACTIVIDAD Formativa Segundo Parcial
GRAFCET ARDUINO CU CC CX3 RESET PE 2 CILINDROS
Jovenes, reciban un cordial saludo, se dará, las indicaciones para realizar esta actividad:
La actividad es en grupos de 2 estudiantes
Todos usaran las mismas entradas , salidas, válvulas. (Igual conexión de entrada y salidas para
todos)
Lo único que cambia es el Diagrama Espacio Fase para cada grupo (Ver lista al final)
Usen temporizaciones de 2 segundos.
Pruébenlo en Software TINKERKAD o en Protoboar antes de enviarlo.
El proyecto se probará en un Arduino Nano
Cada uno debe cargar la carpeta comprimida que contiene el código de Arduino equivalente al
GRAFCET CU CC CX3 RESET PE 2 CILINDROS y el circuito de Fluid SimP.
El nombre de la carpeta comprimida será CASO X APELLIDO EST1 APELLIDO EST2
La nota de 5.0 será para quien haya enviado el proyecto y funcione a la primera vez.
El proyecto con todas las condiciones corresponde al 40% del Segundo Parcial
Solo se calificarán los proyectos enviados al Aula Virtual.
Pruebas la próxima semana, y calificación final el día del parcial dentro de 15 Días
3. 3
// Elaborado por Ing. Jovanny R Duque
COM1
PIN 7
PIN 6
PIN 2
PIN 3
Y1
Y2
A1 A2
A1 A2
3
4
PIN 4
Y3
A1 A2
PIN 10
4
1
PIN 11
A1
A0
4
1
1 4
B1
B0
4
1
1 4
PIN 12
PIN 13
C U
CC
PE
1
PIN A3
PIN A2
PIN 8
C X 3
RESET
PIN 9
Exitos
GRAFCET FLUIDIM P 4.2.avI https://youtu.be/ocYJqCrrSlk
GRAFCET FLUIDIM P 4.2.avi https://youtu.be/KcgWf2-GAsc
CIRCUITO ELECTRONEUMÁTICO SIMULADO CON TINKERCAD https://youtu.be/YSbmOvADG44
CONEXIÓN DE ENTRADAS Y SALIDAS ARDUINO NANO
ENTRADAS
SALIDAS
+24 V
0V
+24 V 0V +24 V
0V
COM
C
O
N
E
X
I
Ó
N
D
E
E
N
T
R
A
D
A
S
Y
S
A
L
I
D
A
S
ARDUINO
UNO
ALIMENTACIÓN DEL ITSA-INO
D
I
S
P
O
S
I
T
I
V
O
P
A
R
A
R
E
M
A
C
H
A
R
Interruptor
PIEZA
7. 7
// Elaborado por Ing. Jovanny R Duque
CÓDIGO DE ARDUINO CASO EJEMPLO - DISPOSITIVO
PARA REMACHAR ELECTRONEUMÁTICO
(A+/B+/TEMP/B-/A-/A+/A-)
// OK CU CC Y CX3 PE I O ITSAINO
// TRATAMIENTO PREVIO
// ETAPAS GRAFCET PRINCIPAL
int E1;
int E2;
int E3;
int E4;
int E5;
int E6;
int E7;
int E8;
int E9;
int E15;
int E16;
int E19;
int E21;
int E24;
// ETAPAS GRAFCET CICLO CONTINUO
int E11;
int E12;
int E61;
// ETAPAS GRAFCET CICLO X 3
int E13;
int E14;
int E81;
// ETAPAS GRAFCET P EMERGENCIA
int E17;
int E18;
int E120;
int E121;
// DECLARACION DE LOS PINES DE ENTRADAS
int PIEZA = A2;
int PE = A3;
int CU = 6;
int CC = 7;
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;
// DECLARACION E INICIALIZACION DE LAS MEMORIAS
int MCC = 0;
8. 8
// Elaborado por Ing. Jovanny R Duque
int MCX3 = 0;
int FIN_CX3 = 0;
int EMERG = 0;
// Variables asociadas a "temp1".
int T1 = 0; // Bit asociado al temporizador 1
int tiempo1 = 2000; // Temporización de 2 segundos
int activado1 = 0; // Al principio no ha sido activado.
long inicio1, final1, actual1;
// Variables asociadas a "temp2".
int T2 = 0; // Bit asociado al temporizador 2
int tiempo2 = 2000; // Temporización de 2 segundos
int activado2 = 0; // Al principio no ha sido activado.
long inicio2, final2, actual2;
// Variables asociadas a "temp3".
int T3 = 0; // Bit asociado al temporizador 3
int tiempo3 = 2000; // Temporización de 2 segundos
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; // Estado previo de la etapa que incrementa el contador
void setup() {
Serial.begin(9600);
//Declaración de puertos digitales de ENTRADAS
pinMode(PIEZA, INPUT);
pinMode(PE, INPUT);
pinMode(CU, INPUT);
pinMode(CC, INPUT);
pinMode(A_0, INPUT);
pinMode(A_1, INPUT);
pinMode(B_0, INPUT);
pinMode(B_1, INPUT);
pinMode(CX3, INPUT);
pinMode(R_ESET, INPUT);
// //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, 0);
digitalWrite(Y2, 0);
digitalWrite(Y3, 0);
// ETAPAS DEL GRAFCET PRINCIPAL (ESTADO INICIAL)
E1 = 1;
E2 = 0;
E3 = 0;
E4 = 0;
12. 12
// Elaborado por Ing. Jovanny R Duque
if (E120 == 1) {
Serial.println("Etapa120 EMERG Etapa120 EMERG" );
digitalWrite(Y1, 0); digitalWrite(Y2, 1); EMERG = 1; }
else { EMERG = 0; }
if (E121 == 1) {
Serial.println("Etapa121 EMERG " );
digitalWrite(Y2, 0); EMERG = 1; }
else { EMERG = 0; }
delay(300); // Retardo creado para visualizar
} // Fin del void 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; // Tiempo final es inicio más tiempo1
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 = 1; }
else { T1 = 0; }
}
void desactivetemp1() {
T1 = 0;
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; // Tiempo final es inicio más tiempo2
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 = 1; }
else { T2 = 0; }
}
13. 13
// Elaborado por Ing. Jovanny R Duque
void desactivetemp2() {
T2 = 0;
activado2 = 0;// haz un parpadeo.
inicio2 = 0;
final2 = 0;
actual2 = 0;
}
//SUBRUTINA TEMPORIZADOR 3
void activetemp3() {
if (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 + tiempo3; // Tiempo final es inicio más tiempo3
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 = 1; }
else { T3 = 0; }
}
void desactivetemp3() {
T3 = 0;
activado3 = 0;// haz un parpadeo.
inicio3 = 0;
final3 = 0;
actual3 = 0;
}
14. 14
// Elaborado por Ing. Jovanny R Duque
Casos para realizar con circuitos Electroneumáticos
Desarrolle el proyecto con el uso del software Fluid Sim P.
CASO 1 Diagrama Espacio -
Fase
CASO 9 Diagrama Espacio - Fase
CASO 2 Diagrama Espacio - Fase CASO 10 Diagrama Espacio - Fase
CASO 3 Diagrama Espacio - Fase CASO 11 Diagrama Espacio - Fase
CASO 4 Diagrama Espacio - Fase CASO 12 Diagrama Espacio - Fase
15. 15
// Elaborado por Ing. Jovanny R Duque
CASO 5 Diagrama Espacio – Fase CASO 13 Diagrama Espacio - Fase
CASO 6 Diagrama Espacio - Fase CASO 14 Diagrama Espacio - Fase
CASO 7 Diagrama Espacio – Fase CASO 15 Diagrama Espacio - Fase
CASO 8 Diagrama Espacio - Fase CASO 16 Diagrama Espacio - Fase
Elaborado por Ing. Jovanny Duque
GRUPOS DE 2 ESTUDIANTES
16. 16
// Elaborado por Ing. Jovanny R Duque
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_co
nfirmation=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/