Pages: [1]   Go Down
Author Topic: Creazione progetto con Arduino, consigli sui collegamenti hardware  (Read 2028 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 1
Posts: 5
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao a tutti,

ho in mente di creare un progetto con Arduino, per leggere 3 sensori sulla mia auto.
Di elettronica ne so un pò ma non so scegliere bene i valori delle resistenze ecc ecc.

Il progetto in generale comprende questi sensori:

1 sensore di pressione relativa per il turbo con range 0 a 250 kpa (kilo pascal, circa 2.5 bar)
1 sensore di pressione olio
1 sensore di temperatura olio

L'auduino verrà collegato ad un carpc, ho già fatto il software che legge la pressione assoluta, giri, anticipo inizione, rapporto stechiometrico ecc, tutto dalla presa OBD.

I tre componenti scelti sono i seguenti

Pressione turbo:

Sensore della Freescale modello MPX4250GP, viene alimentato con 5 volts e restituisce un voltaggio da 0.2 a 4.9 volts, con un assoirbimento massimo di 10 mA
Datasheet: http://docs-europe.electrocomponents.com/webdocs/0ef4/0900766b80ef40fd.pdf


Sensore pressione olio:
Sensore della VDO modello 360-081-030-037C , con un range 0-10 BAR, è alimentato da 6 a 24 volts e restituisce una resistenza variabile da 10 a 184 ohm,
ha in più un contatto che si attiva a se la pressione scende sotto 0,75 bar. Il negativo è collegato al motore tramite la sua struttura

Sensore temperatura olio:
Sensore della VDO modello 323-801-012-003D , con un range 50-150 °C, è alimentato da 6 a 24 volts e restituisce una resistenza variabile da 322.8(50°) a 18.6 (150°) ohm.
Il negativo è collegato al motore tramite la sua struttura


Da quanto ho capito, dovrò settare 3 pin digitali su HIGH per dare ai 3 sensori la corrente, mentre altri 3 pin analogici andranno in input per leggere tramite l'ADC i valori.
Ho letto sempre sul forum che per i sensori a resistenza variabile, devo usare un Voltage divider


Ora iniziamo le domande smiley


Domanda 1) Se i sensori VDO li alimento con l'arduino (5V dei pin), secondo voi, andranno bene lo stesso?

Domanda 2) Il sensore di pressione turbo, lo posso leggere direttamente dal pin di input, o devo metterci qualche resistenza (immagino di no)

Domanda 3) L'arduino può essere alimentato dal 12V della macchina, oppure devo mettere uno stabilizzatore di corrente tipo lm 7805 o lm7808 o basta la corrente della USB?

Domanda 4) Ed ecco il pezzo forte, le Resistenze variabili.

Questo è uno schema che avevo pensato di usare per il voltage divider, l'ho letto qui sul forum, spero che il circuito vada bene smiley





Quale valore deve avere la Resistenza R1?
La resistenza R2 è necessaria? Se si, quale valore deve avere?


Grazie a tutti, sono stato un pò lungo, però è la prima volta che uso arduino.

Ciao,

Antonio
« Last Edit: October 05, 2012, 08:13:23 am by antonioki » Logged

Offline Offline
Newbie
*
Karma: 1
Posts: 5
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Allora, mi sono informato un pò sul voltage divider ed ho trovato un buon simulatore, che fa vedere anche la corrente, oltre il voltaggio.

Ho lasciato anche la resistenza R2

Dopo tante prove ho trovato dei valori che per me possono andare bene.

La simulazione che ho fatto è la seguente:

Voltaggio: 5V
R1: Valore di 150 Ohm
R2: Valore di 10 Ohm
R3: Valore 10 e poi 184
Ho messo anche la Resistenza di Pull-up di arduino, impostata a 20k Ohm


Con la R3 a 10 Ohm ho un assorbimento di 29,42 mA e un consumo prodotto di 129,79 mW (preso su R1)
Sul pin di input ho un voltaggio di 0,588 V e una corrente di 29,39 microAmpre


Con la R3 a 184 Ohm ho un assorbimento di 14.61 mA e un consumo prodotto di 32.04 mW (preso su R1)
Sul pin di input ho un voltaggio di 2.810 V e una corrente di 140.39 microAmpre


Ho letto sul manuale dell'Arduino che i pin di output possono dare massimo 40 mA e quelli di input possono ricevere massimo 40 mA

Penso quindi di aver trovato una buona soluzione, sto circa 10 mA sotto la soglia massima e, facendo così sono riuscito ad aumentare la "forbice" tra il valore minimo e massimo letto sull'ADC.

Spero di non aver sbagliato nulla.

Ciao,

Antonio
« Last Edit: October 05, 2012, 11:29:39 am by antonioki » Logged

Selvazzano Dentro - Padova
Offline Offline
Edison Member
*
Karma: 45
Posts: 1407
"Chi sa fa, chi non sa insegna"
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Rispondo alle tue domande in ordine.

1) in teoria il sensore VDO per la pressione dell'olio (ed anche quello della temperatura) è un resistore variabile e quindi applicando anche 5V dovrebbe funzionare, ma le specifiche sono chiare (tensione min 6V) e quindi potrebbe esserci un qualche rapporto di non linearità della misura. Tuttavia un tentativo si potrebbe fare: è probabile che il range di tensione indichi semplicemente i tre tipi di batterie degli autoveicoli.

