Go Down

Topic: Aiuto Sensore di Hall (Read 2289 times) previous topic - next topic

gcblack

Buonasera, vi spiego brevemente il mio problema. Ho un disco con su cui è installato un magnete posizionato su un albero motore. Sui lati est ed ovest in prossimità del disco ho due sensori di hall A1302 collegati ad arduino. Vorrei che qando il magnete passa in corrispondenza del sensore Est mi faccia accendere un led mentre quando passa in corrispondenza del sensore Ovest mi accenda un altro led.
Mi suggerite un buon codice da utilizzare? Grazie mille!!!

Nik_90

http://store.arduino.cc/ww/index.php?main_page=product_info&cPath=16_19&products_id=96

Premetto che non ho mai utilizzato un hall sensor ma come indicato dal link che ho messo:

Output: questo modulo restituisce 5v quando un campo magnetico (per esempio un corpo umano) si trova nei pressi del sensore e 0 quando non c'è nulla nelle vicinanze. Se connesso ad un input di Arduino che usa il TinkerKit Shield i valori variano tra 0 (nessuna presenza) e 1023.

Nel link è presente anche un esempio..

Collegati ad uscita analogica restituisce valori per un range 0-1023, quindi con un po di misure con il tuo magente credo che con un paio di if() te la dovresti cavare..:)

uwefed


http://store.arduino.cc/ww/index.php?main_page=product_info&cPath=16_19&products_id=96

Premetto che non ho mai utilizzato un hall sensor ma come indicato dal link che ho messo:

Output: questo modulo restituisce 5v quando un campo magnetico (per esempio un corpo umano) si trova nei pressi del sensore e 0 quando non c'è nulla nelle vicinanze. Se connesso ad un input di Arduino che usa il TinkerKit Shield i valori variano tra 0 (nessuna presenza) e 1023.

Nel link è presente anche un esempio..

Collegati ad uscita analogica restituisce valori per un range 0-1023, quindi con un po di misure con il tuo magente credo che con un paio di if() te la dovresti cavare..:)

Che il corpo umano generi un campo magnetico significante é un errore di quella pagina o vi siete mai accorti di pezzi di ferro che erano appicicati da qualche parte sulla pelle? oppure che una bussola non indichi il Nord perché la tenete troppo vicino al corpo?

Quei sensori hanno un uscita 0 e 5V. Puoi collegarli alle entrate di arduino e trattarli come un  pulsante.

Ciao Uwe

gcblack

Grazie per le dritte. Provo subito!  :)

cyberhs

Condivido l'opinione di Uwe sul fatto che un corpo umano non possa influenzare il campo magnetico.

Ricordo in filmato di una donna che affermava di poter far girare l'ago di una bussola imponendo le sole mani: le hanno trovato un minuscolo magnete inserito nella pelle!

Riguardo al sensore di Hall posso affermare che non solo restituisce un segnale proporzionale ai gauss del campo, ma anche il suo verso.

Infatti nello sketch di esempio, a mio avviso è presente un errore: afferma che il valore normale è 510 su 1023 in assenza di campo, mentre in presenza di campo questo valore diminuisce.

Ritengo che, invece, a seconda della direzione del campo il valore aumenti o diminuisca rispetto a 512 che, guarda caso, è esattamente la metà di 1024.

uwefed


Infatti nello sketch di esempio, a mio avviso è presente un errore: afferma che il valore normale è 510 su 1023 in assenza di campo, mentre in presenza di campo questo valore diminuisce.

Ritengo che, invece, a seconda della direzione del campo il valore aumenti o diminuisca rispetto a 512 che, guarda caso, è esattamente la metà di 1024.


Dipende dal modello di sensore magnetico.
Ci sono quelli che misurano il campo e altri che hanno un uscita digitale che comuta a una certa soglia di campo magnetico.
Dalla descrizione sembra che sia un sensore che legge il campo magnetico.
Ciao Uwe

gcblack

Il mio è un A1302 bipolare. Purtroppo il sensore è n.a. mentre a me serviva il contrario per utilizzarlo senza micro. Significa che mi toccherà inserire il micro e variare da codice. Quante letture al secondo riesco a fare considerando che l'asse su cui è montato esegue nel massimo 150 giri al secondo?

uwefed

Il a1302 non ha un uscita digitale ma un uscita proporzionale al campo magnetico di ca 1,3mV per Gauss ( o 13V per T) con un offset die 0,5Vcc. Devi mettere un SchnittTrigger costruito con un amplificatore operationale. Col amplificatore operazionale puoi costruire un schmitttrigger invertente ma a nche uno invertente. Schegli quale usare secondo il segnale di uscita che Ti serve.

http://www.datasheetcatalog.org/datasheet2/2/04940otsfigzd5t3wyz41sfwfwcy.pdf

Ciao Uwe

gcblack

Grazie per il suggerimento. Avresti qualche schema da consigliarmi?

cyberhs

Quote

Il a1302 non ha un uscita digitale ma un uscita proporzionale al campo magnetico di ca 1,3mV per Gauss ( o 13V per T) con un offset die 0,5Vcc


Uwe, dalle caratteristiche a me pare che, alimentando a 5V, il sensore fornisca uno "0 gauss" a 2,5V esatti

Quote

The A1301 and A1302 are continuous-time, ratiometric, linear
Hall-effect sensor ICs. They are optimized to accurately provide
a voltage output that is proportional to an applied magnetic
field. These devices have a quiescent output voltage that is
50% of the supply voltage. Two output sensitivity options
are provided: 2.5 mV/G typical for the A1301, and 1.3 mV/G
typical for the A1302.


gcblack, se le velocità di rotazione non sono troppo elevate, potresti anche evitare i trigger di Schmitt ed usare direttamente due ingressi analogici.

uwefed


Quote

Il a1302 non ha un uscita digitale ma un uscita proporzionale al campo magnetico di ca 1,3mV per Gauss ( o 13V per T) con un offset die 0,5Vcc


Uwe, dalle caratteristiche a me pare che, alimentando a 5V, il sensore fornisca uno "0 gauss" a 2,5V esatti


Scusate, Hai ragione. Come spesso quello che pensi non é quello che scrivi.

giusto é
con un offset di 0,5*Vcc dove Vcc é la tensione di alimentazione del A1302. Mancava la moltiplicazione.

CiaoUWe

Go Up