MAX4173HESA strøm sensor

MAX4173 er en høj præcisions, strømsensor. Den har en udgangsspænding, der eliminerer behovet for gain justerings modstande .

MAX4173 måler med en nøjagtighed på +- 0,5 %.

MAX4173 måler over en meget lille målemodstand på 0.005 ohm

MAX 4173H kan måle strøm på en op til  over en 100 volt indgangsspænding.

Forstærkeren i MAX4173H forstærker det svage signal fra målemodstanden med 100.

Ved 5Ampere Vil MAX4173H give 2,5 volt ud som så kan måles med en arduino analog indgang.

Beregnings eksempel med ohms lov:

  • A x R = V:  A x 0,005 ohm =
  • 0,025 volt x 100 (MAX4173Hs forstærkning)=
  • Vout ved 5 ampere = 2,5 volt

Dvs. MAX4173H giver en Vout på 500 mV pr. Ampere og 0 ampere er lig med 0 volt ud

ACS714 versus MAX4173H:

 

Kompatibilitet’s FIX med polulo ACS714 pcb:

Acs714 som bruges i flere indlæg kan klare +- 5Ampere, centreret omkring 2,5 volt ud. 2,5 volt ud er altså = 0 ampere , over 2,5 volt er det +ampere, under 2,5 volt er det -ampere.

Udgangsspændingen fra acs714 er 185 mV pr ampere, dvs. 2,5 v + (5×0,185V) =

3,425 volt ud ved 5 ampere. 0 Ampere er lig med 2,5 volt ud.

Arduino’s analoge indgange (ADC) kan læse fra 0 til 5 volt.

Der er 1024 måle enheder til at dække de 5 volt, dvs. en skala fra 0 til 1023 som repræsenteres som en værdi i integer variabel.

Det betyder der er 4,9 mV pr. måleenhed.
Eksempel Kode til arduino med polulo acs714:
// ********************************************************************************************************************************
// ***** Opsamler Strøm med acs714 og putter data i en string (den varialen som bruges til at kalde routinen med) *****
// ***** acs714 måler maks 5 ampere, har en offset spænding på 2,5 volt, og giver 185 mv pr. ampere ( x5,34) *****
// ***** denne routine bruger map istedet for *, /, +, - *****
// ********************************************************************************************************************************
void getcurrent1(char *current)
{
int sign, whole;
digitalWrite(digital_io_pin7,LOW); // alive led turns off
sign=false; // kommer fra gettemperatur routinen
if(sign) current[2]='-';
else current[2]='+';
// analog read
//sensor = 3;
whole = 0;
whole = analogRead(3);
whole = whole;
if (whole < 513) whole = 513; if (whole > 715) whole = 513;
// Do these two first since they don't change:
//current[3] = ','; // Decimal separator
int mappedValue = map( whole, 513, 700, 0, 5000 ); // 513 svarer til 2,5 volt og 715 svarer til 25, volt + 5x187mvolt, 5000 er 5 ampere ** 700 calibreretr 230809
// db felt 04
current[0] = '0';
current[1] = '4';
// felt data
current[3]= (mappedValue % 10000)/1000 +'0' ;
current[4]='.';
current[5]= (mappedValue % 1000)/100 +'0';
current[6]= (mappedValue % 100)/10 +'0';
//whole=whole;+24; //calibrering af maaling
current[7]= (mappedValue % 10)+'0';
delay(1000UL); // delay 30 sec
}

For at tilpasse koden ovenfor så acs714 kan bruges i applikationer med MAX4173h bruges en map kommando:

  • int ConvertFrom Acs714ToMax4173hValue = map(whole,513,743,0,616)
Lad os se lidt på værdierne i map kommandoen:
  • whole, indeholder den værdi (i int) vi vil konvertere
  • 513 til 743 er den værdi ‘whole’ input integeren indeholder
  • 0 til 616 er den værdi der tilskrives integeren ConvertFrom Acs714ToMax4173hValue
0-616 er fundet via formlen: sol_amps = ((AnalogRead *12) +5 )/10

ACS714 bruges istedet for MAX4173H i f.eks.  arduino MPPT laderegulatoren: MPP-Tuino-DelSol:

I MPP-Tuino-DelSol læses MAX4173H med denne kodelinie:

sol_amps = ((read_adc(SOL_AMPS_CHAN) * SOL_AMPS_SCALE + 5 ) / 10;

  • sol-amps: er en global integer variabel
  • read_adc(<int>): er en stump sub kode, et object der kan overloades med en variabel, der kan sendes en variabel med ved objektkaldet
  • SOL_AMPS_CHAN: er  defineret som konstant (med #define) med værdien 1, dvs. analog in 1 på arduino
  • SOL_AMPS_SCALE: er en skalerings variabel der indgår for at skalere de rå læste ADC data til 100  skalaen

Map til acs714 laves sådan her:

int  sol_amps_conversion ;

sol_amps_conversion = (read_adc(SOL_AMPS_CHAN);

int ConvertFrom Acs714ToMax4173hValue = map(sol_amps_conversion,513,743,0,616)

int valueAmpsConverted;

sol_amps = ConvertFrom Acs714ToMax4173hValue;

 

Links og ressourcer:

Komponent Leverandør:

Datablad:

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *

%d bloggers like this: