Io avevo usato HSDL-1001.
La sua caratteristica è di essere compatibile con i normali telecomandi TV.
Quindi usando tale ricevitore ti basta, come trasmettitore, usare il telecomando della tua TV.
Per quanto riguarda le tue informazioni sulla comunicazione IrDA ti allego un file che è piuttosto esaudiente:
Prova a guardare in rete magari ne trovi una versione più nuova (questa è proveniente dal mio PC)
Ciao
Giorgio
Come funziona una comunicazione IR
Moderatori:
carloc,
g.schgor,
BrunoValente,
IsidoroKZ
49 messaggi
• Pagina 2 di 5 • 1, 2, 3, 4, 5
1
voti
-

giorgio25760
2.310 1 3 5 - G.Master EY

- Messaggi: 1700
- Iscritto il: 6 dic 2009, 17:02
- Località: Brescia
0
voti
Forse è meglio che spieghi cosa voglio fare.
Voglio poter controllare un dispositivo collegato con Arduino grazie appunto ad un dispositivo che funziona secondo una comunicazione Ir, come mi ha fatto capire Giorgio c'è una standard irda.
Allora vorrei usare lo standard 1.1 come avevo visto già su internet ma comunque non mi è molto chiaro.
Allora il mio segnale entra nel encoder abilitandole un uscita, poi un modulatore PPM modula il segnale. Tale modulatore dovrebbe indicare del segnale in uscita dall' encoder quale è alto, modulandolo con un segnale impulsivo alto avente un periodo di 500 ns e invece se è basso nn viene modulato. Giusto?
Poi il dispositivo ricevente dovrebbe prima demodulare il segnale, in modo tale che possa entrare nel decoder e dare i bit in uscita che corrispondo a quelli in uscita nell' encoder?
Voglio poter controllare un dispositivo collegato con Arduino grazie appunto ad un dispositivo che funziona secondo una comunicazione Ir, come mi ha fatto capire Giorgio c'è una standard irda.
Allora vorrei usare lo standard 1.1 come avevo visto già su internet ma comunque non mi è molto chiaro.
Allora il mio segnale entra nel encoder abilitandole un uscita, poi un modulatore PPM modula il segnale. Tale modulatore dovrebbe indicare del segnale in uscita dall' encoder quale è alto, modulandolo con un segnale impulsivo alto avente un periodo di 500 ns e invece se è basso nn viene modulato. Giusto?
Poi il dispositivo ricevente dovrebbe prima demodulare il segnale, in modo tale che possa entrare nel decoder e dare i bit in uscita che corrispondo a quelli in uscita nell' encoder?
0
voti
L'integrato che ti è stato suggerito è puramente analogico: gli dai un impulso alto su TXD e lui accende il led infrarosso, leggi RXD ed hai il segnale di risposta. In pratica fa solo la parte di trasporto del layer 0 di protocollo.
Sta a te decidere come completare il layer 0 e i layer successivi (se sai cosa sono i layer di protocollo..?), se vuoi puoi realizzare un IrDa non ti serve nessun modulatore PWM, ma solo una sorgente di clock precisa nel decoder e nell'encoder, le cui frequenze di encoding/decoding non possono differire per più del 5%.
Però, l'IrDa è uno stack completo che a parte il Physical Layer, che non è dei migliori, ha vari altri livelli che consentono funzionalità anche molto complesse. Suppongo tu abbia bisogno di una comunicazione semplice di bytes dal TX all'RX giusto? in questo caso, se vuoi usare lo standard IrDa devi avere necessariamente una buona precisione nei clock delle periferiche in comunicazione, come per tutti i protocolli asincroni. Se sono due schede ad Arduino e sulle schede c'è un oscillatore o risonatore esterno, sei a posto.
In questo caso:
Usa l'integrato suggerito da giorgio direttamente collegato all'Arduino, che si occuperà della trasmissione-ricezione, e poi:
- Scegli un bit rate
- Fai correre un timer che possa contare fino a 16 in un periodo di bit
- Ogni bit che devi trasmettere:
- se è uno 0: conti 8, accendi IR per 3, conti 5 e passi al successivo
- se è un 1: conti 16 e passi al successivo
- Al ricevitore vedrai arrivare un edge di luce. Dal primo (che c'è per forza, è lo Start Bit), conti 16 con un clock alla stessa frequenza di quello per la generazione
- Da questo momento hai n finestre da 16 impulsi all'interno delle quali se ricevi luce (per almeno 1 clock, direi) è uno 0, altrimenti un 1.
Questa cosa la puoi far fare a un encoder/decoder IrDa, l'HSDL7000 per esempio (citato nelle specifiche) con il quale "parli" in seriale UART e lui pensa al resto.
Tutto questo se non hai (ripeto) problemi di clock, se non ti interessa particolarmente l'insensiblità alla luce ambiente, se non hai particolari esigenze di velocità, se il master di comunicazione è sempre lo stesso.
Sta a te decidere come completare il layer 0 e i layer successivi (se sai cosa sono i layer di protocollo..?), se vuoi puoi realizzare un IrDa non ti serve nessun modulatore PWM, ma solo una sorgente di clock precisa nel decoder e nell'encoder, le cui frequenze di encoding/decoding non possono differire per più del 5%.
Però, l'IrDa è uno stack completo che a parte il Physical Layer, che non è dei migliori, ha vari altri livelli che consentono funzionalità anche molto complesse. Suppongo tu abbia bisogno di una comunicazione semplice di bytes dal TX all'RX giusto? in questo caso, se vuoi usare lo standard IrDa devi avere necessariamente una buona precisione nei clock delle periferiche in comunicazione, come per tutti i protocolli asincroni. Se sono due schede ad Arduino e sulle schede c'è un oscillatore o risonatore esterno, sei a posto.
In questo caso:
Usa l'integrato suggerito da giorgio direttamente collegato all'Arduino, che si occuperà della trasmissione-ricezione, e poi:
- Scegli un bit rate
- Fai correre un timer che possa contare fino a 16 in un periodo di bit
- Ogni bit che devi trasmettere:
- se è uno 0: conti 8, accendi IR per 3, conti 5 e passi al successivo
- se è un 1: conti 16 e passi al successivo
- Al ricevitore vedrai arrivare un edge di luce. Dal primo (che c'è per forza, è lo Start Bit), conti 16 con un clock alla stessa frequenza di quello per la generazione
- Da questo momento hai n finestre da 16 impulsi all'interno delle quali se ricevi luce (per almeno 1 clock, direi) è uno 0, altrimenti un 1.
Questa cosa la puoi far fare a un encoder/decoder IrDa, l'HSDL7000 per esempio (citato nelle specifiche) con il quale "parli" in seriale UART e lui pensa al resto.
Tutto questo se non hai (ripeto) problemi di clock, se non ti interessa particolarmente l'insensiblità alla luce ambiente, se non hai particolari esigenze di velocità, se il master di comunicazione è sempre lo stesso.
_______________________________________________________
Gli oscillatori non oscillano mai, gli amplificatori invece sempre
Io HO i poteri della supermucca, e ne vado fiero!
Gli oscillatori non oscillano mai, gli amplificatori invece sempre
Io HO i poteri della supermucca, e ne vado fiero!
0
voti
Io ho giocherellato un po con i segnali IR sono riuscito negli scopi che mi ero prefissato (Trasmissione/Decodifica/Ricezione).....non c'è mica modo di spiegarlo in maniera più semplice?
Trovo che il modo di spiegarti possa andare bene se ti relazioni con un altro elettronico ma se ti relazioni in questo modo con uno che sta a zero si butta dalla finestra
Per esempio nel cerchietto si vede un segnale IR trasmesso:
gli spazi vuoti rappresentano uno stato logico basso mentre gli spazi con tutte le righe rappresentano lo stato logico alto modulato in frequenza.
Nel file PDF trovi alcuni esempi di trasmissione dei telecomandi possono tornare utili per capire il funzionamento di un protocollo di trasmissione.
P.S. non sto seguendo l'argomento e non sto assolutamente mettendo in dubbio le capacità o conoscenze di nessuno....sono solo di passaggio
P.S.2 per semplificarti la vita come ricevente ti consiglierei un Ricevitore Demodulatore IR TSOP2438
...e come diceva sempre mio nonno: "Nessuno nasce imparato"
0
voti
Non ti preoccupare. sono abbastanza. neofita.
comunque devo presentarlo tale progetto e devo sapere come funziona.
Allora presumo un bit rate di 1s in cui invio un segnale di 16 bit quindi il timer deve contare 16 in 62.5 ms quindi conta 1 in 3.9 ms dopo di che se uno o zero faccio come dice
obiuan.
poi non ho capito....
Scusate
comunque devo presentarlo tale progetto e devo sapere come funziona.
Allora presumo un bit rate di 1s in cui invio un segnale di 16 bit quindi il timer deve contare 16 in 62.5 ms quindi conta 1 in 3.9 ms dopo di che se uno o zero faccio come dice
obiuan.
poi non ho capito....
Scusate
0
voti
Ci sono mettendo ricevitore e trasmettitore con lo stesso clock e contando fino a 16, se è 0 il ricevitore riceve l'impulso 0, altrimenti 1.
Grande idea!!!
L' unica cosa ora ho capito come far avvenire la trasmissione, ma come faccio a capire la differenza. tra due segnali e se un segnale si ripete?
Grande idea!!!
L' unica cosa ora ho capito come far avvenire la trasmissione, ma come faccio a capire la differenza. tra due segnali e se un segnale si ripete?
0
voti
potrebbe. funzionare così?
abilito un encoder ho una sequenza di 4 bit la invio secondo il sistema di obiuan con due oscillatori aventi pari frequenza di clock se il bit è 0 alto per un periodo se è 1 basso per tutto la trasmissione e per accorgemene uso un contatore,il segnale che ricevo entra nel decoder e so il segnale in ingresso.
il punto sta come faccio ad inviare un bit alla volta, conoscere se un segnale si ripete più volte.
abilito un encoder ho una sequenza di 4 bit la invio secondo il sistema di obiuan con due oscillatori aventi pari frequenza di clock se il bit è 0 alto per un periodo se è 1 basso per tutto la trasmissione e per accorgemene uso un contatore,il segnale che ricevo entra nel decoder e so il segnale in ingresso.
il punto sta come faccio ad inviare un bit alla volta, conoscere se un segnale si ripete più volte.
0
voti
Sono insistente, ma vi prego di autarmi
Scusatemi.
Vi ringrazio
Scusatemi.
Vi ringrazio
0
voti
per inviare un bit alla volta devi prendere il bite che vuoi spedire e shiftarlo.
Non so che linguaggio usi, ma in C potresti fare:
..era questo che ti serviva?
Non so che linguaggio usi, ma in C potresti fare:
- Codice: Seleziona tutto
for (bitNum = 0; bitNum < 8; bitNum++) {
bitDaSpedire = ByteDaSpedire & 0x01; (maschera che ottiene solo il bit n°1 dal byte da spedire)
// qui spedisci "fisicamente" il bit bitDaSpedire
byteDaSpedire = biteDaSpedire >> 1; (shift a destra del byte)
}
..era questo che ti serviva?
_______________________________________________________
Gli oscillatori non oscillano mai, gli amplificatori invece sempre
Io HO i poteri della supermucca, e ne vado fiero!
Gli oscillatori non oscillano mai, gli amplificatori invece sempre
Io HO i poteri della supermucca, e ne vado fiero!
0
voti
No.... Vorrei che dal mio telecomando venisse inviato il codice in modo seriale, però non è collegato ad Arduino come fa automaticamente ad inviare un bit?
49 messaggi
• Pagina 2 di 5 • 1, 2, 3, 4, 5
Chi c’è in linea
Visitano il forum: Nessuno e 52 ospiti

Elettrotecnica e non solo (admin)
Un gatto tra gli elettroni (IsidoroKZ)
Esperienza e simulazioni (g.schgor)
Moleskine di un idraulico (RenzoDF)
Il Blog di ElectroYou (webmaster)
Idee microcontrollate (TardoFreak)
PICcoli grandi PICMicro (Paolino)
Il blog elettrico di carloc (carloc)
DirtEYblooog (dirtydeeds)
Di tutto... un po' (jordan20)
AK47 (lillo)
Esperienze elettroniche (marco438)
Telecomunicazioni musicali (clavicordo)
Automazione ed Elettronica (gustavo)
Direttive per la sicurezza (ErnestoCappelletti)
EYnfo dall'Alaska (mir)
Apriamo il quadro! (attilio)
H7-25 (asdf)
Passione Elettrica (massimob)
Elettroni a spasso (guidob)
Bloguerra (guerra)



