La versión 4 de CADe_SIMU nos permite incluir un Arduino en el circuito para que interactúe con los elementos simulados. En este artículo vamos a ver a modo de ejemplo cómo utilizarlo para realizar el arranque y parada de un motor trifásico con dos pulsadores y lectura del relé térmico.
Introducción
En un articulo previo explicaba de que manera podemos agregar un Arduino UNO a nuestros circuitos en CADe_SIMU y vimos que en realidad el Arduino no es simulado sino que necesitamos tener un Arduino real, con el programa que queremos incluir en la simulación ya cargado y conectado a través de un puerto USB.
En esta ocasión les voy a mostrar un ejemplo, aplicado al arranque de un motor trifásico.
El circuito
Consiste en un circuito básico de arranque y parada de un motor trifásico, cuyo esquemático podemos ver en la siguiente imagen:
Como pueden apreciar, el circuito tiene un contactor K1 que es el que actúa sobre el motor trifásico. La bobina de este contactor está conectada a la salida 2 del Arduino. Al Arduino además se conectan dos pulsadores de control del motor: S2 (entrada 9) para ponerlo en marcha y S1 (entrada 8) para pararlo. Como medida de protección, el motor tiene un relé térmico que cierra el contacto F (entrada 10) si se produce una sobrecarga, situación en la cual vamos a abrir el contactor y encender la luz de alarma H (salida 3). La condición de alarma se mantendrá aunque se desactive la entrada del relé térmico (entrada 10) y sólo podremos arrancar de nuevo el motor si actuamos sobre el pulsador CLEAR (entrada 11).
Recuerden que los circuitos eléctricos del Arduino deben cerrarse siempre por GND y 5V del mismo Arduino en CADe_SIMU.
Esta es la configuración del Arduino:
Circuito
En el Arduino no es necesario que armemos ningún circuito. No es necesario que conectemos nada a las entradas ni a las salidas, todo el control lo realizará CADe_SIMU
El programa
El programa grabado en el Arduino que hace que este circuito funcione es el siguiente:
//Ejemplo Arranque y parada
define MOTOR 2
define PILOTO 3
define STOP 8
define START 9
define TERMICO 10
define CLEAR 11
#include <PC_SIMU.h>
PC_SIMU Arduino;
boolean AlarmaTermico;
void setup() {
pinMode(MOTOR, OUTPUT); //Salida Motor
pinMode(PILOTO, OUTPUT); //Indicador Error
digitalWrite(MOTOR, 0); //Arranca motor parado
digitalWrite(PILOTO, 0); //Arranca lampara apagada
pinMode (STOP, INPUT); //Entrada pulsador STOP
pinMode (START, INPUT); //Entrada pulsador START
pinMode (TERMICO, INPUT); //Entrada contacto aux relé térmico
pinMode (CLEAR, INPUT); //Entrada CLEAR de alarma
AlarmaTermico = false;
Arduino.INI();
}
void loop() {
//Ver pulsador START
if (digitalRead (START) && (AlarmaTermico==false)) {
digitalWrite(MOTOR, 1);
}
//Ver pulsador STOP
if (digitalRead (STOP)) {
digitalWrite(MOTOR, 0);
}
//Ver contacto del térmico
if (digitalRead (TERMICO)) {
digitalWrite (MOTOR,0);
digitalWrite (PILOTO,1);
AlarmaTermico = true;
}
//Ver pulsador de CLEAR
if (digitalRead (CLEAR)) {
digitalWrite (PILOTO,0);
AlarmaTermico = false;
}
}
Analicemos el funcionamiento de este código:
En el inicio tenemos algunas definiciones (define) de entradas y salidas, que podemos cambiar si modificamos el circuito.
Luego, en las líneas 10 y 11 incluimos la librería PC_SIMU, indispensable para comunicarnos con CADe_SIMU y luego creamos el objeto Arduino.
En la línea 13 definimos la variable AlarmaTermico, de tipo booleana, que va a indicar si se activo el relé térmico por una sobrecarga en el motor.
En la función setup se definen las salidas y entradas con pinMode y se inicializan a cero las salidas. También inicializamos en false la variable AlarmaTermico y llamamos al método INI del objeto Arduino para inicializar la comunicación.
En la función loop se va comprobando el estado de las entradas y actuando en consecuencia:
En la línea 36, si se aprieta START y no hay una condición de sobrecarga, activamos la salida del contactor para poner el marcha el motor.
En la línea 41, si se aprieta STOP, desactivamos la salida del contactor y paramos el motor.
En la línea 46, si se cierra el contacto auxiliar del relé térmico porque hubo una sobrecarga, paramos el motor, prendemos la luz de alarma y ponemos en true la variable AlarmaTermico, indicando la falla.
Finalmente en la línea 53, si se pulsa CLEAR, “limpiamos” la falla apagando la luz de alarma y poniendo en false AlarmaTermico, con lo que el motor está de nuevo en condiciones de ser puesto en marcha.
Este es sólo un programa de prueba, para mostrar las posibilidades de incluir un Arduino UNO en nuestras simulaciones con CADe_SIMU.
Funcionamiento
Aquí pueden ver el circuito en funcionamiento:
¿Qué pasa con las entradas del Arduino?
Seguramente algunos se preguntarán cómo puede funcionar un programa de Arduino en el que tomamos decisiones en base a los valores de las entradas, si no hay nada conectado a las mismas..
En este caso no es necesario que conectemos nada a las entradas porque la librería PC_SIMU toma la información que le envía CADe_SIMU cuando actuamos sobre una entrada en el simulador y le hace creer al Arduino que esa entrada se activó a nivel de hardware.
Pueden probar de activar las entradas de la placa, en este caso conectando un cable, por ejemplo entre 5V y la entrada 9 (START). Verán que en CADe_SIMU el motor se pone en marcha, pero el pulsador de START conectado a esa entrada no muestra actividad. Es que el flujo de información en este caso es en una sola dirección y CADe_SIMU sólo está recibiendo información de lo que sucede en las salidas del Arduino.
Espero que este ejemplo les haya ayudado a comprender mejor el empleo del Arduino en CADe_SIMU y les sirva para hacer sus propios circuitos. Cualquier sugerencia o consulta, pueden escribirla en la sección de comentarios.
Professor, sou estudante de eletrotécnica e me indicaram o CADeSIMU 4.O… Como faço para ter acesso e baixar
Será muito importante para minha formação.
Hola muy buena explicación, pero si el motor es monofásico y se quiere hacer una inversión de giro y se necesitan tres KM, ¿cómo se haría en Cadesimu?
En lugar de pulsadores de arranque y parada tubiese un mando a distancia con un pulsador que si lo activo gira en un sentido y si doy de nuevo gira en el siguiente?.
muchas gracias.
Hola, no lo tengo en este momento al esquema en CADE_Simu, pero la maniobra es diferente cuando se trata de un motor monofásico.Lo puedes ver en este enlace:
https://motordirect.es/smartblog/6_cambio_sentido_de_giro_motor_monofasico-html.html