Trasmettitore IR con arduino.

Salve a tutti ragazzi, volevo creare una specie di telecomando ad infrarossi con arduino utilizzando un led appunto IR.. Sapete dirmi come potrei fare per farlo funzionare a 38 khz?? Voglio dire.. Io devo in pratica mandare un codice a 32 o a 16 bit ma non so come fare... Potere aiutarmi?

usa la libreria http://www.arcfn.com/2009/08/multi-protocol-infrared-remote-library.html

Ciao Uwe

Cel'ho la libreria ma non ho capito come poter fare per mandare il codice che dico io, anzi non sò proprio come fare.. Io non voglio ricevere ma spedire un codice con un led ir..

la libreria fa entrambe le cose: riceve e spedisce. Cosa vuoi pilotare? Ciao Uwe

Vorrei creare un telecomando per tv... Ho tutti i codici corrispondenti.. nell'esempio c'ès critto

irsend.sendSony(0xa90, 12);

quel 12 che stàa dire? ed in oltre perchè Sony? mi stà ad indicare una frequenza che usa? tipo 38khz 40 ecc? coem faccio a saperlo? ed in oltre quante cifre di codice posso mandare? cioè, quanti bit?

Le ditte usano diverse codifica e modulazione per i comandi. Nel link che viene indicato trovi spiegazioni. http://www.sbprojects.com/knowledge/ir/ir.htm Puoi anche con la libreria prima "leggere" un codice e poi usare quel codice per pilotare la TV. ciao Uwe

si, quasto lo sapevo, ed avevo pensato pure alla possibilità di creare una cosa di queste, però vorrei capire una vosa... il codice 0xA90 è un codice a 12 bit... sarebbero xxxx xxxx xxxx, quel 12 scritto dopo il codice starebbe ad indicare quanti bit dev'essere un codice? se io volessi mandare 0xffffffff sarebbero 32 bit, quindi dovrei sscrivere (0xffffffff, 32); giusto?

potrebbe essere. Non ho controllato. Ciao Uwe

capito, ultima domanda poi non rompo più xD come mai c'è quel Serial.read condizionato dall'if? che cosa deve legere dalla seriale? e poi... nel programma non specifica che numero di pin è il led... Come faccio a dirgli di mandare questo codice su un diverso pin PWN?

dici in questo codice?

#include <IRremote.h>
IRsend irsend;
void setup()
{
  Serial.begin(9600);
}

void loop() {
  if (Serial.read() != -1) {
    for (int i = 0; i < 3; i++) {
      irsend.sendSony(0xa90, 12); // Sony TV power code
      delay(100);
    }
  }
}

La seriale viene solo usata come pulsante da schiacciare. Il valore -1 é quando una funziona da un risultato errato.
if (Serial.read() != -1) { aspetta che arriva qualcosa sulla seriale.

La libreria usa PIN 3 del Arduino per pilotare il LED IR e PIN 11 per ricevere dal ricevitore.
Per cambiare il PIN devi intervenire sulla libreria. Non so dirti se puoi farlo senza problemi o se ci sono vincoli nel uso dei pin, visto che certi pin hanno funzioni speciali implementati nell hardware.

Ciao Uwe

uhmm… capito… pekkato perkè per il ricevitore il pin èp possibile cambiarlo direttamente da programma… poii ho provato un codice corrispondente allo stereo, effettivamente funzione il led funziona anche xk col cellulare e la fotocameraq ho visto che si accendeva però lo stereo non ha fatto una piega, evidentemente il tipo di diodo infrarosso non è compatibile, comunque grazie infinite per l’aiuto :slight_smile:

Info utili: http://jumpjack.wordpress.com/2008/05/20/worlds-cheapest-remote-control-replicator-just-1/