pessoal estou fazendo um projeto com o arduino e estou usando vários if e o programa entra em alguns if mesmo não sendo a condição dele, por ex:
if ((valor>5)&& (digitalRead(B1)==HIGH))
{
Executa a função

}

mesmo a condição não sendo essa ele entra nesse if toque pode ser.

Exibições: 103

Responder esta

Respostas a este tópico

Boa noite AF,

Nesta porta digital B1, você tem uma chave ou botão?

RV

O valor está maior do que 5

eu tenho uma chave no B1
e o valor sendo menor .
eu estou fazendo uma maquina de vendas de produtos.
a variável valor e a que estou usando para armazenar a leitura do NOTEIRO.
e o B1 que dei de exemplo seria dois sensores que quando for acionado um deles não deixa habilitar o botão de escolha daquele produto ou se os dois sensores estiverem acionados desabilita o NOTEIRO não podendo colocar mais dinheiro e mostra uma mensagem que não a mais produto.

e o que esta acontecendo e que mesmo os sensores não estando acionados ele entra nesse if. que eu achava que era impossível.
tentei mudar o sinal da chave de HIGH PARA LOW, e mesmo assim.

Você definiu o B1 com pull up ou pull down externo?

pinMode ( B1 , INPUT_PULLUP); 

O pull up garante um estado lógico alto quando a chave não está pressionada, dessa forma sua lógica deve testar se o botão está em Low.

na mosca! 

Já estava usando o INPUT_PULLUP na leitura das notas e não estava incomodando. depois da dica atualizei  o programa e fecho todas.

agora estou em outra situação, para girar o motor no if estou usando na condição do while, o valor para o giro e a resposta do batao estão aparentemente certa mas ele não faz o comando, mas pessoal vou dar mais uma olhada no programa e quando trancar novamente, pessoas a ajuda de vocês, sou muito grato por todos que estão me ajudando.

OBRIGADO ATE MAIS. 

Bom dia AF,

Sugestões:

1. Comente as linhas do seu sketch. Fica mais fácil entender o que vc quer fazer com cada linha

    e facilita a ajuda.
2. Clique em : " Deseja carregar arquivos? " e depois em " Escolher arquivo" e anexe o arquivo
    com o seu sketch.   

3  Anexe ou poste desenhos, esquema, links, sobre seu projeto e os componentes dele, tai como

      sensores, etc.
      Com estas informações, ficará mais fácil entendermos seu projeto, sua dificuldade e melhorar

      a condição de ajuda.

RV

obrigado RV pela ajuda.
assim que puder já mando as informações, estava tentando de novo agora, fazendo intertravamentos no if, para que só entrasse nele se realmente os sensores estivessem em LOW, e mesmo assim entra na condição.

maquina.txt

pessoal desculpa qualquer coisa , eestou mandando 

as info pelo celular, obrigado por me ajudar.

a parte de hardware e simples um NOTEIRO que quando o valor e atingido libera os relê dos botões, cada botão e referente a um produto, se faltar alguns deles, não e liberado aquele do mesmo, se faltar os dois produtos aciona o relê do NOTEIRO para não poder inserir mais dinheiro. o que verifica se ha produto ou não são duas chave suwich.

depois de liberado os botões quando tem o pulso da escolha de alguns deles gira o motor com os passos necessário para liberar o produto. 

Display que estou usando e com i2c 20x4

Bom dia JAF.

Em qual if seu code está falhando?

RV

boa tarde RV. 

ELE estava alternando entre os if , mas com a Judá do nosso colega atualizei usando o INPUT_ PULLUP.

e fecho todas, conto com sua ajuda RV para as eventuais duvidas, quando estiver com o programa atualizado anexo de novo.

OBRIGADO.

usa o Serial.print para printar as condições do seu if pois se ele esta entrando no if então é porque as condições estão de acordo

revisa o o botão se esta como pullup no código ou se ele esta com uma resistência para fazer a função de pullup.

obrigado pela dica usei como me falou e consegui ver exatamente em quais os if ele estava entrando.

RSS

Destaques

Registre-se no
Lab de Garagem
Clicando aqui

Convide um
amigo para fazer
parte

curso gratis de arduino

© 2018   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço