Go Down

Topic: Falla en la desconexion de rele 12v (Read 693 times) previous topic - next topic

cesarslabo

Jun 08, 2019, 06:14 pm Last Edit: Jun 08, 2019, 06:16 pm by cesarslabo
Muy buenos dias, estoy teniendo un problema al querer desconectar un rele de 12v que a su ves va conectado a un modulo de 5v de 2 relee de arduino como el siguiente

El plan original es para dar de marcha a un auto mediante el sistema de boton. La cosa funciona de la siguiente manera, al presionar y mantener presionado un boton el auto se pone en contacto y se da marcha, al soltar el bolton y presionarlo nuevamente se deberia de detener el motor, el problema radica aqui, hay que presionar varias veces el boton para que este se apague, por lo que pude notar el problema esta en que no corta el rele de posicion por lo cual cuesta que este se apague. Las pruebas realizadas con solo el modulo de arduino funciona bien el boton como deberia, pero al momento de conectar un rele como el siguiente
es cuando empieza el problema.
El codigo que hice es
Code: [Select]
int cont=0; //iniciamos estado
int pulsador=0; //iniciamos pulsador
int sistema=0; //iniciamo sistemas
int encendido=0; //iniciamo sistemas
int boton=0;
void setup() {
  pinMode(2,OUTPUT); //rele arranque
  pinMode(3,OUTPUT); //rele contacto
  pinMode(4,INPUT); //boton
}

void loop() {
    cont=0;
    if (cont==0){ //reles apagado
    digitalWrite(2,HIGH);
    digitalWrite(3,HIGH);}
    pulsador = digitalRead(4);
    if (pulsador==HIGH and encendido==0 and boton==0){
      cont=1;
      sistema=1;
      boton=1;
    }
    while (sistema==1){
      pulsador = digitalRead(4);
      digitalWrite(2,HIGH); //ponemos en contacto
      pulsador = digitalRead(4);
      if(pulsador==HIGH and encendido==1){ //se da arranque mientras se mantiene presionado el boton
          digitalWrite(2,LOW);
          boton=0;}
          else{
          digitalWrite(2,HIGH);
          encendido=2;
          boton=1;}
      delay(200);
      pulsador = digitalRead(4);
      if(encendido==2 and pulsador==HIGH and boton==1){ //se quita de contacto por lo cual se deberia de apagar
        delay(200);
        sistema=0;
        cont=0;
        encendido=0;
        boton=0;
        apagado=0;
        delay(300);
        digitalWrite(3,HIGH);
        break;}
        pulsador = digitalRead(4);          
    }
}

La duda seria, es una falla del codigo, o deberia ponerle alguna clase de diodo o resistencia para que no tenga retorno de energia, que creo que es lo que pasando.
Por cierto, es un arduino UNO en el que se inicio el proyecto, y un NANO el que esta en el auto, en ambos ocurre lo mismo.
Las conexiones estarian como la imagen adjunta
Desde ya muchas gracias.

surbyte

Comentanos como esta todo alimentado y fundamentalmente ese rele de 12V si tiene o no diodo en antipaalelo. Es decir un diodo con catodo a 12V+ y el ánodo al otro borne de la bobina del rele de 12V.

Simpre que comandes (acciones) reles de continua debes usar un diodo en antiparalelo como en la figura.



El interruptor simboliza el contacto de tu rele de 5V

cesarslabo

Gracias por la respuesta, bien, el arduino nano, que es el que va a quedar en el auto se alimante mediante un step down LM2596S que reduce el voltaje del auto para mover el arduino y el rele de 12v se alimenta directamente de la energia del auto; y el arduino uno que es el que uso para probar, se alimenta de una fuente de computadora vieja y el rele de 12v de ese arduino tambien obtiene la energia de la fuente de computadora. Y con respecto a lo del diodo, no , no lo tiene voy a probar con ponerle uno, ya que me estaba faltando esa info para la conexiones.

surbyte


cesarslabo

Ya veo que si, le puse uno y funciono a la perfección, gracias por el concejo

Go Up