Recensisci!
Diventa un recensore per ricevere prodotti gratuiti o scontati!
Iscriviti
Se desideri, puoi effettuare un'iscrizione gratuita al forum per entrare nella nostra community.
Ricerca Avanzata
Answers
Se necessiti di aiuto, clicca il pulsante "Cerco Aiuto" (disponibile anche per i non iscritti).
Ultimi argomenti
» Recensione Umidigi A3 Pro - Smartphone sotto i 100€
Da Admin Gio Apr 04, 2019 12:22 pm

» [Arduino] aiuto programma
Da Glak Mar Mar 12, 2019 9:30 am

» ERRORE NELLA COMPILAZIONE NEXTION
Da papat Mar Feb 26, 2019 7:11 am

» Comandare la Smart TV con Alexa senza broadlink (gratis)
Da Admin Mar Feb 19, 2019 4:31 pm

» Google Home diventa un traduttore simultaneo
Da Admin Mar Feb 19, 2019 4:27 pm

» Recensione Xiaomi Redmi 5 - Edizione 2019
Da Admin Mar Feb 19, 2019 4:24 pm

» Guadagnare lavorando per Google Street View
Da Admin Mar Feb 19, 2019 4:20 pm

» UMIDIGI F1 - Specifiche tecniche
Da Admin Mar Feb 19, 2019 4:14 pm

» display oled 168x64
Da fulvio Dom Feb 10, 2019 9:47 am

I postatori più attivi del mese
Admin
Come posso trasmettere unsegnale ir con arduino? I_vote_lcapCome posso trasmettere unsegnale ir con arduino? I_voting_barCome posso trasmettere unsegnale ir con arduino? I_vote_rcap 

Come posso trasmettere unsegnale ir con arduino?

Andare in basso

Come posso trasmettere unsegnale ir con arduino? Empty Come posso trasmettere unsegnale ir con arduino?

Messaggio Da Dock il Sab Mar 12, 2016 6:59 pm

Buona sera a tutti volevo chiedere se è possibile approfondire l'argomento di arduinio sugli infrarossi.
Da internet ho scaricato uno sketch tramite il quale è possibile decodificare il segnale di un
telecomando ad infrarossi. Nel mio caso sono interessato ai telecomandi radio e stufe a pellet
decodificando il pulsante di accensione di una radio mi esce questo:

Codice:
Decoded SAMSUNG: 8087887(32 bits)
#define Something_DEC 134772871
#define Something_HEX 8087887
Raw (68): 19500 4500 -4400 600 -550 550 -eccettera non lo riporto tutto per comodità..
 
Bene io ora voglio ritrasmettere questo codice alla radio tramite arduino con un led ir naturalmente,
ho provato a seguire qualche guida ma non ho ben capito come funziona l'inserimento del codice
e sinceramante non ho ben capito neanche  il discorso qui sopra decimale esadecimale e raw..
Qualcuno può aiutarmi Grazie Atutti in anticipo.
Dock
Dock
Livello uno
Livello uno

Messaggi Messaggi : 14
Crediti Crediti : 23
Reputazione Reputazione : 0
Data d'iscrizione Data d'iscrizione : 01.03.16
Età Età : 39

Visualizza il profilo

Torna in alto Andare in basso

Come posso trasmettere unsegnale ir con arduino? Empty Re: Come posso trasmettere unsegnale ir con arduino?

Messaggio Da Admin il Sab Mar 12, 2016 9:39 pm

Ciao, l'infrarossi è abbastanza complicato da comprendere. Personalmente l'ho provato 5-6 volte, realizzando anche un bel progettino per il condizionatore (non ancora completato) ma purtroppo... Ho bruciato il ricevitore!! Laughing Laughing

Ti passo un progetto che sono riuscito a recuperare (trasmette segnale di accensione e spegnimento):

Codice:

#include <IRremote.h> //inserisco la libreria

IRsend irsend; //nome dell'ir che assegno

