Att mäta ström med AVR

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
PaNiC
Inlägg: 2610
Blev medlem: 15 augusti 2003, 22:16:15
Ort: Skånelandet

Att mäta ström med AVR

Inlägg av PaNiC »

Då jag inte tycks ha nog med saker att göra ska jag äntligen börja på mitt styr och övervakningssystem för kylanläggningar.
Den första och enda frågan egentligen är att mäta strömmen som kommer från trycktransmittern som är en vanlig 4-20mA-historia. Då denna drivs med 12-30V och endast ska kopplas i serie med strömförsörjning och apparaten som läser av den kan jag inte som tidigare tänkt nöja mig med att mäta spänningsfallet över ett motstånd som ligger i serie.

Alternativet att använda en OPAMP för att ta hand om spänningsfallet och ge en spänning ut direkt till µCns AD-omvandlare existerar ju, men jag vill helst ha in så få felkällor som möjligt då jag känner att det existerar tillräckligt med sådana redan.

Edit: Hittade http://www.elfa.se/elfa-bin/dyndok.pl?l ... 228084.htm , men priset gör ju ingen glad.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Låta 4-20 mA signalen driva ingången på en optokopplare ?
Jag vet inte hur linjärt det blir, men jag har sett liknande lösningar...
Användarvisningsbild
vfr
EF Sponsor
Inlägg: 3515
Blev medlem: 31 mars 2005, 17:55:45
Ort: Kungsbacka

Inlägg av vfr »

Jag har en känsla av att det där inte blir så linjärt. Jag hade själv liknande tankar en gång i tiden men blev avrådd. Letade då fram en "analog" optokopplare som skulle ha mycket bättre linearitet. Den hade dessutom två mottagarenheter i samma kapsel där alla enheter (1 TX, 2 RX) var isolerade ifrån varandra. I ett exempelschema hade man då tagit den ena mottagardelen och med den byggt en återkoppling till sändaren. Med antagandet att även om sändare-mottagare inte är helt linjära, så bör iallafall två lika mottagare på samma chip ha nästan identisk karakteristik. På det viset kunde man kompensera bort nästan all olinearitet. Ett klart intressant exempel!

Vårt projekt lades i malpåse ungefär samtidigt så det blev tyvärr inget labbat med den där.
Användarvisningsbild
$tiff
Inlägg: 4941
Blev medlem: 31 maj 2003, 19:47:52
Ort: Göteborg
Kontakt:

Inlägg av $tiff »

>> PaNiC

Jag hängde inte riktigt med på hur du tänkt mäta strömmen, och vad det är för fel på att buffra med en OP isåfall?
Har du ditt shuntmotstånd mot jord? Isåfall kan du ju mäta med ADC via en spänningsdelning.
Om du inte har den mot jord så kan du kanske använda en instrumentförstärkare eller någon färdig krets som är till för just shuntspänningar; MAX4173 m.fl.
Användarvisningsbild
PaNiC
Inlägg: 2610
Blev medlem: 15 augusti 2003, 22:16:15
Ort: Skånelandet

Inlägg av PaNiC »

Shuntmotståndet kan sättas till jord utan problem ja.
Läste i någon annan tråd att en OP utgör en hyfsad felkälla i sådana här applikationer, men det kanske beror på en hel massa?
Att mäta via spänningsdelning känns som lite av en fullösning.
Nu är jag antagligen lite väl ambitiös, men det kan hända att jag kommer att tillverka sådana här saker i mindre skala.
Jag kollade på MAX4173 och fick det till att för 20mA ska rSense vara 5Ohm och gain 50 om Vout ska bli 5V som högst. Kan det stämma månne?
Var går den att handla sedan?
Användarvisningsbild
$tiff
Inlägg: 4941
Blev medlem: 31 maj 2003, 19:47:52
Ort: Göteborg
Kontakt:

Inlägg av $tiff »

MAX4173 är väldigt onödig att använda om du kan ha shunten mot jord. Om inget annat så är den nog svår att få tag i om du ska göra en liten serie annat än prototyp, tyvärr.
En vanlig OP tycker jag passar utmärkt! Jag förstår inte riktigt vad som är farligt med en sådan. Skaffa en som går rail-rail och om du är rädd för överslag på ingången kan du skydda den med en zener.
Användarvisningsbild
PaNiC
Inlägg: 2610
Blev medlem: 15 augusti 2003, 22:16:15
Ort: Skånelandet

Inlägg av PaNiC »

Heh, ja.... För det första måste jag erkänna att jag aldrig har använt en OP och vet således inte riktigt hur de fungerar. RCV420 och MAX4173 förstod jag så gott som direkt hur de fungerar, men en sleten OP, nej då.
Det är väl en sådan sak som alla förväntas kunna och därför ges det ingen vidare grundläggande info i databladen. Får leta upp lite litteratur imorgon.

Begrepp som slew-rate, rail, inverterande och icke-inverterande ingångar säger mig ingenting.

Det som är farligt är väl det här med själva förstärkningen. En förstärkning innebär ju som du vet även att felen förstärks, något som jag inte önskar. Dessutom fler saker som kan krångla till det.
Användarvisningsbild
$tiff
Inlägg: 4941
Blev medlem: 31 maj 2003, 19:47:52
Ort: Göteborg
Kontakt:

Inlägg av $tiff »

