Pages: [1]   Go Down
Author Topic: Iremote urgente  (Read 3802 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Full Member
***
Karma: 0
Posts: 102
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Pessoal estou precisando fazer um negócio pra um trabalho urgente, estou usando a lib Iremote e o meu controle é assim, cada botão tem um código, quando clica no botão power e solta rapidinho ele envia 551489775, e quando clica e segura ele envia 551489775 uma vez e logo depois tudo que ele envia é 4294967295. Portanto eu fiz um código pra quando eu segurar o botão power ele acenda um LED, mas não está funcionando. Alguém pode analisar o código? Muito obrigado!

if (code=="551489775") {
      while(code=="4294967295") {
digitalWrite(led, HIGH);
      }
    }  else {
       digitalWrite(led, LOW);
    }
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 2
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Assim realmente não vai funcionar, pq você está testando se o código é igual a ...775, logo ele não poderá ser também igual a ...295.

entendeu?

se ele é ...775 --> enquanto ele também for ...295 .  não tem como.

tenta testar os dois juntos usando o "ou" ( "||" )

if (code == ......775 || ......295) {
    faça o que vc quer
}
else {  faça outra coisa }


Isso deve funcionar se ele enviar o código enqto estiver apertado e qndo vc soltar ele parar de enviar, ou enviar outra coisa.


Espero que dê certo.
Logged

0
Offline Offline
Full Member
***
Karma: 0
Posts: 102
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Olá.

Não posso fazer isso porque não quero que ele seja ou um ou outro, tem que ser um e depois o outro.
Eu mudei pra isso:

if (code=="551489775") {
funcao_que_busca_o_novo_codigo();
     while(code=="4294967295") {
digitalWrite(led, HIGH);
     }
   }  else {
      digitalWrite(led, LOW);
   }
Depois que ele acha o número ele busca pelo novo código, mas continua não funcionando!
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 1
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Olá,
Sou novo aqui no Forum e em arduino, Estou adquirindo a minha Placa ainda, mas no entanto sou programador por oficio e hobby.

Pelo que entendi não existe a pocibilidade de contar se o botao está pressionado, e esse controle ocorre dentro da area de ação do botao. Entao tente isso.

if (code=="551489775") {
    while(code=="551489775") { // Garante que manteve o botao pressionado
        conta = conta + 1 ; // crie essa variavel conta quantas vezes rodou esse while(tempo de pressionamento)
        digitalWrite(led, HIGH);
        if(conta >= 5){ // Após algum tempo presionado permite trocar o código.
           conta = 0; // Zera o contador.
           code = "4294967295"; // Muda o codigo.
        }
    }
  }  else {
     digitalWrite(led, LOW);
  }
Logged

Pages: [1]   Go Up
Jump to: