Go Down

Topic: Sensor de Gas, buzzer no funciona como debe de ser (Read 64 times) previous topic - next topic

Niko2707

Buenas Tardes, antes de todo muchas gracias por leer mi duda y apoyarme en lo que puedan.
El sensor de gas me da una lectura de 4-20mA, entonces programo dos alarmas: alarmalow y alarmahigh (estas alarmas las puedo variar su valor utilizando la eeprom del arduino); cuando la lectura del sensor llega al valor de alarmalow se activa el buzzer y led y con un pulsador desactivo solo el buzzer, ahora el problema esta cuando la lectura del sensor llega al valor de alarmahigh, se activa el led pero el buzzer no. Para ambas alarmas la logica que implemento es la misma y por separado, llevo varias dias con este problema y no encuentro la solución. Gracias por el apoyo (y)

Nota: en el archivo adjunto les dejo el codigo completo, las lineas de codigo del buzzer empiezan en la 337

Les dejo el fragmento del codigo del buzzer:


int estado_buzzerlow(int introporcentajelow,byte introcanallow){
  bool estadobuzzerlowsalida;
 
  if(introcanallow == 1){
    if(introporcentajelow>=alarmalow1){
      estadobuzzerlowsalida = true;
      return estadobuzzerlowsalida;
    }
    else if(introporcentajelow<alarmalow1){
      estadobuzzerlowsalida = false;
      return estadobuzzerlowsalida;
    }
  }
}

int estado_buzzerhigh(int introporcentajehigh,byte introcanalhigh){
   bool estadobuzzerhighsalida;
   
  if(introcanalhigh == 1){
    if(introporcentajehigh>=alarmahigh1){
      estadobuzzerhighsalida = true;
      return estadobuzzerhighsalida;
    }
    else if(introporcentajehigh<alarmahigh1){
      estadobuzzerhighsalida = false;
      return estadobuzzerhighsalida;     
    }
  }
}

bool buzzerlow(bool entradabuzzerlow,bool entradapulaceptar,byte inputcanal){
  //bool estadobuzzersalidahigh;
  bool estadobuzzersalidalow;

 if(inputcanal == 1){
    if(entradabuzzerlow == false){
      estadobuzzersalidalow= false;
      cont1 = false;
    }
    else if((entradabuzzerlow == true)&&(cont1 == false)){
      if(entradapulaceptar == false){
        estadobuzzersalidalow = true;
        //digitalWrite(relel,HIGH);
      }
      else if((entradapulaceptar == true)&&(cont1==false)){
        estadobuzzersalidalow = false;
        cont1 = true;
        //digitalWrite(relel,LOW);
      }
    }
    return estadobuzzersalidalow;
  }


bool buzzerhigh(bool entradabuzzerhigh,bool entradapulaceptar,byte inputcanal){
  bool estadobuzzersalidahigh;
   
  if(inputcanal == 1){
    if(entradabuzzerhigh == false){
      estadobuzzersalidahigh= false;
      cont11 = false;
    }
    else if((entradabuzzerhigh == true)&&(cont11 == false)){
      if(entradapulaceptar == false){
        //digitalWrite(releh,HIGH);
        estadobuzzersalidahigh = true;
      }
      else if((entradapulaceptar == true)&&(cont11==false)){
        //digitalWrite(releh,LOW);
        estadobuzzersalidahigh = false;
        cont11 = true;
      }
    }
    return estadobuzzersalidahigh;
  }
}

int buzzer_sonido(bool entradasonido,bool entradaestadobuzzer,byte entradacanalsonido){
 
  if(entradacanalsonido == 1){
     if(entradasonido == true){
      digitalWrite(buzzer,entradaestadobuzzer);
     }
     else if (entradasonido == false){
      entradaestadobuzzer = false;
      digitalWrite(buzzer,entradaestadobuzzer);
     }
  }
}


surbyte

#1
Mar 25, 2019, 07:39 pm Last Edit: Mar 25, 2019, 07:40 pm by surbyte
Por favor lee las normas del foro y edita tu post usando etiquetas.


Además por lo que veo tu código esta parcializado.
Coloca todo el código no lo que tu pienses que esta mal o no funciona.

Go Up