Om du bara ska ha OPn till att förstärka x antal gånger, icke-inverterande (eller två i serie som är inverterande), så är det bara att hämta typ närmsta träff på google på ett sådant schema. Det är först när man ska designa egna filter och grejer man bör ha bra koll på alla parametrar.

Ja, en förstärkning förstärker även brus. Är du rädd för det, kan du slänga in ett lågpassfilter, så slipper du brus av den karraktären. Om du inte behöver snabb respons på transienter i strömmen så kan du filtrera bort väldigt mycket av skiten. Bruset som OPn genererar i sig är säkert så litet att du knappt kan mäta det med din ADC ändå. Vi snackar väl en 10-50 ggr förstärkning. Det är först med förstärkningar uppemot 10³ man får problem med OPns inre egenskaper (om vi håller oss till frekvenser för shuntmatning).
Användarvisningsbild
Icecap
Inlägg: 26647
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

Rail-to-rail betyder bara att utgången kan ge ner till GND och upp till matningsspänningen (nästan, kan fattas några mV) och tål det på ingången.

I detta fall har slew-rate ingen betydelse men det är ett mått för hur fort utgången kan svänga: har den 10V/µs och den ska svänga 2V tar det minst (2/10=) 0,2µs att "komma fram".

Inverterande ingång respektiv icke-inverterande:
En op-amp förstärkar skillnaden mellan de 2 ingånger och förstärkar den väldigt mycket. Om du då kopplar utgången direkt till - (inverterande) ingången och skicker ett styrsignal på + (icke-inv.) ingången kommer utgången att följa styrsignalen slavisk (så snabbt den hinner såklart) men nu kan du belasta signalen mycket kraftigare.

- ingången (inverterande) betyder helt enkelt att om den ingång är mer plus än + ingången kommer utgången att gå - (läs som: GND). Omvänd kommer utgången att gå till + om man låter - ingången ha lägre spänning än + ingången.

Väldigt enkelt faktisk.

Så tar du en op-amp med rail-to-rail, matar den med 5V och har en shuntmotstånd på ett lågt värde kan du mata det signal, via en 47K motstånd, in till + ingången av op-amp:en. Mellan utgången och - ingången sätter du ett motstånd (R1, uträkning sen) och mellan GND och - ingången ytterligera ett motstånd (R2).

Om vi då antar att ditt shuntmotstånd är 5 ohm kommer du då att få en signalspänning om max 0,1V. Den spänning ska då förstärkas till 5V, alltså 50 gånger. Då räknar du: Gain = (R1/R2)+1, ger R2 ett lämpligt värde (i detta fall 4,7Kohm). Detta ger: R1 = (Gain - 1) * R2 = 230Kohm.

Klart.

Nu kan utspänningen från op-ampen inte överstiga 5V (matningsspänningen) "oavsett" vad du gör på ingången, den är buffrad så AD-omvandlaren kan belasta den utan problem.

Kan det bli enklare?
Användarvisningsbild
PaNiC
Inlägg: 2610
Blev medlem: 15 augusti 2003, 22:16:15
Ort: Skånelandet

Inlägg av PaNiC »

Väldigt bra förklaring, tackar.

Jag har tänkt mig LMC6084 då jag behöver ett gäng OPs och vad kan då vara bättre än att ta en fyrdubbel?
Skulle denna kunna vara lämplig månne eller det är ingen direkt skillnad på OP och OP?

$tiff: Ahh ok, ja då har du fått mig bort från rädslan för brus :).
monstrum
Inlägg: 620
Blev medlem: 13 januari 2005, 05:38:32
Ort: Göteborg

Inlägg av monstrum »

Kan tipsa om att AVR:erna har innbyggda förstärkarsteg på A/D-ingångarna. Om jag inte minns fel så finns det ett 500 ggr-lägre som man kan välja vilket borde vara tillräckligt, speciellt med tanke på att du kan välja i princip hur låg referensspänning du vill.
Användarvisningsbild
PaNiC
Inlägg: 2610
Blev medlem: 15 augusti 2003, 22:16:15
Ort: Skånelandet

Inlägg av PaNiC »

Icecap: Jag håller på att rita upp detta i EAGLE nu. Men shuntmotståndet kommer ju att gå direkt till jord? Detta innebär ju att -ingången också kommer att komma direkt till jord? Eller ska jag ta och sätta shuntmotståndet före trycktransmittern så att dess spänning höjs?
Användarvisningsbild
exile
EF Sponsor
Inlägg: 496
Blev medlem: 21 oktober 2005, 23:32:07

Inlägg av exile »

Ett alternativ är att använda en ström spegel...
Bild
Lite förklaring...
Q1 och Q2 bildar en ström spegel (De bör sitta väldit nära varandra för att få termisk kontat så att de håller sama tempratur... ex 71-315-50 eller två lika med krympslang som håller ihop dem)
Späningen över R1 kommer kommer att motsvara strömen
R2 fungerar som skydd mot förhög späning (max 1mA se)och tillsammans med C1 som ett lågpass filter... och C1 som impedans sänkare vid sampling...

Så håll till godo :)
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

PaNiC> ...En förstärkning innebär ju som du vet även att felen förstärks,...

Nej, i princip inte.
Om du har 5% fel i signalen *före* förstärkning, så kommer det att vara 5% fel i signalen även *efter* förstärkning. Alltså ingen skillnad alls.
Skriv svar