Contagiri con sensore IR modulato a 38KHz.

Questo sensore ...

Ammettiamo di avere una ruota piena che compie una rotazione completa in 100 ms, il che ci porta se non dico castronerie a 600 Rpm. Pratichiamo un foro sulla ruota e mettiamoci davanti da un lato il diodo trasmettitore e dall'altro il ricevitore.

Il diametro del foro è uguale a 1/100 della circonferenza della ruota. Significa che il ricevitore verrà illuminato per 1 millisecondo, giusto? E non è magari un po' troppo poco? Quanto deve essere lungo il treno di impulsi perché la logica del sensore lo possa riconoscere?

E' un esempio astratto ma nella amara pratica il mio accrocco funziona fino a certe velocità, poi zero assoluto, nel senso che smette proprio di lampeggiare il led rosso on-board alla schedina, e al pin di Arduino non arriva più nulla.

Sono io che non ho capito qualcosa di fondamentale oppure è proprio un limite dell'approccio? E in questo caso mi consigliereste di provare con IR non modulati, cioé con un semplice foto diodo? Riesco a fare un test senza amplificare l'uscita del foto diodo oppure il segnale sarebbe troppo debole per essere rilevato nella pratica?

Oddio ci sono già 6 punti interrogativi nel messaggio ... non vorrei abusare della vostra pazienza :slight_smile:

Potrei provare con un sensore a effetto hall ma non mi sorride troppo l'idea di appiccicare magneti in giro.

Grazie per ogni aiuto, un saluto a tutti. Paolo

at1839:
Quanto deve essere lungo il treno di impulsi perché la logica del sensore lo possa riconoscere?

Dipende dal sensore, quello che ho usato io in passato richiedeva almeno 0,6ms.

Riesco a fare un test senza amplificare l'uscita del foto diodo oppure il segnale sarebbe troppo debole per essere rilevato nella pratica?

La seconda. Serve un circuito per polarizzare il diodo (più o meno incasinato a seconda delle variazioni di luce ambientale a cui sarà sottoposto), più un amplificatore squadratore, e, forse, un flipflop (senza oscilloscopio per vedere cosa succede sicuramente non ne verrei fuori).

Claudio_FF:
La seconda. Serve un circuito per polarizzare il diodo

Amen. Troppo complicato. Ultima domanda, un laser? Quello non deve essere modulato immagino. Riesco però a tenerlo acceso, diciamo, tre ore di fila, oppure ho problemi di duty cycle? Alimentato indipendentemente, ovvio.

Grazie ancora. Paolo.

Puoi provare con un sistema a riflessione.

Sul bordo di metà ruota metti un nastro adesivo nero e sul''altra metà un nastro adesivo bianco o metallizzato. Proietta la luce infrarossa (o quella a cui è sensibile il sensore) sul bordo della ruota con una certa angolazione e raccogli la luce riflessa con il sensore alla stessa angolazione. Se la ruota gira a 600 Rpm ottieni impulsi da 50ms che dovrebbero essere sufficienti anche per il sensore a infrarossi a 38kHz.

Ciao,
P.

Domanda: ma perché proprio quei sensori a 38kHz? Sono quelli usati per i telecomandi, ma tu non devi mica farci passare informazioni... Se l'insieme Led+sensore è sufficientemente schermato da interferenze circostanti (se non ho capito male sono abbastanza vicini, con la ruota nel mezzo, ma eventualmente bastano due pezzatti di tubicino di plastica nero per fare un fascio "direzionale") puoi usare un nomale led IR ed un normale sensore IR, ed a quel punto forse te ne freghi di quel millisecondo durante il quale probabilmente la libreria IRremote attende una portante stabile...

docdoc:
Domanda: ma perché proprio quei sensori a 38kHz?

Perchè non ne ho trovati che non fossero modulati. Posto che usare un foto diodo non amplificato non sia una grande idea, tu hai per caso qualche riferimento per un ricevitore non modulato? Quali sarebbero i tempi di risposta di un foto transistor, che immagino non abbia il problema della amplificazione del segnale?

Inoltre una risposta digitale mi permette di agganciare interrupt,

 attachInterrupt(digitalPinToInterrupt(2), readIR, FALLING);
