Boa Noite pessoal,
Estou fazendo um programa para variar a tensão de saída no PWM conforme eu aumento o peso em uma célula de carga, porem só estou conseguindo variar com duas escolhas:
if (peso >=30){
val=254;//=24volts tensao da folha esta fraca portanto ira frear mais
analogWrite(solenoide,val);
} else {
if (peso <=31){
val=60;
analogWrite(solenoide,val);//6volts ; tensao está alta portanto ira frear menos
Dessa forma funciona mas quando eu tento por mais uma escolha não funciona:
if (peso >=30){
val=254;//=24volts tensao da folha esta fraca portanto ira frear mais
analogWrite(solenoide,val);
} else {
if (peso <=31>=51){
val=120;
analogWrite(solenoide,val);//12volts ; tensao está ideal
}else {
if (peso <=51){
val=60;
analogWrite(solenoide,val);//6volts ; tensao está alta portanto ira frear menos
Se alguem souber de alguma forma para funcionar isso ai da uma ajuda!
Ou se existir uma forma de variar esse sinal da saida conforme vou aumentando o peso proporcionalmente de 0 a 255 ia ser melhor ainda!
Valeuu
Tags:
Qual erro aparece?
Tente assim (pelo menos foi o que deu pra perceber no código que você postou aqui):
if (peso >=30){
val=254;//=24volts tensao da folha esta fraca portanto ira frear mais
analogWrite(solenoide,val);
}
else {
if (peso <=31>=51){
val=120;
analogWrite(solenoide,val);//12volts ; tensao está ideal
}
else {
if (peso <=51){
val=60;
analogWrite(solenoide,val); //6volts ; tensao está alta portanto ira frear menos
} // <- estava faltando esse para fechar o if acima
} // <- estava faltando esse para fechar o else acima
} // <- estava faltando esse para fechar o primeiro else
Qualquer coisa depois posta pra ver o que podemos fazer se ocorrer outro erro.
Então Raphael,
Não é um erro de compilação..esse ultimo else simplesmente ele nao le ele funciona até a segunda escolha ,
e apartir dessa terceira escolha o peso fica menos 50 e ele nao passa o val=60..
escrevendo assim funciona legal:
if (peso >=30){
val=254;//=24volts tensao da folha esta fraca portanto ira frear mais
analogWrite(solenoide,val);
} else {
if (peso <=31){
val=60;
analogWrite(solenoide,val);//6volts ; tensao está alta portanto ira frear menos
Mas eu precisava das 3 escolhas
Nao sei oque é..acabei de testar esse que vc postou..mesma coisa
Então tente:
if (peso <=30) // inverti os sinais, estavam redundantes
{
val=254;//=24volts tensao da folha esta fraca portanto ira frear mais
analogWrite(solenoide,val);
}
else if (peso >=51) // inverti os sinais, estavam redundantes
{
val=60;
analogWrite(solenoide,val); //6volts ; tensao está alta portanto ira frear menos
}
else
{
val=120;
analogWrite(solenoide,val);//12volts ; tensao está ideal
}
Os sinais estavam redundantes >=30 incorrerá em valores semelhantes a <=51.
Tente agora e me diga o que acontece.
Pelo que entendi do seu código vc quer o seguinte:
* Se peso for igual ou menor que 30 a variável val terá o valor de 254 e "escreverá" isso;
* Se peso estiver entre 31 e 51 a variável val terá o valor de 120 e "escreverá" isso;
* Se peso for igual ou maior que 51 a variável val terá o valor de 60 e "escreverá" isso.
É isso mesmo?
isso
o hardware
Bom dia,
Andei quebrando a cabeça um pouco com esse código e as informações de hardware que você mandou....
Bem....Me responda uma coisa: Você está "lendo" ou "escrevendo" algo no solenóide?
Porque, de acordo com seu código, eu leio o seguinte:
"* Se peso for igual ou menor que 30 a variável val terá o valor de 254 e "escreverá" (ou enviará) esse valor PARA O solenóide;
e peso estiver entre 31 e 51 a variável val terá o valor de 120 e "escreverá" (ou enviará) esse valor PARA O solenóide;
* Se peso for igual ou maior que 51 a variável val terá o valor de 60 e "escreverá" (ou enviará) esse valor PARA O solenóide."
É isso mesmo o que você quer?
Enviar algo para o solenóide ou "ler" algo de lá?
if (peso <=255){
val=peso;//=24volts tensao da folha esta fraca portanto ira frear mais
delay(100);
analogWrite(solenoide,val);
} else {
if (peso <=0){
val=0;
delay(100);
analogWrite(solenoide,val);//12volts ; tensao está alta portanto ira frear menos
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por