Olá, eu montei esse programa no caso ele faz com que 3 leds se deslocarem para direita e para esquerda apertando dois botões manuais ou dois botões no controle remoto, porém quando utilizo o controle remoto os leds se deslocam sem parar, o intuito é que eles se desloquem a cada click.
Alguém tem alguma dica pra me ajudar?
#include <IRremote.h>
#define botao1 8
#define botao2 9
#define retorna 0x1FE40BF
#define avanca 0x1FEC03F
int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);
decode_results results;
void led();
int desloca = 0x01;
void setup()
{
for(short i=0x00;i<0x08;i++) pinMode(i, OUTPUT);
pinMode(8, INPUT_PULLUP);
pinMode(9, INPUT_PULLUP);
Serial.begin(9600);
irrecv.enableIRIn(); // Start the receiver
}
void loop() {
if (irrecv.decode(&results)) {
Serial.println(results.value, HEX);
irrecv.resume(); // Receive the next value
}
PORTD = desloca;
led();
}
void led()
{
if(!digitalRead(botao1))
{
delay(500);
desloca = desloca 1;
if(desloca > 0x10) desloca = 0x01;
}
if(!digitalRead(botao2))
{
delay(500);
desloca = desloca >> 1;
if(desloca == 0x00) desloca = 0x10;
}
if(results.value == retorna)
{
delay(500);
desloca = desloca 1;
if(desloca > 0x10) desloca = 0x01;
}
if(results.value == avanca)
{
delay(500);
desloca = desloca >> 1;
if(desloca == 0x00) desloca = 0x10;
}
}
Tags:
Oi LS, boa tarde.
Este seu code é uma ótima oportunidade para entender o que eu sempre falo sobre postar
codes na área de texto.
Veja o seu code postado: Nas linhas assim escritas : "desloca = desloca 1; " , acredito que
deveria existir um duplo carácter de < entre a palavra desloca e o número 1, mas desaparecerem.
Isto é um dos problemas no processo de display da área de texto do site.
Qto ao seu caso, acredito que acrescentando uma linha assim: "results.value = 0;" após
cada if do deslocamento por IR, resolverá.
Cópia do code http://pastebin.com/TXn3nz6Q
Rui
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por