/////
void readIR(void)
{
  intrMillis = millis();
  intrTriggered = true;
}

mentre con una risposta analogica credo non si possa fare, dovrei chiamare analogRead in loop, temo, e questo non andrebbe bene. Ma magari su questo sbaglio, non ho reale esperienza.

@pgiagno, non è male l'idea di allungare la persistenza ...

Ciao. Paolo

at1839:
Perchè non ne ho trovati che non fossero modulati.

Di coppie led+fototransistor infrarossi ce ne sono parecchi, ad esempio QUESTI. Considera anche che gli encoder di parecchi device sono formati da "forcelle" come questa con coppie di led+sensore infrarossi, ad esempio quelli che stavano nei vecchi mouse a rotella, ma anche dentro le stampanti per consentire all'elettronica di sapere la posizione della testina in base al numero di "frange" nere/trasparenti.
E vengono usati spessissimo come rilevatori di ostacoli o inseguitori di linea come questo.

Posto che usare un foto diodo non amplificato non sia una grande idea

E chi dice che non debba essere amplificato? Anzi, spesso si usano proprio degli operazionali per avere un segnale digitale, con soglia regolabile da trimmer... E se vedi quello a forcella che ti holinkato, ha esattamente la stessa cosa, potresti realizzare una cosa simile (o disassemblare uno di quelli per separare il led di trasmissione dal circuito di ricezione), ossia:

Inoltre una risposta digitale mi permette di agganciare interrupt, mentre con una risposta analogica credo non si possa fare, dovrei chiamare analogRead in loop, temo, e questo non andrebbe bene. Ma magari su questo sbaglio, non ho reale esperienza.

No, dici bene! Ma proprio per questo con un paio di componentini risolvi e rendi tutto digitale.

Intanto grazie, a prescindere.

Ho visto i tuoi link. Bisogna tenere conto del fatto che, come ho scritto nella presentazione, sono un principiante in hardware. Non credo di essere in grado, non subito almeno, di realizzare in autonomia un circuito complesso come quello che proponi. Mi serve pappa pronta sul sensore, o quasi. L'idea dell' inseguitore però potrebbe anche reggere.

La ruota di cui parliamo è il volano di un remo ergometro C2 che costa 1.3k euro, quindi non è che ci posso fare modifiche troppo invasive. Anche per questo non va bene attaccarci sopra dei magneti, per esempio. I fori ci sono già e ho cercato di usarli. Un giro di nastro riflettente è accettabile, ci proverei.

Noto che nessuno ha commentato l'idea di usare il laser al posto degli infrarossi, sempre passando per i fori di cui sopra, è un'idea bacata e semmai per quale motivo?

Paolo.

docdoc:
Di coppie led+fototransistor infrarossi ce ne sono parecchi

IL laser è molto direttivo, puntiforme, devi centrare perfettamente il foro.
Il led IR ha un angolo di emissione superiore e non serve una grande precisione per farlo rilevare dal sensore.

at1839:
Non credo di essere in grado, non subito almeno, di realizzare in autonomia un circuito complesso come quello che proponi. Mi serve pappa pronta sul sensore, o quasi. L'idea dell' inseguitore però potrebbe anche reggere.

Esatto, quindi ti potrei consigliare di prendere un sensore come QUESTO e dissaldare il LED portandolo, tramite 2 fili, dall'altra parte della ruota, allineandolo con il sensore.

Oppure se la ruota è di un materiale opaco (al limite potresti verniciare tu la parte in questione con una vernice nera opaca) lo potresti usare com'è, basta mettere sulla ruota una qualche superficie riflettente come un adesivo metallizzato o bianco (o al contrario mantenere la superficie riflettente della ruota e mettere un adesivo nero, quindi avrai logica inversa) e quindi verificare che il sensore possa rilevare il passaggio dell'adesivo.

Il sensore costa poco, io al posto tuo ne prenderei uno per fare i primi esperimenti "sul campo" per verificare la fattibilità.

docdoc:
Esatto, quindi ti potrei consigliare di prendere un sensore come QUESTO e dissaldare il LED portandolo, tramite 2 fili, dall'altra parte della ruota, allineandolo con il sensore.

Sì, ci provo senz'altro, grazie. Ciao. Paolo