problema domotica segnale IR

Salve, :smiley: da poco mi sono cimentato nella realizzazione di un impianto domotico, dopo aver provato a comandare vari dispositivi wireless tutti NEC ora ho un problema nel trasmettere un segnale JVC :0 qualcuno potrebbe aiutarmi? allego il codice qui sotto grazie :slight_smile:

#include <IRremote.h>
 #define JVCPower              0xC5E8
IRsend irsend;
int  led = 12;
int val = 0;
int  bottone = 7 ;
void setup() {
  pinMode(led, OUTPUT);  
  pinMode(bottone,INPUT);
  }
 
void loop() {
   val = digitalRead(bottone);
  if (val== HIGH){
     digitalWrite (led, HIGH);
    delay (500);
    digitalWrite (led, LOW);
    delay(100); 
    irsend.sendNEC(0xFF609F, 32); 
   irsend.sendJVC(JVCPower, 16,0); 
 delayMicroseconds(50); 
 irsend.sendJVC(JVCPower, 16,1); 
 delayMicroseconds(50);
  }
  else 
  digitalWrite(led, LOW);
}

Prova qui A Multi-Protocol Infrared Remote Library for the Arduino

January 9, 2010 at 2:19 PM
Jon said...

I added the JVC protocol:

Constants:
#define JVC_HDR_MARK 8000
#define JVC_HDR_SPACE 4000
#define JVC_BIT_MARK 600
#define JVC_ONE_SPACE 1600
#define JVC_ZERO_SPACE 550
#define JVC_RPT_LENGTH 60000

ecc ecc

ho dato un occhiata ma quindi al mio codice dovrei implementare la funzione giusto? ma come faccio? scusate la domanda banale :blush:

No, @pablos ti consiglia di aggiornare la libreria.
Da dove hai scaricato la libreria?

A questo link GitHub - targettio/Arduino-IR-remote: A modified version of Ken's Library that allows sending and recieving from the same sketch
una versione modificata che riconosce altri tipi (l'originale no) (del 2011)

Libreria originale: (del 2009) GitHub - Arduino-IRremote/Arduino-IRremote: Infrared remote library for Arduino: send and receive infrared signals with multiple protocols

La libreria del 2011 ad esempio riconosce i samsung, mentre quella del 2009 no. Però sembra che in quella del 2011 non ci sia panasonic e mithubishi.

Allego la libreria in cui avevo fatto il mix delle due, ovvero la originale + la gestione samsung della modificata

Arduino-IRremote_con_samsung.zip (32.6 KB)

niente :cold_sweat: nemmeno cambiando libreria si riesce a farlo funzionare :~ consigli?

Ma, un dubbio. Il tuo codice è scopiazzato dalla demo?
#define JVCPower 0xC5E8

Qui tu devi mettere il codice che fa accendere il tuo apparecchio, dubito che ANCHE per il tuo apparecchio sia quel valore.
Presumo che per il NEC, dove usi sendNEC(0xFF609F) quel valore lo hai trovato provando con lo sketch IRrecvDump.ino (tra quelli demo) che ti da la mappatura del telecomando (colleghi un IR ricevitore ad Arduino, carichi quello sketch e premi i tasti del telecomando).
Devi fare la stessa cosa con il telecomando JVC e scoprire i valori associati ai tasti del telecomando.

0xC5E8 è giusto l'ho trovato con il telecomando.. il segnale NEC non ha nesusn problema! quando schiaccio funziona benissimo è il JVC che non va...

kingsley:
...il segnale NEC non ha nesusn problema! quando schiaccio funziona benissimo è il JVC che non va...

Quello era chiaro. Non ero sicuro tu avessi verificato il valore per il Jvc.
Hai provato a togliere il sendNec() e provare solo con i comandi per il Jvc? E' un tentativo.

appena provato niente :0 non che inventarmi! il codice mi sembra giusto.. il segnale l'ho preso dal telecomando e il circuito funziona perchè l'ho provato con il NEC e ho cambiato la libreria con quella di @nid69ita :disappointed_relieved: voi che dite? che può essere?

Altra idea, meglio pensarle tutte: il dispositivo che vuoi controllare come JVC è molto distante dal led infrarossi?

per provarlo lo metto a circa 2-3 cm dal dispositivo!

Boh, qua dice di inviarlo 3 volte !?!?!

Son strani sti Japponesi :grin:

RISOLTO :smiley: grazie mille ragazzi :smiley:
comunque mi devono spiegare perchè devo mandare il segnale tre volte XD

kingsley:
RISOLTO :smiley: grazie mille ragazzi :smiley:
comunque mi devono spiegare perchè devo mandare il segnale tre volte XD

Son Giapponesi, se non lo fanno 3 volte non son contenti :grin: :grin: :grin:

Probabilmente lo fanno come controllo di sicurezza, al posto di un checksum.