2) il sensore pressione fornisce un'uscita in tensione quindi non dovrebbe essere necessario alcun resistore, tuttavia io ne inserirei uno da 1k per protezione.

3) la tensione della batteria dell'auto spesso raggiunge anche 15V: ti conviene stabilizzare esternamente con un 7805 e fornire i 5V direttamente sul pin Vin di Arduino. Metti anche due/tre diodi 1N4007 serie a monte per le inversioni di polarità e per abbassare un po' la tensione. Il primo condensatore elettrolitico del circuito stabilizzatore lo metterei grossetto (almeno 1000mF) per compensare la caduta di tensione nella fase di avvio del motore. Mi raccomando di inserire i condensatori da 100nF a monte ed a valle vicini all'integrato!!!

4) usando i 5V per "alimentare" i sensori temperatura e pressione olio puoi usare un singolo resistore da 10 ohm 1% (od anche più preciso) collegato ai +5V ed al terminale "G" che collegherai all'ADC: quando il valore del sensore è 10 ohm (nel caso della pressione) otterrai esattamente 2,5V mentre quando è 180 otterrai un valore di 4,7V.

Non capisco perché vuoi usare 3 uscite di Arduino per fornire le tensione ai sensori.

Non inseririrei, invece, il resistore di pull-up per evitare di falsare la misura.

Ettore Massimo Albani
« Last Edit: October 06, 2012, 04:26:38 am by cyberhs » Logged

Offline Offline
Newbie
*
Karma: 1
Posts: 5
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao e grazie per la risposta smiley

Per la N.1: Ok

Per la N.2: Ok

Per la N.3: Sulle specifiche dell'auduino uno dicono che il range consigliato è 7-12 Volts e che se il voltaggio è più basso di 5V può diventare instabile, dici che conviene mettere un LM7808 e solo un paio di diodi?

Per la N.4: Scusa ma non ho capito, i sensori pressione olio e temperatura (quelli a resistenza variabile), vanno collegati al PIN 5V dell'arduino (quello vicino al PIN 3.3V), mentre non trovo il terminale "G" sulla scheda, indenti il GND? (ce ne sono 2 vicino il PIN 5V)

Ho visto un circuito voltage divider qui, ma legge solo un Vout:

http://www.raltron.com/cust/tools/voltage_divider.asp

Ma non riesco a capire come mettere due PIN analogici per la lettura (A0 e A1 per esempio), ecco perchè avevo usato i vari PIN digitali per dare i +5V ai sensori.


Scusa per le domande, ma non vorrei rompere l'arduino per una mia incomprensione

Ciao e grazie
Logged

Selvazzano Dentro - Padova
Offline Offline
Edison Member
*
Karma: 45
Posts: 1407
"Chi sa fa, chi non sa insegna"
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Scusami ho detto due str...ate!
La prima.
Il pin Vin è collegato all'ingresso del IC stabilizzatore di Arduino e, come dici, tu accoglie un range di tensione da 9 e 12V.
Costruendo uno stabilizzatore esterno, il terminale di uscita del 7805 devi collegarlo ai +5V di Arduino e non al Vin!

Per il terminale "G" mi riferisco alla sigla del fornitore del VDO. Nel modello che hai indicato, il resistore variabile è collegato a "G" da una parte ed a massa dall'altra (esistono anche modelli che hanno il secondo terminale libero).

La seconda: il resistore deve avere un valore di 100 ohm 1%, altrimenti passa troppa corrente!
Infatti, inserendo un resistore da 100 ohm 1% come ti ho detto (un terminale ai +5V di Arduino e l'altro al "G"), in pratica fai un partitore di tensione (voltage divider) e la tensione di "G" la leggi su uno degli ingressi analogici (A0 ad esempio). Questo vale sia per la pressione che per la temperatura.

I valori che leggerai sono:
a 10 ohm 0,5V ed a 184 ohm 3,2V (pressione)
a 18,6 ohm 0,8V ed a 322,8 ohm 3,8V (temperatura)

Naturalmente la massa dell'auto e quella di Arduino devono essere collegate tra loro.

Anche volendo non puoi assolutamente usare le uscite digitali per fornire i 5V poichè bruceresti il micro: la massima corrente disponibile su ogni porta è 40mA, mentre quando la resistenza del resistore variabile è 10 ohm, passano ben 45mA [5 / (100 + 10)]

Scusami ancora per il doppio errore  smiley-confuse
Logged

BZ (I)
Offline Offline
Brattain Member
*****
Karma: 263
Posts: 21610
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Precisazione: i 40 mA di corrente di uscita per un pin non possono essere dati da tutti i pin in temporanea.
Ci sono limiti dati dai pin di alimentazione (200mA) e da collegamenti interni dei port (100 e 150mA)
Ciao Uwe
Logged

Offline Offline
Newbie
*
Karma: 1
Posts: 5
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao e grazie per le risposte, mi avete dato un ottimo spunto per il circuito.

Siccome l'arduino non può alimentare direttamente dai pin i sensori, a questo punto, visto che ho il circuito regolatore a 5V fatto con l'LM7805 che può dare anche 1 ampere (presi dalla batteria della macchina), alimento sia i sensori che l'arduino con questa corrente.

Così uso soltanto i pin analogici dell'arduino e risparmio dei pin digitali che magari posso usare per un eventuale display smiley

Giusto o non è così?

Domani posto uno schema completo del circuito.

Ciao e grazie,

Antonio
Logged

Pages: [1]   Go Up
Jump to: