Digitala multimetern shield för Arduino (15 / 17 steg)
Steg 15: Programvara trimning av noggrannhet (del 1)
Jag kommer att visa hur man gör detta för intervallet 0-10V. De andra segmenten är trimmas på samma sätt.
Om du vill trimma noggrannheten för ett visst område är det bästa tillvägagångssättet att välja putsning referensspänningen, så nära som möjligt till den övre gränsen. När trimmats för antas denna spänning att, på grund av linearitet i spänningsavdelare och AD omvandling, samtliga är täckt med samma noggrannhet. Om du vill trimma voltmetern för intervallet 0-10V har jag tagit nya 9V batteri.
Som första steg har jag mätt nätspänningen på rubriken "Arduino" styrelsen leverans. I mitt fall var det 4.91V.
Denna spänning fungerar som referens för ADC Atmega chip. Det ingår i formeln för omvandlingen av de tagna ADC läsande till spänning värde:
disp_res = (curr_value * leverera * 2) / 1024 * coeff_v10;
, där:
disp_res - är spänning värdet som visas på skärmen.
curr_value - är genomsnitt digital läsning;
supply - är uppmätta strömkällans spänning;
coeff_v10 - är programvara trimning koefficienten
Nästa steg är att mäta batteriets spänning av den standard DMM och skriva värdet.
Efter att vi mäter samma batteri med "Arduino" baserade DMM. Både mätningar beräkna vi trimning koefficient coeff_v10 som kvoten som följer av uppdelningen av första mätresultatet av andra mätresultatet. I mitt fall har jag mätt batteriet med den standard DMM att vara 9.51V. Mätt med "Arduino" DMM var det 9.34V.
Korrigeringskoefficient beräknades som:
coeff_v10 = 9.51/9.34 = 1.018
Det resulterande värdet tilldelas coeff_v10 i koden.
Efter kompilera om och laddar koden ses det att efter Intrimningen "Arduino" DMM visar målvärdet.
Jag skulle rekommendera att denna koefficient beräknas för några spänning mäts med samma rad inställningar och slutliga värdet som anges i koden är i genomsnitt av alla beräknas.