Stap 17: Trimmen de ohmmeter
Hoe trim de ohmmeter die ik laten voor het bereik 1000 Ohm zien zal. Dezelfde aanpak wordt gebruikt voor het andere bereik.
Alvorens de software moet trimmen van sommige extra meting gebeuren.
- De spanningsval over de Zener-diode D2.
- Dat een stabiele stroom heb ik veranderd de volgende rij in het hoofdprogramma (lus ()): digitalWrite (curr_mode, laag---> hoog); - op deze manier kan ik de huidige stabiel houden en om het te meten tijdens de Welkom-procedure. De stroom die van de PNP/PMOS verzamelaar/afvoer terminal op grond moet worden gemeten (foto 1)
- De dezelfde stroom wordt gemeten weer maar met seriële aangesloten weerstand van 1KOhm (de max voor het bereik) - foto 2. De spanning over de weerstand moet ook worden gemeten.
Ik heb gemeten 2,5 mA in de eerste en 2,48 mA in de tweede metingen. Mijn weerstand was 997 Ohm.
Nu moeten we om de bemonsterde gegevens te verwerken. Om dit te kunnen moeten we ook de Vce/Vds - de spanningsval over de transistor voor bot gevallen berekenen.
Deze spanning - voor de eenvoud die zal ik schrijven dat VCE wordt berekend volgens de volgende formule:
Vce = Vsupply - Vzener - Vr, waar
Vsupply is de gemeten voedingsspanning van de "Arduino" bestuur;
Vzener - de spanningsval over D2 (gemeten op stap 1 hierboven);
Vr - de spanning over de weerstand - gemeten bij stap 3. Geval is voor het eerst 0 V.
De berekende Vce en de bijbehorende stromingen zijn gevuld in excel-bestand. (foto 3). Grafiek wordt gedaan, en trendlijn overeenkomt met de datum wordt weergegeven (rechte lijn). De vergelijking voor de trendlijn wordt weergegeven - het zal worden gebruikt voor de berekeningen.
In mijn geval Ir = ijs = 0.0081 * Vce + 2.4773 -met behulp van deze formule kunnen we berekenen altijd de stroom ijs die door de gemeten weerstand en ook de functie van de spanning over de weerstand, die door de ADC wordt bemonsterd. Hier komt het vermoeden, dat de afhankelijkheid van de Ice van Vce lineair is, wat is vaak waar.
Tenslotte berekenen we de weerstand met behulp van de formule van Ohm:
R = Vr / Ir
Hier is hoe de gewijzigde code eruit ziet:
.......
zweven V_zener = 2.16;
zweven Vr = 0;
zweven Vce = 0;
zweven ijs = 0;
zweven coeff_v100 = 1,01;
zweven coeff_v30 = 1.011;
zweven coeff_v10 = 1.018;
zweven coeff_A_gain = 0.992174;
zweven coeff_A_res = 0.98315;
zweven opamp_offset = 0.000767;
volatile unsigned long last_millis = 0;
ongeldig R_1000() {}
digitalWrite (curr_mode, hoge);
vertraging(20);
LCD.Clear();
LCD.Print ("Ohmmeter R = < 1000");
Serial.println ("* Ohmmeter modus - bereik 0 - 1000 Ohm *");
lcd.setCursor (0, 1);
acc_value = 0;
for (int i = 0; ik < = 15; i ++)
{curr_value = analogRead(A2);
acc_value = acc_value + curr_value; }
curr_value = int(acc_value/16);
Als (curr_value > = 513) {meas_overflow();}
else {Vr = (curr_value * leveren) / 1024;
VCE = levering - V_zener - Vr; Ijs = 0.0081 * Vce + 2.4773;
disp_res = Vr / ijs * 1000;
LCD.Print ("R =");
LCD.Print (disp_res, 1);
LCD.Print ("Ohm");
Serial.Print ("* R =");
Serial.Print (disp_res, 1);
Serial.println ("Ohm");
delay(250); }
}
Als conclusie:
De getoonde multimeter is ontworpen op de eenvoudigste manier, proberen om zo veel functies mogelijk insluiten. Deze aanpak brengt sommige ongewenste eigenschappen - de input weerstand is heel laag, dat de nauwkeurigheid in vergelijking met de standaard stof DMM is lager. De redenen daarvoor zijn:
de onderlinge afstemming van de discrete elementen (voornamelijk weerstanden);
niet voldoende nauwkeurigheid van de microcontroller ADC - het is 10 bit, maar biedt fout voor 3-4 LSB;
de digitale ruis op het gebied van de analoge metingen;
niet goed vast voedingsspanning (dit kan variëren als de DMM is aangesloten op verschillende computers), die fungeert als referentiespanning voor de ADC-converter;
... enz.
Ondanks alle nadelen, werd in dit werk getoond, hoe met behulp van software trucs, de nauwkeurigheid van dergelijk apparaat kunnen drastisch toegenomen - beginnen met meerdere ADC lezingen, hun gemiddeld en alle extra software bijknippen. Ik denk dat die gelijksoortig project zou interessant voor studenten bereid om diep in de gegevens te meten en verwerken van de theorie. Het kan gebruikt worden ook als DMM vervanging voor home elektronische projecten, die net vereisen meer gecompliceerde prestatiemetingsprogramma's.
Dank u voor de aandacht!