Bom dia, colegas do fórum! Algum fera podia me ajudar?
Coloquei um rele numa porta do arduino, um refletor de led, e fiz uma luz estroboscópica com o código do led blink:
void loop() {
digitalWrite(rele, HIGH);
delay(100);
digitalWrite(rele, LOW);}
Até aí, perfeito! Mas resolvi colocar um controle remoto para ligar e desligar. O problema está na parte vermelha do código abaixo. Eu preciso que ele seja repetido até eu pressionar a outra tecla, e do jeito está ele só liga e desliga o refletor uma vez.
#include <IRremote.h>// incluindo a biblioteca do infravermelho
const int RECEBE_PINO = 7; // IR no pino 7 no arduino
int rele = 10;// rele no pino 10
IRrecv ir_recebe(RECEBE_PINO); // declarando a variável do sensor
decode_results codigo_recebido; // resultado
void setup()
{
Serial.begin(9600); //mostra o resultado no computador
ir_recebe.enableIRIn(); // inicia a recepção
pinMode(rele, OUTPUT); //defini led como saída
}
void loop() {
if (ir_recebe.decode(&codigo_recebido)) {//verifica se um codigo foi recebido
if (codigo_recebido.value != 0 ){
Serial.println(codigo_recebido.value, HEX); //mostra no serial o resultado
}
if ((codigo_recebido.value == 0x39C618E7) {// verifica se foi pressionado o numero 1 do controle
digitalWrite(rele, HIGH);
delay(100);
digitalWrite(rele, LOW);
}
if ((codigo_recebido.value == 0x39C658A7) {// verifica se foi pressionado o numero 2 do controle
digitalWrite(rele, LOW);
}
ir_recebe.resume(); // recebe o próximo código
delay(200);
}
}
Como sou iniciante, não sei como resolver. Já tentei com while, mas não deu certo. Peço ajuda!
Obrigado"
Tags:
deixa eu ver se entendi. você quer ligar a strobo com um botão e desligar a strobo com o outro botão?
pelo que vi no seu código a strobo so funciona quando o botão fica pressionado. e isto mesmo que acontece?
#include <IRremote.h>// incluindo a biblioteca do infravermelho
const int RECEBE_PINO = 7; // IR no pino 7 no arduino
int rele = 10;// rele no pino 10
IRrecv ir_recebe(RECEBE_PINO); // declarando a variável do sensor
decode_results codigo_recebido; // resultado
boolean teste=1;
void setup()
{
Serial.begin(9600); //mostra o resultado no computador
ir_recebe.enableIRIn(); // inicia a recepção
pinMode(rele, OUTPUT); //defini led como saída
}
void loop() {
if (ir_recebe.decode(&codigo_recebido)) {//verifica se um codigo foi recebido
if (codigo_recebido.value != 0 ){
Serial.println(codigo_recebido.value, HEX); //mostra no serial o resultado
}
if (codigo_recebido.value == 0x39C618E7) {// verifica se foi pressionado o numero 1 do controle
teste=1;
}
if (codigo_recebido.value == 0x39C658A7) {// verifica se foi pressionado o numero 2 do controle
teste =0;
}
if (teste==1){
digitalWrite(rele, HIGH);
delay(100);
digitalWrite(rele, LOW);}
else{digitalWrite(rele, LOW);}
ir_recebe.resume(); // recebe o próximo código
delay(200);
}
}
Assim funcionou. Obrigado Napster!
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por