• No se han encontrado resultados

METODOLOGÍA PARA LA IMPLEMENTACIÓN DE CIRCUITOS ELÉCTRICOS SOBRE ARDUINO

N/A
N/A
Jovanny Duque

Academic year: 2022

Share "METODOLOGÍA PARA LA IMPLEMENTACIÓN DE CIRCUITOS ELÉCTRICOS SOBRE ARDUINO"

Copied!
17
0
0

Texto completo

(1)

METODOLOGÍA PARA LA IMPLEMENTACIÓN DE CIRCUITOS ELÉCTRICOS SOBRE

ARDUINO

VIDEO EXPLICATIVO

ARDUINO BASADO EN LADDER

https://youtube.com/playlist?list=PLHTERkK4EZJq9hjTGCDQmaLvi7CAyk_q_

Aprende a programar Arduino desde una solución LADDER con una metodología confiable

CIRCUITOS ELÉCTRICOS FLUIDSIM

https://youtu.be/DthNIWzYofo

https://youtu.be/fJ2c8X2PD4Y

(2)

PLC´s o Arduinos

Autómata programable - PLC PLC Basados en Arduino

(3)

EDITORES LADDER PARA ARDUINO

Outseal PLC Soap Box

LD Micro Easy Ladder V2.5

(4)

PLC BASADO EN ARDUINO - HARDWARE

(5)

PLC BASADO EN ARDUINO

CONEXIÓN DEL PROTOTIPO AL BANCO DE PRUEBAS

ELECTRONEUMÁTICAS

HARDWARE

(6)

PLC BASADO EN ARDUINO - HARDWARE

Conexión del prototipo al banco de pruebas

electroneumáticas

(7)

METODOLOGÍA - LENGUAJE LADDER

Al pulsar CX3, la salida del PLC (H1) solo hará una secuencia de encendido y apagado intermitente por (4) cuatro ciclos de encendido (2s) y apagado (2s). Una vez realizados los 4 ciclos deberá accionarse el pulsador RESET para habilitar una nueva secuencia.

1) Especificaciones del sistema:

Documentación del proceso

2) Simulación del proceso

VIDEO : CIRCUITOS

ELÉCTRICOS FLUIDSIM

https://youtu.be/D

thNIWzYofo

(8)

DEFINICIÓN DE LOS TIPOS DE CONTACTOS

3) Determinación de cantidad de E/S,

temporizadores, contadores, etc.

4) Selección del Arduino

VIDEO ASOCIADO https://youtu.be/fJ2c 8X2PD4Y

5) Conexión de E/S - Direcciones

asignadas -Tipos NO/NC -Tipos de

contactos en editor LADDER

(Normal Negado)

LA LÓGICA QUE NECESITO LO QUE ESTÁ CONECTADO

SI SON

SI SON =

(9)

// Variables asociadas a "temp2".

int T2 = 0 ; //

Bit/memoria asociado al temporizador int tiempo2 = 1000; //

Tiempo asignado a la Temporización 2

int activado2 = 0; // Al principio no ha sido activado.

long inicio2, final2, actual2; // Variables de la subrutina de T2

// Variables asociadas al Contador 1

int CONTADOR1 = 0; // Guarda el numero de ciclos transcurridos

const int PSCONTADOR1 = 3; // Preselect del Contador int ESTADOPREVIO_T1 = 0; // Estado previo del

componente que incrementa el contador.

int CONT1 = 0; // Es la variable

que se activa cuando se cumplen los ciclos.

void setup()

{

//Apertura del "Monitor serie"

Serial.begin(9600);

//Declaración de puertos (pines) digitales tanto de entrada como de salida

pinMode(6, INPUT);

pinMode(7, INPUT);

pinMode(2, OUTPUT);

//Declaración del estado inicial de los pines de las salidas en bajo/apagadas

digitalWrite(H1,0); }

/// TRATAMIENTO PREVIO

//ANTES DEL void setup () // DECLARACIÓN DE VARIABLES

int K1 = 0; int K2 = 0; int K3 = 0; //

Las memorias = Relee.

int RESET = 6; int CX3 = 7 ; // Pines de entrada.

int H1 = 2; // Pin de salida del LED

// Variables asociadas a "temp1".

int T1 = 0 ; // Bit/memoria asociado al temporizador 1

int tiempo1 = 1000;//Tiempo de T1 int activado1 = 0; // Al principio no ha sido activado.

long inicio1, final1, actual1; //

Variables de la subrutina de T1 6) Programación

(10)

if ((T1 | K2) & (!K3)) { K2 = 1;}

else {K2 = 0; }

if (K2) {activetemp2(); } else {desactivetemp2();}

if (T2) {K3 = 1; } else {K3 = 0; }

if (T1 != ESTADOPREVIO_T1) { if (T1 == 1) {

CONTADOR1++;

Serial.print("Numero de Ciclos : ");

Serial.println(CONTADOR1); } ESTADOPREVIO_T1 = T1; }

if ( CONTADOR1 >= PSCONTADOR1) { CONT1 = 1;}

else { CONT1 = 0; }

if (!RESET == 1) {

CONTADOR1 = 0; CONT1 = 0;

Serial.print("Numero de Ciclos : ");

Serial.println(CONTADOR1); }

// TRATAMIENTO POSTERIOR

if (K1) {digitalWrite(H1, 1);}

else { digitalWrite(H1, 0); }

}

// Fin del Void Loop

//TRATAMIENTO SECUENCIAL void loop() {

RESET = digitalRead(6);

CX3 = digitalRead(7);

if ((CX3 | K1 | T2) & (!CONT1) &

(!T1)) {K1 = 1; } else {K1 = 0; }

if (K1) {activetemp1(); } //

Si se activa K1 corre Subrutina de temporización "void

activetemp1()"

else {desactivetemp1();

6) Programación

(11)

void desactivetemp1() { T1 = 0;

activado1 = 0; inicio1 = 0;

final1 = 0; actual1 = 0; } //- - - -

//SUBRUTINAS TEMPORIZADOR 2 void activetemp2() {

if (activado2 == 0) { activado2 = 1;

inicio2 = millis();

final2 = inicio2 + tiempo2;

}

actual2 = millis();

if (activado2 == 1 & (actual2 >= final2)) { T2 = 1; }

else { T2 = 0; } }

//- - - - void desactivetemp2() {

T2 = 0;

activado2 = 0; inicio2 = 0;

final2 = 0; actual2 = 0;

}

//- - - - //SUBRUTINAS DE TEMPORIZACIÓN

//SUBRUTINAS TEMPORIZADOR 1 void activetemp1() {

if (activado1 == 0) { activado1 = 1;

inicio1 = millis();

final1 = inicio1 + tiempo1; } actual1 = millis();

if (activado1 == 1 & (actual1 >=

final1) ) { T1 = 1; } else {T1 = 0; }

}

7) Configurar la comunicación 8) Pruebas y ajustes 6) Programación

(12)

DISPOSITIVO PARA EMBUTIR

(13)

DEFINICIÓN DEL TIPO DE CONTACTO (Normal o Negado)

(14)

IMPLEMENTACIÓN DEL PROGRAMA

https://youtu.be/cP4GUn4yiC4

(15)

IMPLEMENTACIÓN DEL PROGRAMA

https://youtu.be/raeSWl7fr_M

(16)

GRACIAS

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 mas

http://www.youtube.com/c/Jovann

yDuque?sub_confirmation=1_

(17)

Una vez finalizado este evento, ésta presentación

estará disponible en su respectiva página

Referencias

Documento similar