Brainbooster
Panoramica sui sensori
Tutorials -
Venerdì 10 Settembre 2010 17:57
Scritto da Brainbooster

I sensori, capire cosa sono e come sceglierli

Sensore o trasduttore?

Iniziamo dicendo subito che i termini "sensore" e "trasduttore" sono praticamente (quasi sempre) sinonimi, solo che quando si parla di sensori, si mette l'accento sulla componente sensibile alla grandezza che deve essere "sentita", mentre con trasduttore si intende pi√Ļ specificare la componente in grado di "tradurre" in un segnale elettrico la grandezza da misurare ma anche il contrario come f√† per esempio l'altoparlante che √® un trasduttore di suoni.

Ma in pratica i sensori cosa sono e che fanno?

Un sensore è un componente elettrico o elettronico che converte un tipo di energia in un segnale elettrico che poi dopo opportuni trattamenti, viene misurato e quantificato.

Molto spesso, sopratutto quando si gioca con Arduino, capita di doversi interfacciare al mondo reale e di interagire con le grandezze fisiche che lo regolano, e subito ci si trova ad avere a che fare con i sensori, e quindi vediamo di capirci qualcosa....

Esistono Varie tipologie di sensori, distinguiamo principalmente due famiglie:

I sensori primari, sono quelli basati su un singolo effetto tipo: sensori di temperatura o fotoelettrici o estensimetrici o di campo magnetico.

I sensori secondari, sono quelli basati sugli effetti dei sensori primari tipo: sensori di forza, pressione, accelerazione ecc..

cosa hanno in comune queste famiglie? le loro caratteristiche di valutazione! e cioè tutti quei valori caratteristici di ogni componente che ci permetteranno di scegliere sempre il sensore giusto.

Le caratteristiche dei sensori

Un pò di paroloni che definiscono le caratteristiche di un sensore...

