Control de velocidad de motor trifásico con PLC basado en Arduino

Introducción

En la industria nos encontramos con aplicaciones o procesos a modificar como controlar la velocidad de un motor, del cual requerimos resolver con calidad a bajo costo. Tenemos la solución el PLC M-Duino 21+.

Contamos con una aplicación utilizando un VFD (variador de frecuencia variable o variador de frecuencia ajustable, AFD). El software de tu PLC se encarga de proporcionar una interface sencilla para el usuario y controla la VFD. Así, a través del PLC Arduino IDE, podrás controlar un  motor trifásico. 

Usando una salida analógica de 0-10 V, serás capaz de controlar la velocidad de un motor trifásico. Aparte de eso, también podrás controlar la dirección de rotación utilizando dos pines digitales.

Requisitos

Software

////////////////////////////////////////////////////////////////////////////////////////////////////
void setup(){
Serial.begin(9600L);
delay(1000);
printMenu();
}

////////////////////////////////////////////////////////////////////////////////////////////////////
void loop(){
if (Serial.available()){
    int byteSerial = Serial.read(); 
if (byteSerial == '0'){
digitalWrite(Q0_0, LOW);
digitalWrite(Q0_1, LOW);
analogWrite(A0_7, 0);
Serial.println("Motor Stop");
printMenu();
}
else if (byteSerial == '1'){
digitalWrite(Q0_0, HIGH);
digitalWrite(Q0_1, LOW);
      digitalWrite(A0_7, 50);
Serial.println("Forward rotation mode");
      printMenu();
}
else if (byteSerial == '2'){
digitalWrite(Q0_0, LOW);
digitalWrite(Q0_1, HIGH);
analogWrite(A0_7, 50); 
Serial.println("Reverse rotation mode");
  printMenu();
}
else if (byteSerial == '3'){
analogWrite(A0_7, 50);
Serial.println("Speed nº1");
  printMenu();
}
else if (byteSerial == '4'){
analogWrite(A0_7, 127);
Serial.println("Speed nº2");
  printMenu();
}
else if (byteSerial == '5'){
analogWrite(A0_7, 255);
Serial.println("Speed nº3");
  printMenu();
}
}
}
void printMenu(){
  Serial.println("------------------------------------------");
  Serial.println("Command guide:");
  Serial.println("Press 0 for Stop");
  Serial.println("Press 1 for reverse rotation");
  Serial.println("Press 2 for forward rotation");
  Serial.println("Press 3 for Speed nº1");
  Serial.println("Press 4 for Speed nº2");
  Serial.println("Press 5 for Speed nº3");
  Serial.println("------------------------------------------");
}