Ricevitore IR apre relè

Ciao a tutti !

Sono nuovo nel mondo arduino ... vorrei fare una cosa molto interessante:

Collegare un sensore IR, e tramite esso si possano comandare dei relè ... Cioè se con il telecomando premo il tasto 1 apre un relè, se premo il tasto 2 apre un altro relè ...

Si può fare ?

Grazie a tutti !

sí.
guarda questa libreria:

Decodifica i segnali del telecomando.
Ciao Uwe

Ciao ti do il progetto gia fatto da me, eccoti:

http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1294258264

Grazie raga ! ora provo i vostri consiglio e vi faccio sapere ! grazie 1000

C'è un problema ... mi da il seguente errore:

sketch_feb19a.cpp: In function 'void loop()': sketch_feb19a:38: error: 'irrecv' was not declared in this scope sketch_feb19a:38: error: 'results' was not declared in this scope

cosa devo fare ?

Pare tu non abbia copiato bene il codice.

ho ho fatto copia ed incolla, ma questo errore lo fa con tutte e due le guide ! sarà forse che serve qualche libreria ? perchè in questa guida http://www.arcfn.com/2009/08/multi-protocol-infrared-remote-library.html dice che devo inserire dei file (contenuti in IRemote.zip) nel percorso arduino/hardware/libraries ma non so qual è ! uso un mac ...

Grazie

la cartella in oggetto è quella che contiene l'eseguibile di Arduino. Trova dov'è e trovi anche l'altro percorso.

Ma in quale percorso si trova su Mac ?

Io non conosco il Mac ma tu non conosci Google :P Ho trovato questo: For Mac users, go to your Applications folder, right click on the Arduino.app and select “Show Package Contents”. Then navigate through that to find the Library folder.

ahuuahhuahua Grazie 1000 ! Ma subito dopo che ho pubblicato il commento di prima, avevo fatto la stessa cosa ! hauhuahuahua

Grazie lo stesso !

Raga funziona ! Ho caricato tutto su Arduino, ho aperto il monitor, e quando premo il telecomando mi da questi valori:

1FE50AF
FFFFFFFF
1FED827
FFFFFFFF
1FEF807
1FE30CF
FFFFFFFF
1FEB04F
FFFFFFFF
1FE708F
FFFFFFFF
FFFFFFFF
1FEF00F
FFFFFFFF

ora come posso fare, ad esempio premo il tasto 1, che da valore 1FE50AF, a fare dare un valore alto ad una porta ?

tipo premo il tasto 1 ed apre un relè ???

Grazie !

if (valoreLetto == valoreCheTiInteressa){ digitalWrite(pinRele, HIGH); }

Valore letto cosa intendi ?

Ecco qua il codice, puoi aggiustarlo ?

#include <IRremote.h>

int ledPin = 9;
int RECV_PIN = 8;
IRrecv irrecv(RECV_PIN);
decode_results results;

void setup()
{  
  pinMode(9, OUTPUT);
  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
  }

  if (1FE50AF == 1FE50AF){
 digitalWrite(9, HIGH);
}
}

anerDev: Valore letto cosa intendi ?

per valoreLetto intendo i valori che leggi dal led ir e che per ora stai stampando a video.

anerDev: Ecco qua il codice, puoi aggiustarlo ?

AHhahahahahHAHHahh no. Salvo dietro pagamento, ovvio :grin:

Altrimenti come pensi di imparare? inizia dando un'occhiata quì: http://arduino.cc/forum/index.php/topic,52637.0.html

Di programmare lo so fare, ma non capisco cosa intendi !!!

Quando apro il monitor di arduino, mi da tuti questi valori

1FE50AF
FFFFFFFF
1FED827
FFFFFFFF
1FEF807
1FE30CF
FFFFFFFF
1FEB04F
FFFFFFFF
1FE708F
FFFFFFFF
FFFFFFFF
1FEF00F
FFFFFFFF

ogni valore corrisponde ad un pulsante … Ma non riesco ancora a capire cosa intendi con "valoreletto == Valorechetiinteressa " !!!

Mi legge tutti i valori del telecomando, ma a ma servono specifici valori !!!
:frowning: :frowning: :frowning: :frowning: :frowning:

Olè !!!

#include <IRremote.h>

int led1 = 12;
int led2 = 11;
int led3 = 10;
int led4 = 9;
int led5 = 8;
int RECV_PIN = 7;
IRrecv irrecv(RECV_PIN);
decode_results results;

void setup()
{  
  Serial.begin(9600);
  irrecv.enableIRIn(); // Start the receiver
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);
  pinMode(led4, OUTPUT);
  pinMode(led5, OUTPUT);
}

void loop() {
   if (irrecv.decode(&results)) {
   Serial.println(results.value, DEC);


   if(results.value == 33480735)
     digitalWrite(led1, HIGH);    
     delay(100);
     digitalWrite(led1, LOW);  
     
     irrecv.resume();
     
    if(results.value == 33444015)  
     digitalWrite(led2, HIGH);   
     delay(100);
     digitalWrite(led2, LOW);   
     
     irrecv.resume();
     
    if(results.value == 33478695)  
     digitalWrite(led3, HIGH);   
     delay(100);
     digitalWrite(led3, LOW); 
     
     irrecv.resume();
     
    if(results.value == 33486855)  
     digitalWrite(led4, HIGH);   
     delay(100);
     digitalWrite(led4, LOW); 
     
     irrecv.resume();
     
    if(results.value == 33435855)  
     digitalWrite(led5, HIGH);   
     delay(100);
     digitalWrite(led5, LOW); 
  
 }

 }