Feedback da un sensore a effetto Hall con video

Sensore ad effetto hall

I sensori ad effetto Hall possono rilevare la presenza di un campo magnetico e produrre una tensione di uscita quando viene rilevato. Sensori ad effetto Hall, se utilizzati conattuatori lineari, sono tipicamente posizionati all'interno del riduttore dell'attuatore insieme a un disco magnetico. Quando l'attuatore lineare si estende o si ritrae, questo disco ruota oltre il sensore ad effetto hall che fa sì che il sensore produca un'uscita digitale sotto forma di un impulso di tensione. Questi impulsi possono essere contati e utilizzati per determinare di quanto si è spostato l'attuatore.

Come leggere il feedback da un attuatore lineare

Feedback di posizione da un sensore a effetto Hall

Uno svantaggio dell'utilizzo di un sensore ad effetto Hall per il feedback di posizione è che non misurano una posizione assoluta. Invece producono impulsi che possono essere contati per determinare di quanto si è spostato l'attuatore. Per utilizzare questi impulsi per il feedback di posizione, dovrai utilizzare un file microcontrollore contare gli impulsi prodotti. Per fare ciò, dovrai utilizzare i pin di interrupt esterni del tuo microcontrollore per contare questi impulsi man mano che si verificano. Gli interrupt esterni sono pin che rilevano una variazione di tensione e nel nostro caso possono essere utilizzati per rilevare l'impulso di tensione dal sensore ad effetto hall. Dovrai consultare la scheda tecnica del tuo microcontrollore per assicurarti quali pin del tuo microcontrollore possono essere utilizzati come pin di interrupt. Utilizzando un file Arduino Uno ad esempio, i pin 2 e 3 possono essere utilizzati per interrupt esterni. Dopo aver selezionato un pin di interruzione appropriato, è possibile collegare il filo dell'uscita del sensore effetto hall a quel pin, nonché collegare la tensione di ingresso a 5V e la massa a un pin di terra.

Collegamento del sensore a effetto Hall ad Arduino 

L'esempio di codice seguente mostra come impostare un interrupt nell'IDE di Arduino in cui verrà attivato l'interrupt sul fronte di salita dell'impulso di tensione. È possibile impostare l'attivazione dell'interruzione in diversi punti di una variazione di tensione e consultare la scheda tecnica del microcontrollore per determinare le opzioni disponibili. L'ultimo aspetto che devi fare per impostare il tuo interrupt è scrivere la tua routine di servizio di interrupt, che è la funzione che il codice eseguirà ogni volta che viene attivato l'interrupt. Questa funzione dovrebbe essere breve e svolgere solo compiti semplici come contare il numero di impulsi dal nostro sensore ad effetto Hall. La funzione countSteps () nell'esempio di codice seguente viene utilizzata per contare il numero di impulsi dal sensore ad effetto hall.

Per utilizzare questi impulsi per determinare un valore di posizione, è necessario conoscere la posizione precedente dell'attuatore lineare e la direzione in cui si muove l'attuatore lineare. Il microcontrollore saprà già in che direzione stai guidando il tuo attuatore lineare, quindi puoi semplicemente impostare una variabile per tracciare la direzione dell'attuatore nel tuo codice che verrà utilizzata per determinare se aggiungere o sottrarre gli impulsi dalla posizione precedente. Dopo aver aggiornato la tua posizione, dovrai azzerare gli impulsi contati. L'esempio di codice seguente mostra una funzione che aggiorna la posizione in base al numero di impulsi contati. Una volta ottenuta una posizione in termini di impulsi, è possibile convertirla in pollici utilizzando la specifica impulso per pollice dell'attuatore lineare. Nell'esempio di codice riportato di seguito, la corsa dell'impulso per pollice è 3500.

Homing il tuo attuatore lineare

Per utilizzare con precisione il feedback di posizione da un sensore ad effetto Hall, è necessario conoscere sempre la posizione iniziale del proprio attuatore lineare. Anche se alla prima accensione del sistema, il microcontrollore non sarà in grado di dire se l'attuatore è esteso o meno. Ciò richiederà di posizionare il tuo attuatore lineare in una posizione nota. Per posizionare il tuo attuatore lineare, dovrai guidarlo in una posizione nota, ad esempio completamente retratto. Potresti anche farne uso finecorsa esterni per impostare la posizione nota su un punto diverso da quello completamente esteso o retratto. Usando il codice Arduino sotto come esempio, vorremo impostare un ciclo WHILE che guiderà il nostro attuatore lineare verso la tua posizione nota, in questo caso completamente retratto. Sappiamo che sei nella nostra posizione nota perché l'interruzione del sensore ad effetto Hall non si innescherà. In questo caso, controlliamo se la variabile steps è cambiata o meno per determinare se l'interrupt è stato attivato. Dobbiamo anche assicurarci che sia trascorso abbastanza tempo per aspettarci che l'interrupt venga attivato, per questo utilizziamo la funzione millis () che restituisce il tempo in millisecondi dall'inizio del codice e lo confrontiamo con il timestamp precedente . Una volta stabilito che l'attuatore lineare è nella nostra posizione iniziale, smettiamo di azionare l'attuatore, ripristiniamo la variabile dei passi e usciamo dal ciclo WHILE.

Trattare con falsi trigger

Sebbene i sensori ad effetto hall non siano sensibili al rumore elettrico come un potenziometro, il rumore elettrico potrebbe comunque influire sul segnale di uscita. Il rimbalzo dell'interruttore può anche essere un problema con i sensori ad effetto hall che possono attivare il conteggio di falsi impulsi, il che influirebbe sulla distanza che il microcontrollore pensa che il tuo attuatore lineare si sia spostato. Alcuni impulsi extra non influenzeranno molto il posizionamento poiché ci sono migliaia di impulsi per pollice, ma nel tempo potrebbe essere un problema più grande. Puoi combattere questi problemi utilizzando un timer interno per filtrare i falsi trigger. Poiché è possibile determinare la frequenza con cui ci si aspetta che vengano rilevati nuovi impulsi, è possibile filtrare quando l'interruzione è stata attivata dal rumore. Nell'esempio di codice riportato di seguito, trig-Delay è il ritardo tra ogni impulso. Se l'interruzione è stata attivata prima di questo ritardo, l'impulso non verrà conteggiato.

La durata di questo ritardo varia in base all'applicazione, ma se è troppo breve non filtra correttamente il rumore e se è troppo lungo perderà gli impulsi effettivi dall'attuatore lineare. Anche la velocità dell'attuatore lineare influirà su questo ritardo e se si desidera regolare la velocità, potrebbe essere necessario modificare questa variabile per adeguarsi alla nuova frequenza degli impulsi previsti. Per determinare con precisione un ritardo esatto tra ogni impulso, è possibile utilizzare un analizzatore logico per visualizzare il segnale effettivo dal sensore effetto hall. Sebbene ciò non sia richiesto nella maggior parte delle applicazioni, se si richiede un posizionamento molto preciso, è possibile determinare un ritardo preciso.

Un altro modo per combattere i falsi trigger è correggere il valore di posizione ogni volta che l'attuatore raggiunge una posizione nota. Come l'homing dell'attuatore lineare, se l'attuatore lineare è stato guidato in una posizione completamente retratta o estesa o se si utilizza finecorsa esterni, saprai di quanto si è spostato l'attuatore. Poiché sai quanti passi il sensore ad effetto hall deve inviare per raggiungere la tua posizione nota, puoi semplicemente correggere il valore quando lo raggiungiamo. Nell'esempio di codice riportato di seguito, questa operazione viene eseguita per le posizioni completamente estese e completamente ritratte. Poiché l'attuatore non si muoverà una volta raggiunta una di quelle posizioni, se proviamo a guidare l'attuatore e il valore di posizione non cambia, sappiamo di essere al limite. Questo metodo fornisce una soluzione pratica per garantire che il valore di posizione rimanga accurato, soprattutto se si sta ritirando o estendendo completamente l'attuatore a un certo punto durante il funzionamento. È possibile utilizzare questo metodo insieme al metodo sopra descritto che dovrebbe aiutare a mantenere l'accuratezza del valore di posizione.

Sommario

L'utilizzo di un sensore ad effetto Hall per il feedback di posizione fornisce una risoluzione molto maggiore rispetto al feedback di un potenziometro. Poiché possono esserci migliaia di impulsi per pollice di movimento, i sensori ad effetto Hall forniscono precisione e affidabilità nel posizionamento dell'attuatore lineare. I sensori ad effetto Hall forniscono anche una maggiore capacità di garantire che più attuatori lineari si muovano insieme simultaneamente poiché i conteggi degli impulsi sono più precisi della tensione variabile del potenziometro. Utilizzando il nostro FA-SYNC-X controller dell'attuatore, è anche possibile garantire che gli attuatori si muovano all'unisono indipendentemente dal carico. Per i fai-da-te, puoi verificare come assicurarti che i tuoi attuatori si muovano all'unisono usando un Arduino Qui.

Di seguito è riportato il codice di esempio completo utilizzato in questo blog ed è stato creato per controllare una lunghezza della corsa di 14 pollici Bullet Serie 36 Cal. Attuatore lineare. L'attuatore lineare viene azionato utilizzando a driver del motore, che puoi imparare a configurare Qui

[1] Monari, G. (giugno 2013) Comprensione della risoluzione negli encoder ottici e magnetici. Recuperato da: https://www.electronicdesign.com/technologies/components/article/21798142/understanding-resolution-in-optical-and-magnetic-encoders

Tags:

Share this article

Prodotti in primo piano

Linear Actuator - 12v dc
Attuatori lineari Classic Rod In Stock
From $109.99USD
water resistant IP66 Premium Linear Actuator
Attuatori lineari Premium In Stock
$129.99USD
Bullet Serie 50 Cal. Attuatori lineari
Bullet Serie 50 Cal. Attuatori lineari In Stock
From $279.99USD

Hai bisogno di aiuto per trovare l'attuatore giusto?

Progettiamo di precisione e produciamo i nostri prodotti in modo da ottenere prezzi diretti dai produttori. Offriamo la spedizione in giornata e un'assistenza clienti competente. Prova a utilizzare il nostro calcolatore dell'attuatore per ottenere aiuto nella scelta dell'attuatore giusto per la tua applicazione.