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 - LADDER - EJEMPLO CX3 RESET TEMP EH EN 2 CIL BI MONO PARA ARDUINO ITSAINO.pdf
1. Elaborado por Ing. Jovanny Duque pág. 1
CONTROL DE CIRCUITOS ELECTRONEUMÁTICOS / ELECTROHIDRÁULICOS (% del Corte
METODOLOGÍA PASO A PASO PARA REALIZAR CIRCUITOS ELECTRONEUMÁTICOS EN LADDER Realiza la simulación
de un circuito electroneumático complejo paso a paso y siguiendo una metodología.
https://youtube.com/playlist?list=PLHTERkK4EZJrSElocHbXzjzLjKXq8RjIV
NOMBRE DE LOS
ESTUDIANTES:___________________________________________________________________________________________________________________________________________________
Planteamiento de la situación:
Diseñe el Circuito de control eléctrico para gobernar los cilindros A y B según el diagrama Espacio- Fase (CASO ASIGNADO), tal que al dar la señal de
inicio (CX3) , realice solo tres (3) ciclos completos con una temporización entre cada ciclo, una vez terminado, solo se podrá reiniciar, reseteando el
contador de circuito.
A TENER EN CUENTA = Todos los proyectos usaran las mismas electroválvulas, al finalizar los 3 ciclos todos los relés deben estar desactivados,
todos los proyectos usarán los mismos pines de entradas y salidas.
Diagrama Espacio - Fase
Circuito Electroneumático o Circuito Electrohidráulico
3. Elaborado por Ing. Jovanny Duque pág. 3
PINES DE ENTRADA Y SALIDA ARDUINO UNO
EN LA ESTACIÓN “ITSAINO”
4. Elaborado por Ing. Jovanny Duque pág. 4
// CÓDIGO ARDUINO - PINES DE ENTRADA Y SALIDA ARDUINO UNO
EN LA ESTACIÓN “ITSAINO”
/// TRATAMIENTO PREVIO
/// DISPOSITIVO PARA REMACHAR
/// I/ 0 AUTOINO OKOK
//DECLARACION DE VARIABLES
//Declaración de las variables Ki corresponden a las reles/memorias utilizadas para el
circuito/programa
//Declaración de las variables de las entradas corresponden a las Entradas de pulsador NO
(Normalmente abiertos) utilizadas para el circuito/programa
// Declaración de las memorias asociadas a cada relé se declaran en estado inicial bajo o
false.
int K1 = 0;
int K2 = 0;
int K3 = 0;
int K4 = 0;
int K5 = 0;
int K6 = 0;
int K7 = 0;
int K8 = 0;
int K_F_C= 0;
// Declaración de las variables de Entradas y Salidas.
// ENTRADAS
int CX3 ; //Entrada de Pulsador que harà la función de pulsador de 3 Ciclo
int R_ESET ; // Entrada de Pulsador que harà la función de resetear el contador
int A_0 ; // Harà la función de sensor de entrada final de carrera
int A_1; // Harà la función de sensor de entrada final de carrera
int B_0 ; // Harà la función de sensor de entrada final de carrera
int B_1; // Harà la función de sensor de entrada final de carrera
// SALIDAS
int Y1 = 2; // Pin de salida acoplada a la bobina Y1 de la electroválvula 4/3 BI A+
int Y2 = 3; // Pin de salida acoplada a la bobina Y2 de la electroválvula 4/3 BI A-
int Y3 = 4; // Pin de salida acoplada a la bobina Y3 de la electroválvula 4/2 MONO B+/-
5. Elaborado por Ing. Jovanny Duque pág. 5
// Variables asociadas a "temp1".
int T1 = 0; // Bit asociado al temporizador 1
int activado1 = 0; // Al principio no ha sido activado.
long inicio1, final1, actual1;
// Variables asociadas a "temp1".
int T2 = 0; // Bit asociado al temporizador 1
int activado2 = 0; // Al principio no ha sido activado.
long inicio2, final2, actual2;
// Variables asociadas al Contador 1
int CONTADOR1 = 0; // Representa el valor actual del contador o ciclos completos realizados
const int PSCONTADOR1 = 3; // Preselect del Contador o # de ciclos , Representa el # de
ciclos que se desean realizar
int CONT1=0; // Es la variable que se activa cuando s cumplen los ciclos es decir cuando
(CONTADOR1 >=PSCONTADOR1)
int ESTADOPREVIO_K7 = 0; // Estado previo del componente que incrementa el contador, CAMBIAR
SEGÚN EL CASO
// en este caso K7 incrementa el contador
void setup() {
// put your setup code here, to run once:
//Apertura del visualizador serial
Serial.begin(9600);
//Declaración de puertos digitales de Entradas y Salidas
pinMode(8, INPUT);
pinMode(9, INPUT);
pinMode(10, INPUT);
pinMode(11, INPUT);
pinMode(12, INPUT);
pinMode(13, INPUT);
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
//Algunos dispositivos traen una configuración "Sinking and Sourcing"
6. Elaborado por Ing. Jovanny Duque pág. 6
//por eso es necesario colocar los puertos de salida en 0v.
//Declaración del estado inicial de los pines de las salidas en bajo/apagadas
digitalWrite(Y1, 0);
digitalWrite(Y2, 0);
digitalWrite(Y3, 0);
}
//TRATAMIENTO SECUENCIAL
void loop() {
// put your main code here, to run repeatedly:
//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);
if ( ( ((CX3 | T2) & A_0 & B_0) | K1) & (!K5) & (!CONT1)) { K1 = 1; }
else { K1 = 0; }
if (((K1 & A_1) | K2) & (!K4) ) { K2 = 1; }
else {K2 = 0; }
if (((K2 & B_1) | K3) & (!K4)) { K3 = 1;} else {K3 = 0;}
if (K3) { activetemp1();}
else {desactivetemp1(); }
if ((T1 | K4) & (!K5) ) {K4 = 1;}
else {K4 = 0; }
if (((K4 & B_0) | K5) & (!K6)) {K5 = 1;}
else {K5 = 0;}
if (((K5 & A_0) | K6) & (!K7)) { K6 = 1;}
else { K6 = 0; }
if (((K6 & A_1) | K7) & (!K_F_C)) {K7 = 1; }
7. Elaborado por Ing. Jovanny Duque pág. 7
else {K7 = 0;}
if (((K7 & A_0) | K_F_C) & (!K8)) {K_F_C = 1;}
else {K_F_C = 0;}
if (K_F_C) {activetemp2();}
else { desactivetemp2(); }
if (T2) { K8 = 1;}
else {K8 = 0;}
if (K7 != ESTADOPREVIO_K7) {
if (K7 == 1) {CONTADOR1++;
Serial.print("Numero de Ciclos : ");
Serial.println(CONTADOR1); }
ESTADOPREVIO_K7 = K7;
}
if ( CONTADOR1 >=PSCONTADOR1) {CONT1=1;}
else {CONT1=0;}
if (R_ESET) {CONTADOR1 = 0; CONT1=0; Serial.println(CONTADOR1); Serial.print("Numero de Ciclos
: "); }
// TRATAMIENTO POSTERIOR - ACTIVACIÓN DE LAS SALIDAS/ ACCIONES
if (K1 | K6) {digitalWrite(Y1,1); }
else {digitalWrite(Y1, 0); }
if (K2) {digitalWrite(Y3, 1);}
else {digitalWrite(Y3, 0);}
if (K5 | K7 ) {digitalWrite(Y2, 1);}
else {digitalWrite(Y2, 0);}
} // Fin del Void Loop
//SUBRUTINAS DE TEMPORIZACIÓN (Par cada temporización se asigna un subprograma
//activetempx y un desactivetempx usando para ello comparaciones con el comando millis
9. Elaborado por Ing. Jovanny Duque pág. 9
) Pruébenlo en Software (TinkerCAD) o en Protoboar antes de enviarlo.
Ver video de apoyo CIRCUITO ELECTRONEUMÁTICO SIMULADO CON TINKERCAD https://youtu.be/YSbmOvADG44
https://www.youtube.com/watch?v=8Hf21rRjw_4
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/