Come leggere il feedback da un sensore ottico

Sensore ottico

Sensori ottici, se usati con Attuatori lineari,funzione molto simile a Sensori dell'effetto della sala, tranne che rilevano la luce anziché i campi magnetici [1]. I sensori ottici operano utilizzando la luce da un LED o da qualche altra sorgente di luce che viene passata attraverso un disco di codificatore. Questo disco di codificatore viene inserito per consentire alla luce di passarla periodicamente. Dall'altro lato del disco si trova un fotoDetettore, che rileva la luce quando passa attraverso le fessure nel disco e crea un segnale di uscita [1]. Man mano che l'attuatore si muove, il disco dell'encoder ruota e la luce viene rilevata dal fotoDetettore che produce un'onda quadra di impulsi di tensione. Questi impulsi possono essere usati in modo simile agli impulsi di un sensore di effetto Hall per determinare fino a che punto l'attuatore si è spostato.

Sensore ottico

Feedback posizionale da un sensore ottico

Poiché i sensori ottici funzionano abbastanza simili ai sensori di effetto Hall in termini di output, questo post sul blog coprirà brevemente come leggere il loro output per il feedback posizionale. Se stai cercando maggiori dettagli, consulta il nostro post su come leggere il feedback posizionale da un sensore di effetto sala sarà simile.

Come i sensori dell'effetto Hall, i sensori ottici avranno 3 pin a cui connettersi; Uno è la tensione di ingresso, un altro è il terreno e, infine, uno è il segnale di uscita. Per utilizzare gli impulsi sul segnale di uscita per il feedback posizionale, dovrai utilizzare un microcontrollore per contare gli impulsi prodotti. Ti consigliamo di utilizzare i pin di interrupt esterni del tuo microcontrollore per contare con precisione questi impulsi. Poiché gli interrupt esterni sono attivati ​​da una variazione di tensione, possono essere utilizzati per rilevare ogni impulso mentre si verificano. Dopo aver impostato l'interrupt nel codice del microcontrollore, dovrai impostare una routine di servizio di interruzione che conta gli impulsi mentre si verificano. Le funzioni CountSteps () nell'esempio del codice seguenti vengono utilizzate per contare il numero di impulsi dal sensore ottico.

Per utilizzare questi impulsi per determinare un valore posizionale, dovrai conoscere la posizione precedente dell'attuatore lineare e la direzione in cui l'attuatore lineare sta viaggiando. Mentre controlli in che modo si muove l'attuatore lineare, puoi semplicemente impostare una variabile Per tracciare la direzione dell'attuatore nel tuo codice. Questa variabile può essere utilizzata per determinare se è necessario aggiungere o sottrarre gli impulsi dalla posizione precedente. Dopo aver aggiornato la tua posizione, dovrai ripristinare gli impulsi conteggiati a zero. L'esempio del codice seguente mostra una funzione che aggiorna la posizione in base al numero di impulsi conteggiati. Una volta che hai una posizione in termini di impulsi, è possibile convertire in pollici usando la specifica impulso per pollice dell'attuatore lineare.

Homing il tuo attuatore lineare

Per utilizzare accuratamente il feedback posizionale da un sensore ottico, è necessario conoscere sempre la posizione di partenza del tuo attuatore lineare. Anche se quando si accende per la prima volta il tuo sistema, il tuo microcontrollore non sarà in grado di dire se l'attuatore è esteso o meno. Questo ti richiederà a casa il tuo attuatore lineare in una posizione nota. A casa il tuo attuatore lineare, dovrai guidarlo in una posizione nota, come completamente retratto. Usando il codice Arduino di seguito come esempio, abbiamo impostato un giro di tempo che guiderà il nostro attuatore lineare verso la nostra posizione nota. In questo esempio, sapremo che siamo nella nostra posizione nota controllando se l'interrupt è stato attivato controllando se la variabile dei passaggi è cambiata. Dobbiamo anche assicurarci che sia passato abbastanza tempo per aspettarci che l'interrupt venga attivato, per questo utilizziamo la funzione Millis () e confrontiamo con il timestamp precedente. Una volta che abbiamo stabilito che l'attuatore lineare è nella nostra posizione di casa, smettiamo di guidare l'attuatore, ripristinare la variabile dei passaggi ed uscire dal ciclo while.

Trattare con falsi trigger

Mentre i sensori ottici non sono sensibili al rumore elettrico come i potenziometri, il rumore elettrico e il rimbalzo dell'interruttore possono ancora influire sul segnale di uscita e possono innescare falsi impulsi da contare. Alcuni impulsi extra non influenzeranno molto il posizionamento, ma nel tempo potrebbe essere un problema più grande. È possibile combattere questi problemi utilizzando un timer interno per filtrare i falsi trigger. Dato che puoi determinare la frequenza che ti aspetteresti da rilevare nuovi impulsi, puoi filtrare quando l'interrupt è stato attivato dal rumore. Nel campione di codice seguente, Trigdelay è il ritardo tra ciascun impulso. Se l'interrupt è stato attivato prima di questo ritardo, l'impulso non verrà conteggiato. Il periodo di tempo di questo ritardo varierà in base alla tua applicazione, ma se è troppo corto non filtra correttamente il rumore e se è troppo lungo, perderà gli impulsi reali dal sensore ottico.

Un altro modo per combattere i falsi trigger è correggere il valore posizionale ogni volta che l'attuatore raggiunge una posizione nota. Come la casa dell'attuatore lineare, se hai guidato l'attuatore lineare in una posizione completamente retratta o estesa o se si utilizza switch di limite esterni, saprai quanti impulsi ci vogliono per raggiungere quella posizione. Puoi quindi semplicemente correggere il valore posizionale usando quel valore quando raggiungi quella posizione nota. Nel campione di codice seguente, questo viene fatto per le posizioni completamente estese e completamente retratte. Questo metodo fornisce una soluzione pratica per garantire che il valore posizionale rimanga accurato.

Riepilogo

I sensori ottici utilizzati per il feedback posizionale forniscono una maggiore precisione e risoluzione rispetto ai sensori di effetto Hall e ai potenziometri, pur avendo punti di forza e svantaggi simili ai sensori di effetto Hall. Sebbene non misurino la posizione assoluta e richiedano una posizione iniziale nota per fornire un valore posizionale, il gran numero di impulsi per pollice consente l'affidabilità nel posizionamento e garantire che più attuatori lineari si muovano contemporaneamente. Utilizzando il nostro FA-SYNC-X controller dell'attuatore o tramite codice aggiuntivo, puoi anche assicurarti che gli attuatori si muovano all'unisono indipendentemente dal carico.

Per un esempio di codice completo, consulta il nostro blog su Come leggere il feedback posizionale da un sensore di effetto sala quanto sarà simile. Valori come impulsi per pollice e ritardi nel tempo tra gli impulsi sono alcune delle modifiche che dovrai apportare per utilizzare quel codice per utilizzare accuratamente il sensore ottico.

 

[1] Paschotta, R. Articolo su sensori ottici. Recuperato da:https://www.rp-photonics.com/optical_sensors.html

Share This Article
Tags: