segunda-feira, 20 de novembro de 2023

Aula 20 - Como Ligar e desligar um motor com Arduino e CADe_SIMU 4.

A versão 4 do CADe_SIMU nos permite incluir um Arduino no circuito para que ele possa interagir com os elementos simulados. Neste artigo, usaremos esse recurso como exemplo para dar partida e parar um motor trifásico com dois botões de pressão e leitura do relé térmico.

Introdução
Podemos adicionar um Arduino UNO aos nossos circuitos no CADe_SIMU, que na realidade o Arduino não é simulado, mas que precisamos ter um Arduino real , com o programa que queremos incluir na simulação já carregado e conectado através de uma porta USB.
Neste exemplo vou mostrar um exemplo, aplicado à partida de um motor trifásico.
O circuito consiste em um circuito básico de partida e parada para um motor trifásico, cujo esquema pode ser visto na imagem a seguir:
Como você pode ver, o circuito possui um contator K1 que atua no motor trifásico. A bobina deste contator é conectada à saída 2 do Arduino. Dois botões de controle do motor também são conectados ao Arduino: S2 ( entrada 9 ) para ligá-lo e S1 ( entrada 8 ) para pará-lo. 
Como medida de proteção, o motor possui um relé térmico que fecha o contato F ( entrada 10 ) caso ocorra uma sobrecarga , neste caso abriremos o contator e acenderemos a luz de alarme H ( saída 3 ). A condição de alarme permanecerá mesmo que a entrada do relé térmico (entrada 10) seja desativada e só conseguiremos ligar o motor novamente se atuarmos no botão CLEAR ( entrada 11 ).
Lembre-se que os circuitos elétricos do Arduino devem estar sempre fechados pelo GND e 5V do mesmo Arduino no CADe_SIMU.
A configuração do Arduino é mostrada na figura 02.
No Arduino, não precisamos construir nenhum circuito. Não precisamos conectar nada às entradas ou saídas; o CADe_SIMU cuidará de todo o controle.





O programa
O programa gravado no Arduino que faz esse circuito funcionar é o seguinte:

//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;
    }
}
Vamos analisar como esse código funciona:
  1. No início temos algumas definições ( define ) de entradas e saídas, que podemos alterar se modificarmos o circuito.
  2. Então, nas linhas 10 e 11 incluímos a biblioteca PC_SIMU , essencial para comunicar com o CADe_SIMU e então criamos o objeto Arduino.
  3. Na linha 13 definimos a variável AlarmaTermico , do tipo booleana, que indicará se o relé térmico foi acionado devido a uma sobrecarga no motor.
  4. Na função de configuração , as entradas e saídas são definidas com pinMode , e as saídas são inicializadas com zero . Também inicializamos a variável ThermalAlarm como false e chamamos o método INI do objeto Arduino para inicializar a comunicação.
  5. Na função de loop , o status das entradas é verificado e as ações são tomadas de acordo:
  6. Na linha 36, ​​se START for pressionado e não houver condição de sobrecarga , acionamos a saída do contator para dar partida no motor.
  7. Na linha 41, se STOP for pressionado , desativamos a saída do contator e paramos o motor.
  8. Na linha 46, se o contato auxiliar do relé térmico fechar porque houve sobrecarga, paramos o motor, acendemos a luz de alarme e colocamos a variável AlarmaTermico em true , indicando a falha.
  9. Por fim, na linha 53, se CLEAR for pressionado , "limpamos" a falha desligando a luz do alarme e configurando ThermalAlarm como false , para que o motor esteja pronto para ser ligado novamente.
Este é apenas um programa de teste, para mostrar as possibilidades de incluir um Arduino UNO em nossas simulações com CADe_SIMU.

Operação
Aqui você pode ver o circuito em operação:
Certamente alguns se perguntarão como pode funcionar um programa Arduino no qual tomamos decisões com base nos valores de entrada, se não há nada conectado a eles .
Neste caso, não é necessário conectar nada às entradas porque a biblioteca PC_SIMU pega a informação que o CADe_SIMU envia quando agimos em uma entrada no simulador e faz o Arduino acreditar que a entrada foi ativada no nível de hardware.
Você pode tentar ativar as entradas da placa, neste caso conectando um cabo, por exemplo, entre 5V e a entrada 9 (START). Você verá que no CADe_SIMU o motor dá partida, mas o botão START conectado a essa entrada não mostra atividade. Isso ocorre porque o fluxo de informações, neste caso, é unidirecional, e o CADe_SIMU está recebendo apenas informações sobre o que está acontecendo nas saídas do Arduino.
Espero que este exemplo tenha ajudado você a entender melhor como usar o Arduino no CADe_SIMU e a construir seus próprios circuitos. Se tiver alguma sugestão ou dúvida, fique à vontade para deixar nos comentários.

Referência: Ernesto Tolocka


© Direitos de autor. 2023: Gomes; Sinésio Raimundo. Última atualização: 20/11/2023