Transcaratteristica (non è altro che la curva che definisce la variazione grandezza/segnale in condizioni di variazione del segnale quasi statiche o comunque molto lente. Quindi è quel grafico nei datasheet dei componenti che descrive di solito la tensione in uscita rispetto all'energia in ingresso).

Range o portata ( di solito sono almeno 2 valori del tipo " da.. a.." e definiscono l'energia che il sensore potr√† sopportare in entrata, per esempio una caratteristica del sensore di temperatura LM35D √® che il suo range v√† da 0¬į a 100¬į).

Sensibilità (è il rapporto fra la variazione dal'energia in entrata ed il segnale in uscita. di solito la sensibilità è anche un valore che varia lungo la scala di misura del sensore, e quando invece non è così parliamo di sensori lineari.Il valore della sensibilità è solitamente composto da 2 valori es. una comune fotoresistenza che quindi reagisce alla luce  variando il suo valore resistivo, ha un valore medio di sensibilità di 20 Lux/KOhm).

Linearit√† (√® sicuramente, insieme alla sensibilit√†, una delle caratteristiche pi√Ļ apprezzate in fase di progettazione, perch√® indica la vicinanza della transcaratteristica ad una retta. Diciamo che un sensore √® lineare quando mantiene una sensibilit√† costante per tutto il suo range , √® questo √® tanto comodo quanto raro... in verit√† la maggiorparte dei sensori avranno un grafico di risposta pi√Ļ simie ad una campana (andamento Gaussiano) che ad una retta, ma si f√† presto a saltare l'ostacolo confezionando i sensori in modo da farli lavorare nella zona dove il loro comportamento √® pi√Ļ lieare, come per esempio il sensore sharp che misura le distanze tipo GP2D12 ha un comportamento quasi lineare nel range per cui √® costruito e cio√® da 10cm a 80cm , ma fuori da questi valori si possono avere addirittura delle inversioni nelle letture!).

Tramite questi valori potremo scegliere un sensore adatto a ciò che vogliamo misurare ed a come lo vogliamo misurare.

Si, anche il "come si misura" è importante, nel senso che il sensore deve essere adatto al sistema di misura.

Ricordiamo che non è possibile collegare ad Arduino una batteria da 12V su una entrata analogica per leggerne la tensione tramite analogRead perchè rischiamo di bruciare tutto (Arduino gradisce solo tensioni da 0 a 5v) e allora?

e allora interviene un altro parolone: Il condizionamento del segnale!

Condizionare un segnale significa ridurlo al range di funzionamento del nostro strumento di misura, mantenendone comunque  le proporzioni, quindi, per tornare alla nostra batteria, per poter leggere un massimo di 12V abbiamo la necessità di ridurre della metà circa la tensione della batteria e quindi interverremo tramite un circuito fatto con due resistenze detto "partitore resistivo".

 

Schema_partitore

Questo circuitino è regolato dalla seguente formula:

Legge

nel nostro esempio abbiamo che Vcc=12V e Vth 5V (per arduino) quindi se arbitrariamente scegliamo per R2 un valore di 47Kohm e per R1 un valore di 68Kohm avremo che:

tensione Vth= 12* 47 /(47+68)=4,9V

Perfettamente il linea con le esigenze di arduino!

L'esigenza di condizionare i segnali per adattare una grandezza ad un utilizzo, quindi sorge naturale nella maggiorparte dei casi così come quando si alza o si abbassa il volume alla radio quando serve per adattarlo al proprio udito o si indossano gli occhiali per vederci bene :)

Ma condizionare un segnale può voler dire molte cose, se pensate che a seconda del tipo di sensore che si adopera il segnale in uscita potrebbe aver bisogno di: Amplificazione (come per i fotodiodi), Attenuazione (come per la batteria dell'esempio), Filtro (come si usa per gli accelerometri), Conversione (convertitori tensione corrente e viceversa) , Linearizzazione ecc...

Per quanto riguarda l'interfacciamento con Arduino, la scelta del range di funzionamento dei sensori è quindi condizionata da due paletti  di cui il primo è dato dalle caratteristiche dello strumento (Arduino) quindi, diciamo che possiamo leggere tensioni che vanno da 0 a 5V e che sul singolo pin possono passare correnti massime di 40ma, ed il secondo paletto è dato dalle caratteristiche del sensore che andremo ad utilizzare.

Questo significa che quando è possibile, sceglieremo sensori con delle caratteristiche del segnale in uscita entro i limiti dei nostri paletti (0-5V 0-40ma), ma anche che quando questo è impossibile dovremo condizionare i segnali fino a portarli nel range richiesto.

Pensate che infondo un tester non è altro che un voltmetro che legge una tensione massima di 1.2v (vref)  ma con un sacco di circuiti di condizionamento collegati al commutatore rotativo che ci permettono di cambiare il range o misurare una corrente piuttosto che una tensione. :)

Secondo queste semplici considerazioni è possibile misurare pressochè qualsiasi grandezza con Arduino eventualmente condizionandone il segnale, ma finora abbiamo sempre parlato di massimi... e i minimi?

quale è il valore di tensione minimo leggibile con Arduino?

Arduino usa come riferimento i 5V della sua alimentazione (Salvo modifiche fatte con l'uso fi Aref) e sappiamo che la funzione analog read restituisce un valore compreso fra 0 e 1023, per cui avremo un valore di 5/1024=0.048V (quasi 5mV); questo vuol dire che l'altezza minima di ogni gradino della nostra scala di misura sarà 5mV o che in altre parole potremmo apprezzare variazioni di tensione nell'ordine dei 5mV.

Quindi se per esempio volessimo misurare con arduino una temperatura con l'ausilio di una termocoppia, dovremmo necessariamente prevedere un circuito di amplificazione del segnale perchè la termocoppia può avere variazioni anche nell'ordine dei microvolts.

Spero che questa breve lettura introduttiva aiuti un pò tutti quelli che si avvicinano all'elettronica ed ad Adruino a pensare ed a progettare sempre nuovi dispositivi e a divertirsi con gli elettroni :)

Ciao da BrainBooster, divertitevi!

 

Gioblu Robotics ¬© 2010 - 2012 · Sitemap · privacy

gioscarab@gmail.com

Gioblu BOTServer è online dal 10 Aprile 2010 - 319.232 Visite - 1.027.175 Pagine visualizzate - 182.309 Visitatori unici - 536 utenti attivi