Boa tarde.

Tenho em mente um projeto para acionamento de um motor trifásico com uso de Arduino. Já estou montando o protótipo, com finalidade de ir acertando agora a programação.

Usarei disjuntor motor, contator, e à motores maiores soft starter, e para o acionamento, um contato NA de um relé, que alimentará a bobina do contator, e assim acionando o motor.

Sobre acionar e desativar o contator, já consegui o código. Agora quero a confirmação de que o contator foi acionado, usando um contato NA do contator. 5V para o borne 13, e o borne 14 com cabo até uma porta digital do arduino configurada como INPUT.

Porém não consigo lançar que quando o valor for 0 nessa INPUT, então o relé tenha que desarmar.

Segue código que está sendo usado:

//Porta para o acionamento do relé
int sinalpararele = 2;

//Porta utilizada para o botão de acionamento
int botao = 12;

//Porta utilizada para o sinal de retorno do relé
int retornopararele = 3;

//Armazena informações sobre a leitura do botão
int leitura;

//Armazena informações sobre a confirmação do sinal de retorno
int confirmacao;

//Armazena o estado do relé (ligado/desligado)
int estadorele = 0;


void setup() {
//Pino como saida (sinal para o relé)
pinMode(sinalpararele, OUTPUT);

//Pino como entrada (pino do botão)
pinMode(botao, INPUT);

//Pino como entrada (retorno para relé)
pinMode(retornopararele, INPUT);
}


void loop() {
leitura = digitalRead(botao);
if (leitura != 0) {
while (digitalRead(botao) != 0) {
delay(100);
}
estadorele = !estadorele;
digitalWrite(sinalpararele, estadorele);
}
}

Exibições: 1889

Responder esta

Respostas a este tópico

void loop() { 
if(digitalRead(botao)) { delay(100); if(digitalRead(botao)) { // elimina bounce do botao
estadorele = !estadorele; // altera a variavel do estado do rele
digitalWrite(sinalpararele, estadorele); // atualiza o pino do sinal do rele

delay(10); // espera o comando acionar os contatores, etc antes de verificar se ligaram

if(estadorele && (!confirmacao)) { estadorele = 0; digitalWrite(sinalpararele, estadorele); } // se nao confirmado ligar rele, desliga

}}

if(digitalRead(botao)) { delay(100); } // espera soltar o botao
}

Esse CEI é fera mesmo

Rui

Concordo RV!

Abs.

CK

na luta ainda pessoal... CEI auxiliando, cara fera

Oi DM, bom dia.

Ontem fiz um teste usando um arduino mini.

Pra isto troquei o port 30 para 3.

Também inverti a lógica dos ports e do code.

Assim botao = 0  é botao apertado;

botao = 1 é botao liberado;

Fiz a mesma coisa no contato auxiliar

Auxiliar = 0  é contator ligado

Auxiliar = 1 é contator desligado.

Segue desenho de como liguei, e code que usei.

http://pastebin.com/gqcBBUNi

Se funcionar ok, voce pode modificar o code para fazer o inverso.

Ops : Tem um rele entre o arduino e o contator, mas não desenhei.

Rui

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço