Problema libreria IRremote

ciao a tutti, è da un po' che uso la libreria classica IRremote per ricevere codici ir.
prima la stavo provando per inviare i codici e ho cercato degli sketch in internet di esempio.
Guardate questo:

#include <IRremote.h>

IRsend irsend;

void setup() {
}

void loop() {
    irsend.sendSony(0x68B92, 20);
    delay(100);
    irsend.sendSony(0x68B92, 20);
    delay(100);
    irsend.sendSony(0x68B92, 20);
    delay(300000);
}

non riesco a capire come funziona in due punti:

  1. come fa il programma a capire dov'è inserito il led ir per trasferire i codici. :o
  2. perchè dopo il comando sendSony c'è scritto "0x"; 68b92 è il codice esadecimale. ma non capisco perché si mette "0x";ho letto il reference della libreria qui:IRremote Library, Send & Receive Infrared Remote Control

dov'è che non mi si illumina la lampadina? D:

Non ho mai adoperato la libreria in questione quindi mi limiterò a rispondere alla seconda domanda. In C come in molti altri linguaggi esiste una predisposizione alla gestione di numeri con basi diverse dalla 10. Si possono infatti dichiarare numeri in base 16 con il prefisso 0x oppure in base 2 con il prefisso 0b oppure in base 8 con il prefisso 0o o in versione contratta con il solo 0

428946 = 0x68b92 = 0o1505622 = 01505622 = 0b1101000101110010010

Tutte queste forme sono equivalenti in C.

Se non mi sbaglio la liberia lavora con un timer e percui il pin che si puó usare é uno solo.
Ciao Uwe

grazie a tutti e due :smiley: mi avete chiarito i dubbi!

Per la Arduino Duemilanove, Diecimila, LilyPad, Mini, Fio, Nano, ecc. la libreria usa il Timer2 (pin 3).

E' possibile scegliere anche il Timer1 (pin 9), però si deve modificare la libreria (IRremoteInt.h).

Situazione simile per le altre schede.