Arranque, inversión y giro de motor trifásico con arduino MEGA

Necesito ayuda con esta programación ya que simulándolo no acciona las instrucciones de manera adecuada, arranca normal con start pero el paro y la inversion no funciona.


C++:
int start;
int inversion;
int paro;

void setup (){
  pinMode(13, OUTPUT);
  pinMode(12, OUTPUT);
  pinMode(2,  INPUT);
  pinMode(4,  INPUT);
  pinMode(6,  INPUT);
Serial.begin(9600);
}
void loop ()
{
{
  inversion = digitalRead (2);
  start     = digitalRead (4);
  paro      = digitalRead (6);

}


  if (start == HIGH, inversion == LOW, paro == LOW)
{ digitalWrite(12,HIGH);
   digitalWrite(13,LOW);
   Serial.println("Arrancado");
  }
  if (inversion == HIGH,start == LOW, paro == LOW)
  {
  digitalWrite (12,LOW);
  delay          (5000);
  digitalWrite(13,HIGH);
  Serial.println("Inversion");
    if (paro == HIGH, start==LOW, inversion == LOW)
{
   digitalWrite(13, LOW);
   digitalWrite(12, LOW);
   Serial.println("stop");
  }
}







  }
  }
 
Última edición por un moderador:

pandacba

Rocker Bear
Más claro:
<expresión1> && <expresión2>
<expresión1> || <expresión2>
!<expresión>

El operador "&&" equivale al "AND" o "Y"; devuelve true sólo si los dos operandos true o lo que es equivalente, distintas de cero. En cualquier otro caso el resultado es false.

El operador "||" equivale al "OR" u "O inclusivo"; devuelve true si cualquiera de las expresiones evaluadas es true, o distinta de cero, en caso contrario devuelve false.

El operador "!" es equivalente al "NOT", o "NO", y devuelve true cuando la expresión evaluada es false o cero, en caso contrario devuelve false.
 
GRACIAS pandacba, Estoy trabajando mucho en la electrónica, no soy muy bueno pero hago el intento!
Más claro:
<expresión1> && <expresión2>
<expresión1> || <expresión2>
!<expresión>

El operador "&&" equivale al "AND" o "Y"; devuelve true sólo si los dos operandos true o lo que es equivalente, distintas de cero. En cualquier otro caso el resultado es false.

El operador "||" equivale al "OR" u "O inclusivo"; devuelve true si cualquiera de las expresiones evaluadas es true, o distinta de cero, en caso contrario devuelve false.

El operador "!" es equivalente al "NOT", o "NO", y devuelve true cuando la expresión evaluada es false o cero, en caso contrario devuelve false.
 
Agregando a lo ya dicho por los compañeros, te deiria que revises y acomodes de forma más legible tu código. O sea, cuando hablamos de legibilidad hablamos de las tabulaciones, por otro lado veo que en el loop hay llaves de más para mi hacen que no funcione de forma adecuada el programa.
 

pandacba

Rocker Bear
Para no cometer errores hay que crear primero un diagrama de flujo y estaablecer la lógica de control, claro para quienes no han trabajado previamente con circuitos lógicos les cuesta más.
Tienes que hacer una tabla y ver las comianciones permitidas y las que no
 

pandacba

Rocker Bear
Me pregunto si no esta saliendo más caro el collar que el perro, para invertir el giro de un motor trifásico hace falta si o si dos contactores, los cuales se pueden operar tan simplemente con pulsadores y esta todo resuelto más sencillamente, habría que ver la aplicación real, porque si es solo para el arranque e inversión no tiene sentido utilizar un arduino y mucho menos un Mega, es un desperdicio de recursos a dos manos.
No se si tendrá claro que los contactores van si o si
 
Arriba