void setup()
{
  Serial.begin(9600);
}
int khz=38;
unsigned acc[] ={8300,4250,400,1700,450,550,500,550,450,600,450,1650,450,600,450,600,450,600,400,650,450,550,450,600,500,550,450,600,450,600,450,600,450,600,450,600,450,1650,450,1600,450,1650,450,600,450,1650,400,650,450,550,500,1600,450,600,450,1650,450,1650,450}; //il codice indicato nel raw
unsigned off[] ={8300,4200,500,1600,500,550,500,550,500,550,450,1600,550,500,500,550,500,550,500,1600,500,1600,450,600,500,500,550,500,550,500,500,550,500,550,500,550,500,550,500,550,450,600,450,550,550,1550,500,550,500,1600,450,600,500,500,500,600,450,1600,550}; //il codice indicato nel raw

void loop() {

irsend.sendRaw(acc, sizeof(acc)/sizeof(int), khz); //accende
delay(5000);
irsend.sendRaw(off, sizeof(off)/sizeof(int), khz); //spegne
delay(5000);
}
In pratica inserisci il codice raw in un array. Per esempio nel codice ho inserito due segnali: on/ff. In pratica tu dovrai inserire questo:
Codice:
19500 4500 -4400 600 -550 550 -eccettera non lo riporto tutto per comodità..
ovviamente dovrai inserire le virgole.

Infine nel loop inserisci il comando per avviarlo. Il metodo è .sendRaw(). Questo metodo ha tre elementi (prendiamo in esempio l'accensione, mostrato nel codice):
- acc: Nome dell'array indicato nella parte sopra del programma.
- sizeof(acc)/sizeof(int): Sono le dimensioni. Devi sostituire semplicemente acc con il nome del tuo array.
- khz: E' la variabile che abbiamo indicato all'inizio.

Fammi sapere se ti è stato utile e se sei riuscito a farlo funzionare in qualche modo Ciao!
Admin
Admin
♔ Amministratore

Messaggi Messaggi : 4364
Crediti Crediti : 12158
Reputazione Reputazione : 187
Data d'iscrizione Data d'iscrizione : 08.03.11
Età Età : 20
Località Località : Brescia

Visualizza il profilo http://wikiinfo.forumattivo.it

Torna in alto Andare in basso

Come posso trasmettere unsegnale ir con arduino? Empty Re: Come posso trasmettere unsegnale ir con arduino?

Messaggio Da Dock il Sab Mar 19, 2016 8:11 pm

Ciao scusami il ritardo nella risposta ma solo oggi ho potuto applicarmi!!!
Il codice da te postato funziona benissimo sono riuscito ad inviare i segnali ir
correttamente ad una stufa a pellet della extraflame che monta elettronica micronova.
Ho preso il codice raw cancellato la prima serie di numeri e nei rimanenti ho sostituito i trattini
e gli spazi con delle virgole posto codici e schemi che ho usato.
Codice per il ricevitore:
Codice:
#include <IRremote.h>
 
int RECV_PIN = 11;
 
IRrecv irrecv(RECV_PIN);
 
decode_results results;
 
void setup()
{
  Serial.begin(9600);
  irrecv.enableIRIn(); // Start the receiver
}
 
// Dumps out the decode_results structure.
// Call this after IRrecv::decode()
// void * to work around compiler issue
//void dump(void *v) {
//  decode_results *results = (decode_results *)v
void dump(decode_results *results) {
  int count = results->rawlen;
  if (results->decode_type == UNKNOWN) {
    Serial.print("Unknown encoding: ");
  }
    else if (results->decode_type == NEC) {
    Serial.print("Decoded NEC: ");
  }
  else if (results->decode_type == SONY) {
    Serial.print("Decoded SONY: ");
  }
  else if (results->decode_type == RC5) {
    Serial.print("Decoded RC5: ");
  }
  else if (results->decode_type == RC6) {
    Serial.print("Decoded RC6: ");
  }
  else if (results->decode_type == SAMSUNG) {
    Serial.print("Decoded SAMSUNG: ");
  }
  else if (results->decode_type == JVC) {
    Serial.print("Decoded JVC: ");
  }
  else if (results->decode_type == PANASONIC) {
    Serial.print("Decoded Panasonic: ");
  }
  Serial.print(results->value, HEX);
  Serial.print("(");
  Serial.print(results->bits, DEC);
  Serial.println(" bits)");
  Serial.print("#define Something_DEC ");
  Serial.println(results->value, DEC);
  Serial.print("#define Something_HEX ");
  Serial.println(results->value, HEX);
  Serial.print("Raw (");
  Serial.print(count, DEC);
  Serial.print("): ");
  for (int i = 0; i < count; i++) {
    if ((i % 2) == 1) {
      Serial.print(results->rawbuf[i]*USECPERTICK, DEC);
    }
    else {
      Serial.print(-(int)results->rawbuf[i]*USECPERTICK, DEC);
    }
    Serial.print(" ");
  }
  Serial.println("");
}
 
void loop() {
  if (irrecv.decode(&results)) {
    dump(&results);
    irrecv.resume(); // Receive the next value
  }
}

Schema che ho seguito per connettere il ricevitore ad arduino:

Come posso trasmettere unsegnale ir con arduino? Schema11

codice per emettitore cioè il tuo Very Happy


Codice:

#include <IRremote.h> //inserisco la libreria

IRsend irsend; //nome dell'ir che assegno

void setup()
{
  Serial.begin(9600);
}
int khz=38;
unsigned
 acc[]
={8300,4250,400,1700,450,550,500,550,450,600,450,1650,450,600,450,600,450,600,400,650,450,550,450,600,500,550,450,600,450,600,450,600,450,600,450,600,450,1650,450,1600,450,1650,450,600,450,1650,400,650,450,550,500,1600,450,600,450,1650,450,1650,450};
 //il codice indicato nel raw
unsigned off[]
={8300,4200,500,1600,500,550,500,550,500,550,450,1600,550,500,500,550,500,550,500,1600,500,1600,450,600,500,500,550,500,550,500,500,550,500,550,500,550,500,550,500,550,450,600,450,550,550,1550,500,550,500,1600,450,600,500,500,500,600,450,1600,550};
 //il codice indicato nel raw

void loop() {

irsend.sendRaw(acc, sizeof(acc)/sizeof(int), khz); //accende
delay(5000);
irsend.sendRaw(off, sizeof(off)/sizeof(int), khz); //spegne
delay(5000);
}

Schema emettitore:
Come posso trasmettere unsegnale ir con arduino? Schema12
Ora mi metto a buttar giù un progettino con le cose che mi hai insegnato sento già che avrò bisogno ancora del tuo aiuto GRAZIE Very Happy
Dock
Dock
Livello uno
Livello uno

Messaggi Messaggi : 14
Crediti Crediti : 23
Reputazione Reputazione : 0
Data d'iscrizione Data d'iscrizione : 01.03.16
Età Età : 39

Visualizza il profilo

Torna in alto Andare in basso

Come posso trasmettere unsegnale ir con arduino? Empty Re: Come posso trasmettere unsegnale ir con arduino?

Messaggio Da Admin il Dom Mar 20, 2016 7:18 pm

Grande @Dock! Very Happy
Admin
Admin
♔ Amministratore

Messaggi Messaggi : 4364
Crediti Crediti : 12158
Reputazione Reputazione : 187
Data d'iscrizione Data d'iscrizione : 08.03.11
Età Età : 20
Località Località : Brescia

Visualizza il profilo http://wikiinfo.forumattivo.it

Torna in alto Andare in basso

Come posso trasmettere unsegnale ir con arduino? Empty Re: Come posso trasmettere unsegnale ir con arduino?

Messaggio Da Germano il Mar Mar 22, 2016 7:33 pm

questo mi mancava. Penso di usarlo anche io, grazie
Germano
Germano
Livello uno
Livello uno

Messaggi Messaggi : 19
Crediti Crediti : 28
Reputazione Reputazione : 2
Data d'iscrizione Data d'iscrizione : 15.02.16
Età Età : 32
Località Località : Milano

Visualizza il profilo

Torna in alto Andare in basso

Come posso trasmettere unsegnale ir con arduino? Empty Re: Come posso trasmettere unsegnale ir con arduino?

Messaggio Da Admin il Mar Mar 22, 2016 10:49 pm

Prego Very Happy
Admin
Admin
♔ Amministratore

Messaggi Messaggi : 4364
Crediti Crediti : 12158
Reputazione Reputazione : 187
Data d'iscrizione Data d'iscrizione : 08.03.11
Età Età : 20
Località Località : Brescia

Visualizza il profilo http://wikiinfo.forumattivo.it

Torna in alto Andare in basso

Torna in alto


 
Permessi di questa sezione del forum:
Non puoi rispondere agli argomenti in questo forum