RAPAZ... IRCV does not name a type... revisa essa biblioteca sua... talvez tenha algum problema... eu mexo com arduino já a algum tempo
ultimamente tenho usado o ir pra controlar as aplicaçoes do windows.... sim funciona....
se tu quiser testar aih vou te mandar um código de ir funcionando
eu comentei tudo pra ti aih... foi de um carro que eu fiz a uns tempos atras qndo eu ainda tinha vida.... :P
#include <IRremote.h> // biblioteca do sensor
#include <Servo.h>
int sens = 12; // pino de saida do piezo
int IR = 8; //ENTRADA DE DADOS DO SENSOR
float control; // variavel usada pra guardar o valor já decodificado do sinal ir
int motor = 2;
Servo direcao;
int onoff;
float num;
int opcao;
int sens1;
IRrecv irrecv(IR); // nessa linha eu defino que o pino que vai decodificar a informaçao do sensor eh o pino de entrada dele o 8 receive pin
decode_results results; // chamada a funçao de decodificar o sinal ir com base nos intervalos de tempo
void setup() {
Serial.begin(9600); // a taxa de transferencia do sinal via serial
irrecv.enableIRIn(); // começar o receptor do sinal
pinMode(IR,INPUT); // configurado a entrada de dados do pino ir
pinMode(13,OUTPUT);
pinMode(12, INPUT); // configurado a saida pelo pino6
pinMode(motor,OUTPUT);
onoff = 0;
digitalWrite(motor,LOW); // atribuindo os valores de "desligado" logo no inicio do programa embora nao exista necessidade disso... é melhor assim pra me situar
direcao.attach(9);
}
void loop() {
sens1 = digitalRead(sens);
if (sens1 == LOW) {
digitalWrite(motor,LOW);
}
if (irrecv.decode(&results)) { // se o sinal enviado pelo controle... for traduzido entao
int count = Serial.available(); // caso a porta serial esteja aberta para a leitura
float control = Serial.read(); // a variavel control vai receber a info mandada pra ela;
Serial.println(results.value, DEC); // é impresso o valor do resultado decodificado em decimal
Serial.println(control,DEC); // e o valor da variavel control em decimal... aqui geralmente 0 caso nao exista dados [ ou esteja em espera]
digitalWrite(IR,HIGH); // aqui o pino do sensor infra liga pra mandar o sinal via porta digital ao arduiino
control = results.value; // a variavel control recebe o resultado do sinal decodificado
if (control == 16753245.00){ // caso a variavel control seja igual ao valor correspondente ao botao liga [ que é interpretado como este valor ]
opcao = 1; }
if (control == 16736925.00){ // caso a variavel control seja igual ao valor correspondente ao botao mode [ que é interpretado como este valor ]
opcao = 2; }
if (control == 16769565.00){ //caso a variavel control seja igual ao valor correspondente ao botao sound [ que é interpretado como este valor ]
opcao = 3; }
if (control == 16720605.00){ //caso a variavel control seja igual ao valor correspondente ao botao sound [ que é interpretado como este valor ]
opcao = 4; }
switch (opcao) { // a variavel opcao é um valor gatilho para o switch que realiza as açoes pelas quais o arduino fica responsavel
// como ligar o motor em um pino ou um led em outro
case 1:
if (onoff==0){
digitalWrite(motor,HIGH);
onoff = 1;}
else {
digitalWrite(motor,LOW);
onoff = 0;
}
break; // case 1 o pino led[pino digital 7] liga durante alguns segundos
case 2:
direcao.write(92);
break;
case 3:
direcao.write(33);
break;
case 4:
direcao.write(155);
break;
}
Serial.println(opcao); // aparece na tela o valor da variavel opcao
irrecv.resume(); // chama a fun~cao da biblioteca que deixa o arduino em repouso até receber o proximo sinal
}
}