Problema al parecer por alimentacion

Hola, tengo un proyecto de una banda transportadora. Cuento con 6 sensores de reflectancia infrarroja E18-D80NK para las determinadas paradas de la banda, un modulo rele de estado solido de dos canales que cumple la función de alimentar un contactor a 24VAC, un arduino mega alimentado por una fuente de 9VDC, y dos botones para el reset y puesta en marcha de los motores.

Cuando no tengo conectado el motor al contactor, y realizo las respectivas pruebas, se ve como el contactor se activa y desactiva acorde a la programación, Cuando el motor es conectado al contactor, solo se para el motor cuando llega al ultimo sensor, presentando un fallo en la logica.

He tratado alimentar de manera independiente tanto los sensores como el modulo rele con fuentes de 9 VDC o de 5VDC y de ninguna de las dos maneras me ha funcionado, dejando las tierra tanto independietes como comunes.

int contador= 0;
const int luzmarcha=3;
const int luzreinicio=2;
const int luzmotor=4;
const int reset = 5;
const int marcha =6;
const int foto1 = 7;
const int foto2 = 8;
const int foto3 = 9;
const int foto4 = 10;
const int foto5 = 11;
const int motor1 = 28;
const int motor2 = 29;



void setup() {
  pinMode(marcha, INPUT_PULLUP);
  pinMode(foto1, INPUT);
  pinMode(foto2, INPUT);
  pinMode(foto3, INPUT); 
  pinMode(foto4, INPUT);
  pinMode(foto5, INPUT);
  pinMode(reset, INPUT_PULLUP);
  pinMode(motor1, OUTPUT); 
  pinMode(motor2, OUTPUT);   
  pinMode(luzmarcha, OUTPUT);
  pinMode(luzreinicio, OUTPUT);  
  pinMode(luzmotor, OUTPUT);
}



void primeraestacion (){
digitalWrite (luzmarcha,HIGH);
  while (digitalRead(foto1)!=HIGH){
    digitalWrite (motor1,LOW);
    digitalWrite (motor2,LOW);
  }
  contador=1;
  return;
}


void segundaestacion (){
  digitalWrite (luzmarcha,HIGH);
  while (digitalRead(foto2)!=HIGH){
    digitalWrite (motor1,LOW);
    digitalWrite (motor2,LOW);
  }
  contador=2;
  return;
}

void terceraestacion (){
  digitalWrite (luzmarcha,HIGH);
  while (digitalRead(foto3)!=HIGH){
   digitalWrite (motor1,LOW);
    digitalWrite (motor2,LOW);
  }
  contador=3;
  return;
}

void cuartaestacion (){
  digitalWrite (luzmarcha,HIGH);
  while (digitalRead(foto4)!=HIGH){
   digitalWrite (motor1,LOW);
    digitalWrite (motor2,LOW);
  }
  contador=4;
  return;
}

void final (){
  digitalWrite (luzmarcha,HIGH);
  while (digitalRead(foto5)!=HIGH){
    digitalWrite (motor1,LOW);
    digitalWrite (motor2,LOW);
  }
  contador=4; //SI SE QUIERE REINICIAR PONER CONTADOR EN 0
  return;
}


void loop() {
  // put your main code here, to run repeatedly:
digitalWrite (marcha,LOW); 
digitalWrite (foto1,LOW);
digitalWrite (foto2,LOW); 
digitalWrite (foto3,LOW);
digitalWrite (foto4,LOW); 
digitalWrite (foto5,LOW);
digitalWrite (reset,LOW); 
digitalWrite (motor1,HIGH);
digitalWrite (motor2,HIGH);
digitalWrite (luzmarcha,LOW);
digitalWrite (luzmotor,LOW);
digitalWrite (luzreinicio,LOW);


if (digitalRead (reset)== HIGH){
   
   digitalWrite (luzreinicio,HIGH);
   contador=0;
}

 
if (digitalRead (marcha)== HIGH){
  if (contador ==0){
  primeraestacion ();
}

if (digitalRead (marcha)== HIGH){
  if (contador ==1){
  segundaestacion ();
}
}

if (digitalRead (marcha)== HIGH){
  if (contador ==2){
  terceraestacion ();
}
}

if (digitalRead (marcha)== HIGH){
  if (contador ==3){
  cuartaestacion ();
}
}

if (digitalRead (marcha)== HIGH){
  if (contador ==4){
  final ();
}
}

}
}

La salidas del arduino van hacia el modulo rele, que este a su vez activa y desactiva el contactor, que este alimenta el motor.

Cuando lo pruebo desconectando las lineas del motor el contactor si activa y se desactiva correctamente, pero al conectar las lineas del motor, este solo se detiene cuando llega al ultimo sensor.

2 posts were merged into an existing topic: Problema al parecer por alimentacion


Moderador
Dos posteos similares con el mismo tema
Los foreros te han respondido en uno y otro hilo, haciéndoles perder el tiempo y a veces repitiendo cosas que se han dicho en el otro hilo.
Tienes una primer advertencia y a la siguiente te tendré que sancionar.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.