Visualizza messaggio singolo
Vecchio 14 ottobre 12, 10:29   #123 (permalink)  Top
ElNonino
User
 
L'avatar di ElNonino
 
Data registr.: 06-05-2007
Residenza: Tre Ville (Preore)
Messaggi: 3.605
Invia un messaggio via MSN a ElNonino
Il sensore che utilizzi è un classico sensore industriale con uscita 4..20mA, è molto diffuso in ambito industriale.

Un uscita in corrente ha diversi vantaggi:
  • Con soli 2 fili si alimenta il sensore e si legge il segnale.
  • Non serve un alimentazione stabilizzata ma solo ben filtrata.
  • La resistenza elettrica del cavo di collegamento è praticamente ininfluente, sia per l'alimentazione che per il segnale.
  • Il far scorrere una corrente minima consente di rilevare facilmente interruzioni o cortocircuiti del cavo da parte del PLC o Microprocessore.
Per convertire il segnale in 4..20mA ti consiglierei di usare questo schema:



Alcune note:
  • La tensione di alimentazione del sensore deve essere almeno di 15V, 18..24V sarebbero ideali.Il - dell'alimentatore deve essere collegato al GND (-) di Arduino.
  • Il condensatore C1 deve essere ceramico e di ottima qualità, va montato il più vicino possibile al pin di ingresso del Arduino.
  • R2 e C1 formano un piccolo filtro per disturbi impulsivi e rumore captati dal cavo di collegamento, R2 e D1 servono a proteggere il convertitore A/D di Arduino in caso di fault del sensore, per la stessa funzione D2 è facoltativo ma consigliato.

Per quanto riguarda la conversione numerica dei dati tieni presente questo:

Arduino non permette la compensazione di offset del riferimento - del convertitore A/D quindi la tensione utile su R1 sarà compresa fra 1V e 5V (dando per scontato che Arduino sia alimentato a 5V
ed usi il riferimento interno di tensione)

La risoluzione in tensione sarà quindi 5V/1023 (10 bit) = 4,8876 mV per step.

Essendo la tensione minima di 1V equivalenti a 205 step dovrai sottrarre questo valore dal dato letto, quindi il tuo range di misura sarà di 1023-205 = 818 step.

Se il sensore di pressione ha un range fs di 10bar la risoluzione che otterrai sarà di circa 12,225 mbar, se fosse da fs6bar avresti 7,335mbar di risoluzione.

In pratica per leggere in bar dovrai applicare questa formuletta:
(Valore letto - 205) * 0,012225 oppure (Valore letto - 205) * 0,007335.

Spero di essere stato d'aiuto, non so la tua applicazione però valuta anche l'uso di un micro PLC come questo, completo e semplicissimo da usare (il sw di programmazione è gratuito se non chiedi e ti sarà dato): Millenium 3 logic controller Smart "Compact" range with display CD12 Smart - Crouzet

__________________
Peace & Love
Fate le cose nel modo più semplice possibile, ma senza semplificare. (A. Einstein)
ElNonino non è collegato   Rispondi citando