CONTROL DE CIRCUITOS ELECTRICOS CON ARDUINO CX3 R H1.

Page 1

METODOLOGÍA DE PROGRACIÓN CIRCUITOS ELÉCTRICOS HECHO EN ARDUINO BASADO EN LADDER

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 :) (っ◕‿◕)


http://www.youtube.com/c/JovannyDuque?sub_confirmation=1_ CONTROL DE CIRCUITOS ELECTRICOS CON ARDUINO Planteamiento de la situación: Al pulsar CX3, la salida del Arduino (H1) solo hara una secuencia de encendido y apagado intermitente por (4) cuatro ciclos de encendido (2s) y apagado (2s). Una vez realizados debera accionarse el pulsador RESET para habilitar una nueva secuencia.

ARDUINO BASADO EN LADDER Aprende a programar Arduino desde una solucio n LADDER con una metodología confiable https://youtube.com/playlist?list=PLHTERkK4EZJq9hjTGCDQmaLvi7CAyk_q_

1 Elaborado por Ing. Jovanny Duque


http://www.youtube.com/c/JovannyDuque?sub_confirmation=1_ Circuito de control eléctrico

// CÓDIGÓ ARDUINÓ

/// TRATAMIENTO

CASÓ 4 LED INTERMITENTE X4 ÓK

PREVIO

//DECLARACION DE VARIABLES //Declaración de las variables Ki corresponden a las relés/memorias utilizadas para el circuito/programa //Declaración de las variables Si corresponden a las Entradas de pulsador NO (Normalmente abiertos) utilizadas para el 2 Elaborado por Ing. Jovanny Duque


http://www.youtube.com/c/JovannyDuque?sub_confirmation=1_ circuito/programa , la designación H corresponde al pin de salidas acoplada a un LED

int K1=0; int K2=0; int K3=0; // Las memorias o false.

se

declaran en

estado inicial bajo

int RESET=6; pulsador de

// Pin de entrada, hará la función del RESET- Ver Conexión de Entradas y Salidas

int CX3=7 ; pulsador de

// Pin de entrada, hará la función del CX3 - Ver Conexión de Entradas y Salidas

int H1 = 2; // Pin de salida del LED - Ver Conexión Entradas y Salidas

de

// Variables

asociadas a

"temp1".

int T1 = 0; se establece establecido

// Bit/memoria asociado al temporizador a estado 1 cuando transcurre el tiempo1

int tiempo1 = 1500; // Tiempo asignado a la Temporización caso (1,5 seg = 1500 milisegundos).

1

1

en este

int activado1 = 0; // Al principio no ha sido activado. long inicio1, final1, actual1;

// Variables

asociadas a

"temp2".

3 Elaborado por Ing. Jovanny Duque


http://www.youtube.com/c/JovannyDuque?sub_confirmation=1_ int T2= 0 ; se establece establecido

// Bit/memoria a estado 1 cuando

asociado al temporizador transcurre el tiempo2

int tiempo2 = 1000; // Tiempo asignado a la Temporización seg = 1000 milisegundos).

2

en este caso

1

(1

int activado2 = 0; // Al principio no ha sido activado. long inicio2, final2, actual2;

// Variables

asociadas al Contador 1

int CONTADOR1 = 0; // Variable entera que guarda ciclos transcurridos const int PSCONTADOR1 = 4; // Preselect del de ciclos a realizar

el número de

Contador o

número

int ESTADOPREVIO_T1 = 0; // Estado previo del componente que incrementa el contador, en este caso T1

int CONT1=0; // Es la variable(memoria) que se activa cuando se los ciclos, cuando (CONTADOR1 >=PSCONTADOR1)

cumplen

void setup() { //Apertura del visualizador serial con el fin de visualizar el número de ciclos en el "Monitor serie" Serial.begin(9600);

4 Elaborado por Ing. Jovanny Duque


http://www.youtube.com/c/JovannyDuque?sub_confirmation=1_ //Declaración de puertos (pines) entrada como de salida

digitales tanto de

pinMode(6, INPUT); pinMode(7, INPUT); pinMode(2, OUTPUT);

//Algunos dispositivos traen una configuración "Sinking and Sourcing" //por eso es necesario colocar los puertos de salida en 0v o en estado bajo. //Declaración del estado inicial las salidas en bajo/apagadas

de los pines/puertos de

digitalWrite(H1, 0); }

//TRATAMIENTO

SECUENCIAL

void loop() {

// Inicio

// LECTURA

DE LOS

del

ESTADOS

Void Loop DE LOS

PINES

DE

ENTRADA

//Capturar valores de puertos digitales de entrada con el fin de // asignar el estado variables RESET y CX3

de los

pines

de

entrada

a

las

RESET= digitalRead(6); CX3= digitalRead(7);

//TRATAMIENTO

SECUENCIAL 5

Elaborado por Ing. Jovanny Duque


http://www.youtube.com/c/JovannyDuque?sub_confirmation=1_ // Declaración de las ecuaciones booleanas equivalentes cada línea eléctrica (relé,temporizador o contador) // Cada línea del circuito eléctrico (lógica cableada) su ecuación booleana equivalente (lógica programada).

de

tiene

if ((CX3 | K1 | T2) & (!CONT1) & (!T1)) {K1=1;} else {K1=0;}

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

se

activa K1

se ejecuta la Subrutina/Subprograma de temporización activetemp1()" else {desactivetemp1();} // Si K1 esta inactivo se la Subrutina/Subprograma de temporización desactivetemp1()"

if

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

else

{K2=0;}

se

"void ejecuta "void

if (K2) {activetemp2(); } la Subrutina/Subprograma activetemp2()"

// Si de

activa K2 se temporización

ejecuta "void

else {desactivetemp2();} la Subrutina/Subprograma desactivetemp1()"

// Si K2 esta inactivo se de temporización

ejecuta "void

if (T2) {K3=1;} else {K3=0;} 6 Elaborado por Ing. Jovanny Duque


http://www.youtube.com/c/JovannyDuque?sub_confirmation=1_

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 - ACTIVACIÓN DE LAS ACCIONES

SALIDAS/

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

// Fin

del

Void Loop

//SUBRUTINAS DE TEMPORIZACIÓN asigna un subprograma

(Para cada temporización se

//activetempx y un desactivetempx usando para ello comparaciones con el comando millis

7 Elaborado por Ing. Jovanny Duque


http://www.youtube.com/c/JovannyDuque?sub_confirmation=1_ //- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - //SUBRUTINA TEMPORIZADOR 1 //- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - void activetemp1() { if (activado1 == 0) { antes... activado1 = 1; de inicio.

// activa y no ha sido activado=0 // marca activado=1 y guarda el tiempo

inicio1 = millis(); final1 = inicio1 + tiempo1; // Transcurridos ( en este caso 2000 milisegundo=2s)

tiempo1

} actual1 = millis();

// Consulta el tiempo actual.

if (activado1 == 1 & (actual1 >= final1) ) {T1 = 1;

}

else { T1 = 0; } } void desactivetemp1() { T1 = 0; activado1 = 0; inicio1 = 0; final1 = 0; actual1 = 0; } //- - - - - - - - - - - - - - - - - - - - - - - - - - //SUBRUTINA TEMPORIZADOR 2 //- - - - - - - - - - - - - - - - - - - - - - - - - - 8 Elaborado por Ing. Jovanny Duque


http://www.youtube.com/c/JovannyDuque?sub_confirmation=1_ void activetemp2() { if (activado2 == 0) { activado=0 antes... activado2 = 1; tiempo de inicio.

// Si ha pulsado HIGH y no ha sido // marca activado=1 y guarda el

inicio2 = millis(); final2 = inicio2 + tiempo2; // Transcurridos ( en este caso 1000 milisegundo=1s)

tiempo2

} actual2 = millis(); actual.

// Consulta el tiempo

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

void desactivetemp2() { T2 = 0; activado2 = 0; inicio2 = 0; final2 = 0; actual2 = 0; } //- - - - - - - - - - - - - - - - - - - - - - - - - - -

9 Elaborado por Ing. Jovanny Duque


http://www.youtube.com/c/JovannyDuque?sub_confirmation=1_

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?su b_confirmation=1_ _________________________________ y Amigos/as en el BLÓGG MEKATRÓNICA J DUKE podras encontrar cantidad de recursos sobre SÓLIDWÓRKS, HIDRAULICA ELECTRÓHIDRAULICA , NEUMATICA, ELECTRÓNEUMATICA, CÓNTRÓL, PLC M221, PLC SIEMEMS S7 1200, PLC SIEMENS S7 300 , FLUID SIM FACTÓRY IÓ, entre otros

https://mecatronica-itsa.blogspot.com/

10 Elaborado por Ing. Jovanny Duque


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.