Joten sinulla on:
R_x R_fixedVcc ----- ^ v ^ v ^ ---- + ---- ^ v ^ v ^ ----- - Gnd | | + --- V_sensoitu --- ADC-tulo
Rx on jokin tuntematon vastus (luultavasti jonkinlainen anturi). Ja käytät R_fixed 0,1%: lla juuri nyt laskeaksesi R_x: n, mutta haluat käyttää halvempaa kiinteää vastusta, jonka toleranssi on pienempi, ehkä 1%. Tällöin haluat suorittaa jonkinlaisen kalibroinnin tuotannon aikana korjataksesi lisääntyneen virheen, onko se oikein?
Tapa, jolla lopulta teet tämän, on tavun asettaminen EEPROM-tiedostoon (tai johonkin muuhun haihtuva muisti), joka toimii laskennassasi "offsetina", ja se on täysin kannattava asia. Asia on, että se maksaa sinulle jonkin aikaa tuotannon aikana kalibrointitoiminnon suorittamiseksi. Kalibroinnin suorittamiseksi tarvitset yhden näistä 0,1%: n vastuksista (kutsu sitä R_cal), joiden nimellisarvoltaan vastaava arvo on 1%: n vastusesi kanssa, korvaamaan R_x-piiriin. Mittaamalla V_sensoitu, voit päätellä tarkemmin R_fixed-arvon (ts. 0,2%: n arvoiseksi).
V_tunnistettu ADC: n mielestä.
Kuoppa on mielestäni se, että mittauksen tekemiseen ja sen jälkeen arvon tallentamiseen liittyy joukko työtä. Toinen asia, jota on pidettävä kuopana, on se, että lämpötilalla voi olla merkitys aiheuttaa vastustuskyvyn poikkeaman nimellisarvostaan, joten haluat kohtuullisen hyvin lämpötilan hallitun kalibrointiympäristön. Lopuksi, älä unohda käyttää kalibroituja mittauslaitteita, koska se on toinen mahdollinen lisävirheiden lähde. Viimeinen kuoppa, jonka voin ajatella, on se, että kalibrointitavu tulisi tallentaa ADC: n lb: n yksiköihin (joten jos sinulla on 12-bittinen ADC, kalibrointisiirtotavun yksiköiden tulisi olla "Vcc / 2 ^ 12 volttia") .
Muokkaa
Jos käytät kahta kiinteää vastusta jakamaan suuri jännite pienemmälle asteikolle seuraavasti:
R1_fixed R2_fixedV_in ----- ^ v ^ v ^ ---- + ---- ^ v ^ v ^ ------- Gnd | | + --- V_sensoitu --- ADC-tulo
Uudelleen muokattu osio
Joten nyt haluat käyttää tarkkuusjänniteohjetta ( kutsua sitä V_cal) stimuloimaan V_in tuotantokalibrointivaiheen aikana. Mitä sinulla on teoriassa:
V_sensed = V_predicted = V_cal * R2_fixed / (R1_fixed + R2_fixed) = V_cal * slope_fixed
Mutta mitä Todellisuudessa sinulla on:
V_sensed = V_measured = V_cal * R2_actual / (R1_actual + R2_actual) = V_cal * slope_actual
Käytännössä sinulla on erilainen siirtofunktion kaltevuus todellisuudessa kuin mitä voit ennustaa vastuksen arvoista. Poikkeama ennustetusta jakajan siirtofunktiosta on lineaarinen tulojännitteeseen nähden, ja voit olettaa, että 0 V sisään antaa 0 V ulos, joten yhden tarkkuuden jännitteen vertailumittauksen tekemisen pitäisi antaa sinulle tarpeeksi tietoa tämän lineaarisen asteikkokertoimen kuvaamiseksi . Nimittäin:
V_mitattu / V_ennustettu = kaltevuus_korjattu / kaltevuus_todellinen
slope_actual = slope_fixed * V_mitattu / V_ennustettu
Ja käytät slope_actual kalibroituna arvona määrittämään jännite mitatun jännitteen funktiona.
alla @markrages
Todellisen kaltevuusherkkyyden saamiseksi vastusarvoille tarvitaan osittaista erottelua: