- Messaggi: 130
- Ringraziamenti ricevuti 11
Doppia barriera IR per controllo accensione/spegnimento luci
8 Anni 11 Mesi fa - 8 Anni 9 Mesi fa #1
da Claudio_F
Doppia barriera IR per controllo accensione/spegnimento luci è stato creato da Claudio_F
Dopo una prima esperienza con le codifiche IR sono alle prese con un progetto di accensione/spegnimento automatico delle luci in una stanza.
Ero partito con un semplice led infrarossi alimentato a circa 40khz e una fotocellula (TSOP) che leggeva l'interruzione del fascio luminoso. Chiaramente non era in grado di capire se stavo uscendo o se era entrata una seconda persona, così spesso mi trovavo al buio. A questo punto la soluzione era una doppia fotocellula in modo che a secondo di quale veniva oscurata per prima potevo determinare se ero entrato o uscito. Più facile a dirsi che a farsi, perché gli "if" per determinare se ero entrato, se uscivo, se mi ero solo affacciato, cominciavano a diventare troppi. Fortunatamente analizzando lo stato delle uscite delle fotocellule ho trovato una stretta similitudine a quella degli encoder rotativi, così applicando lo stesso algoritmo tutti i problemi erano risolti. Era il mio primo approccio ai PIC così l'unico chip reperibile in zona è stato il 16F628. Ho montato il circuito su un millefori e dopo varie prove il software che allego insieme allo schema sembrava funzionare. Sembrava perché se passando davanti un cartoncino tutto funzionava, anche se passato velocemente, all'atto pratico (passando fisicamente tra le fotocellule) frequentemente avevo risultati inattendibili. Ho provato a mettere delle lenti per concentrare i fasci ma niente, probabilmente funzionando alla stessa frequenza si creavano delle riflessioni che alteravano il funzionamento.
Non so se qualcuno ha già sviluppato qualcosa di simile e puo dare suggerimenti, comunque ora penso di modulare i segnali inviati dai due led emettitori con codici diversi e invece di rivelare l'interruzione del fascio rilevare la mancanza delle codifiche in modo da non avere interferenze.
Progetto Finale Documentato
Ero partito con un semplice led infrarossi alimentato a circa 40khz e una fotocellula (TSOP) che leggeva l'interruzione del fascio luminoso. Chiaramente non era in grado di capire se stavo uscendo o se era entrata una seconda persona, così spesso mi trovavo al buio. A questo punto la soluzione era una doppia fotocellula in modo che a secondo di quale veniva oscurata per prima potevo determinare se ero entrato o uscito. Più facile a dirsi che a farsi, perché gli "if" per determinare se ero entrato, se uscivo, se mi ero solo affacciato, cominciavano a diventare troppi. Fortunatamente analizzando lo stato delle uscite delle fotocellule ho trovato una stretta similitudine a quella degli encoder rotativi, così applicando lo stesso algoritmo tutti i problemi erano risolti. Era il mio primo approccio ai PIC così l'unico chip reperibile in zona è stato il 16F628. Ho montato il circuito su un millefori e dopo varie prove il software che allego insieme allo schema sembrava funzionare. Sembrava perché se passando davanti un cartoncino tutto funzionava, anche se passato velocemente, all'atto pratico (passando fisicamente tra le fotocellule) frequentemente avevo risultati inattendibili. Ho provato a mettere delle lenti per concentrare i fasci ma niente, probabilmente funzionando alla stessa frequenza si creavano delle riflessioni che alteravano il funzionamento.
Non so se qualcuno ha già sviluppato qualcosa di simile e puo dare suggerimenti, comunque ora penso di modulare i segnali inviati dai due led emettitori con codici diversi e invece di rivelare l'interruzione del fascio rilevare la mancanza delle codifiche in modo da non avere interferenze.
Progetto Finale Documentato
Ultima Modifica 8 Anni 9 Mesi fa da Mauro Laurenti.
Si prega Accedi o Crea un account a partecipare alla conversazione.
- Claudio_F
- Autore della discussione
- Premium Member
Riduci
Di più
8 Anni 11 Mesi fa #2
da alfa75
Risposta da alfa75 al topic Doppia barriera IR per controllo accensione/spegnimento luci
Ciao Claudio
hai provato a inserire un pezzetto di tubo in gomma o plastica sulle fotocellule per vedere se migliora un pò?
hai provato a inserire un pezzetto di tubo in gomma o plastica sulle fotocellule per vedere se migliora un pò?
Si prega Accedi o Crea un account a partecipare alla conversazione.
- alfa75
- Platinum Member
Riduci
Di più
- Messaggi: 527
- Ringraziamenti ricevuti 86
8 Anni 11 Mesi fa #3
da Mauro Laurenti
Risposta da Mauro Laurenti al topic Doppia barriera IR per controllo accensione/spegnimento luci
Salve Claudio,
solo modulare il segnale TX non basterebbe.
Devi far lavorare i diodi TX in maniera alternata e con codice diverso.
Se invii due codici diversi nello stesso tempo e' come crearne un terzo diverso e non lo riconosceresti.
I "disturbatori infrarossi" lavorano proprio in questo modo, inviano un segnale IR sovrapposto a quello valido...per cui hai codici risultanti non validi.
Devi pertanto avere due codici o semplicemente frequenze diverse (generate da un NE555) ma attivate in maniera alternata.
In questo modo anche se in RX ricevi sempre un segnale su entrambi i sensori, in base alla frequenza conosci TX attivo.
Se hai un cavo tra il tuo modulo RX e TX puoi sincronizzare il tutto e non necessitare delle due frequenze.
Saluti,
Mauro
solo modulare il segnale TX non basterebbe.
Devi far lavorare i diodi TX in maniera alternata e con codice diverso.
Se invii due codici diversi nello stesso tempo e' come crearne un terzo diverso e non lo riconosceresti.
I "disturbatori infrarossi" lavorano proprio in questo modo, inviano un segnale IR sovrapposto a quello valido...per cui hai codici risultanti non validi.
Devi pertanto avere due codici o semplicemente frequenze diverse (generate da un NE555) ma attivate in maniera alternata.
In questo modo anche se in RX ricevi sempre un segnale su entrambi i sensori, in base alla frequenza conosci TX attivo.
Se hai un cavo tra il tuo modulo RX e TX puoi sincronizzare il tutto e non necessitare delle due frequenze.
Saluti,
Mauro
Si prega Accedi o Crea un account a partecipare alla conversazione.
8 Anni 11 Mesi fa #4
da Claudio_F
Risposta da Claudio_F al topic Doppia barriera IR per controllo accensione/spegnimento luci
Attivate in maniera alternata, immagino sarebbe equivalente a modulare i due Led emettitori con un segnale in opposizione. e quindi sincronizzare il tutto potrebbe essere fatto con due xor come in allegato. Finchè i fasci non vengono interrotti gli ingressi degli xor restano uguali e quindi l'uscita è 0, al passaggio gli xor vanno a 1 e sono queste due uscite che mando al PIC. Solo come compensare il ritardo dovuto al trasferimento ottico del segnale o può essere trascurato?
Grazie dei suggerimenti, ormai stavo per rinunciarci.
Grazie dei suggerimenti, ormai stavo per rinunciarci.
Si prega Accedi o Crea un account a partecipare alla conversazione.
- Claudio_F
- Autore della discussione
- Premium Member
Riduci
Di più
- Messaggi: 130
- Ringraziamenti ricevuti 11
8 Anni 11 Mesi fa #5
da Claudio_F
Risposta da Claudio_F al topic Doppia barriera IR per controllo accensione/spegnimento luci
Pensavo di far generare gli impulsi per i LED direttamente al PIC
40Khz corrisponde ad un periodo di 25uS (12,5uS on + 12,5uS off)
modulazione a 1Khz cioe 1000uS (500uS on + 500uS off)
dovrei:
inviare al primo diodo emettitore 20 impulsi da 12,5uS + 12,5uS e una pausa da 500uS, verificare che al decimo impulso (circa 250uS) l'uscita dal primo TSOP sia 1 (1=0V)
inviare al secondo diodo emettitore una pausa da 500uS e 20 impulsi da 12,5uS + 12,5uS, verificare che a 500uS + dieci impulsi (circa 750uS) l'uscita dal secondo TSOP sia 1 (1=0V)
Questo in condizione di riposo, attraversando il fascio, avrei la variazione da 1 a 0.
In questo modo i due led sono alimentati alternativamente e la lettura sui TSOP viene fatta in condizioni ottimali. Può funzionare? Allego Temporizzazioni
Grazie anticipato per ogni suggerimento.
40Khz corrisponde ad un periodo di 25uS (12,5uS on + 12,5uS off)
modulazione a 1Khz cioe 1000uS (500uS on + 500uS off)
dovrei:
inviare al primo diodo emettitore 20 impulsi da 12,5uS + 12,5uS e una pausa da 500uS, verificare che al decimo impulso (circa 250uS) l'uscita dal primo TSOP sia 1 (1=0V)
inviare al secondo diodo emettitore una pausa da 500uS e 20 impulsi da 12,5uS + 12,5uS, verificare che a 500uS + dieci impulsi (circa 750uS) l'uscita dal secondo TSOP sia 1 (1=0V)
Questo in condizione di riposo, attraversando il fascio, avrei la variazione da 1 a 0.
In questo modo i due led sono alimentati alternativamente e la lettura sui TSOP viene fatta in condizioni ottimali. Può funzionare? Allego Temporizzazioni
Grazie anticipato per ogni suggerimento.
Si prega Accedi o Crea un account a partecipare alla conversazione.
- Claudio_F
- Autore della discussione
- Premium Member
Riduci
Di più
- Messaggi: 130
- Ringraziamenti ricevuti 11
Moderatori: Mauro Laurenti, Pinna, StefA, Matteo Garia
Registrati al sito
Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.