Boa tarde pessoal.

Estou nessa comunidade a pouco tempo..e aprendendo bastante.

Estou novamente com um problema e certamente vou resolver rapidamente aqui (já estou a 2 horas tentando sozinho e nada...rsrsrsr) e de forma bem simples.

Problema na programação do Arduino:

Primeiro: Aciono uma porta qualquer e acende um Led por 1 segundo.

Segundo: Aciono outra porta qualquer e ela também acende um outro Led por 1 segundo.

Terceiro: Somente após esses 2 Leds acenderem, uma saída é ativada.

Parece muito fácil (e talvez realmente seja)...mas não estou conseguindo...a sintaxe do meu programa não apresenta erro...peço pra uma variável ser validada após o acendimento de cada Led (claro..estou usando uma variável pra cada acionamento de porta) e quando faço a comparação das duas variáveis validadas nada acontece....

Alguém pode me ajudar?

E claro...tem como alguém testar o funcionamento antes de mandar o algoritmo da programação?

Pois o problema parece ser fácil de resolver...a minha sintaxe não apresenta erros de compilação..mas não funciona...

Valeu pessoal!!!!

Exibições: 267

Responder esta

Respostas a este tópico

Posta o código e o circuito, teu erro pode não ser na sintaxe e sim na lógica ou na eletrônica.

Obrigado pela disposição em ajudar caro Alexandre.

Segue o código..(na verdade parte que está dando problema).

Vou fazer o circuito e já mando também.

Valeu!!!!!

void setup()
{
 
  pinMode(9, INPUT);
  pinMode(8, INPUT);
  pinMode(7, OUTPUT);
  pinMode(6, OUTPUT);
 
}
void loop()
{
 
  int checkBip = 0;
  int checkIR = 0;
 
  digitalWrite(9,LOW);
  digitalWrite(8,LOW);
  digitalWrite(7,LOW);
  digitalWrite(6,LOW);
 
  if (digitalRead(9)==HIGH)
  {
    digitalWrite(13,1);
    delay (2000);
    digitalWrite(13,0);
    checkBip = 1;
  }
 
   if (digitalRead(8)==HIGH)
  {
    digitalWrite(12,1);
    delay (2000);
    digitalWrite(12,0);
    checkIR =1;
  }
 
  if (checkBip==1 && checkIR==1)
  {
    digitalWrite(7,1);
    digitalWrite(6,1);
  }
}

Opa...código correto agora...hehehe

void setup()
{
 
  pinMode(9, INPUT);
  pinMode(8, INPUT);
  pinMode(7, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(13, OUTPUT);
  pinMode(12, OUTPUT);
}
void loop()
{
 
  int checkBip = 0;
  int checkIR = 0;
 
  digitalWrite(9,LOW);
  digitalWrite(8,LOW);
  digitalWrite(7,LOW);
  digitalWrite(6,LOW);
 
  if (digitalRead(9)==HIGH)
  {
    digitalWrite(13,1);
    delay (2000);
    digitalWrite(13,0);
    checkBip = 1;
  }
 
   if (digitalRead(8)==HIGH)
  {
    digitalWrite(12,1);
    delay (2000);
    digitalWrite(12,0);
    checkIR =1;
  }
 
  if (checkBip==1 && checkIR==1)
  {
    digitalWrite(7,1);
    digitalWrite(6,1);
  }
}

Arquivo do circuito no Proteus em anexo.

Sem palavras pessoal!!!

Anexos

Olá,

Retire estas duas linhas do void loop()

int checkBip = 0;

int checkIR = 0;

E as declare antes do void setup().

Retire as seguintes linhas do void loop()

digitalWrite(9, LOW);
digitalWrite(8, LOW);
digitalWrite(7, LOW);
digitalWrite(6, LOW);

E as coloque no void setup()

Abraço.

Outra dica, no Proteus você até pode ligar os leds diretamente aos pinos de saída, mas na montagem real nunca esqueça de ligar um resistor de valor entre 220 a 1k em série com o led.

Ok...valeu pela dica...

Eu sei que o Proteus aceita tudo..rsrrsrrrsr

Agora vou testar a sua dica na programação e já retorno o resultado pra você..

Valeu Wiechert!!!!

Caraca Wiechert...Funcionou BONITO!!!!!!!

Sem palavras!!!!

Muito obrigado mesmo pela ajuda!!!

Falar com quem conhece é outra coisa mesmo.....

Simulação, com as modificações do Wiechert

https://www.youtube.com/watch?v=Jw6k_SZVXhY&feature=youtu.be 

Abs.

Valeu Carlos.

Sempre disposto a ajudar.

Abração

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço