Load Cell Calibration & Resolution การสอบเทียบโหลดเซลล์และ Resolution (Calibration & Resolution)
Measure how small a weight change a load-cell scale can resolve, from the noise of repeated readings and the effect of the moving average.
วัดว่าเครื่องชั่งโหลดเซลล์แยกน้ำหนักที่เปลี่ยนน้อยที่สุดได้เท่าใด จากสัญญาณรบกวนของค่าที่อ่านซ้ำและผลของ moving average
Review. This lab uses the calibration of the Calibration & Sensitivity lab: the transfer function \(L = mW + c\) and its inverse \(W = L/m - c/m\) turn an HX711 reading \(L\) (ADC levels) into a weight \(W\) (g). Calibrate first, or import a saved calibration, because the resolution is measured on the weight readout.
ทบทวน แล็บนี้ใช้การสอบเทียบเดียวกับแล็บ Calibration & Sensitivity คือ transfer function \(L = mW + c\) และสมการผกผัน \(W = L/m - c/m\) ซึ่งเปลี่ยนค่าที่อ่านจาก HX711
\(L\) (ADC level) เป็นน้ำหนัก \(W\) (g) ต้องสอบเทียบก่อน หรือนำเข้าค่า calibration ที่บันทึกไว้ เพราะ resolution วัดจากค่าน้ำหนักที่แสดง
Resolution is the smallest change of a quantity that a system can detect or tell apart. It is a property that describes the “fineness” of a measurement or control system. The resolution of a system comes from several sub-components together, such as the analog-to-digital converter (ADC) and the measuring device (the sensor). Each component has its own resolution, and the resolution of the whole system is limited by the coarsest component: the system cannot resolve finer than its coarsest part. An ideal \(N\)-bit ADC has code steps of 1 LSB = FS/2N [1], but a real converter also has input noise, and the number of bits that can actually be told apart is limited by that noise (the noise-free resolution) [2]. In the measurement vocabulary, resolution is the smallest change of the measured quantity that causes a perceptible change of the indication, and it may depend on noise [3].
Resolution คือค่าการเปลี่ยนแปลงที่น้อยที่สุดของปริมาณที่ระบบสามารถตรวจจับหรือแยกแยะได้ เป็นคุณสมบัติที่บ่งบอกถึง “ความละเอียด” ของระบบวัดหรือระบบควบคุม ค่า Resolution ของระบบเกิดจากองค์ประกอบย่อยหลายส่วนรวมกัน เช่น ตัวแปลงสัญญาณอนาล็อกเป็นดิจิทัล (ADC) และอุปกรณ์วัด (Sensor) โดยแต่ละส่วนมีค่า Resolution ของตัวเองไม่เท่ากัน และ Resolution ของทั้งระบบจะถูกจำกัดด้วยส่วนที่มีค่า Resolution หยาบที่สุดในระบบนั้น (ระบบจะละเอียดได้ไม่เกินองค์ประกอบที่หยาบที่สุด) ADC ในอุดมคติ \(N\) บิตมีขั้นของรหัสละ 1 LSB = FS/2N [1] แต่ตัวแปลงจริงมีสัญญาณรบกวนที่อินพุตด้วย และจำนวนบิตที่แยกแยะได้จริงถูกจำกัดด้วยสัญญาณรบกวนนั้น (noise-free resolution) [2] ในศัพท์ทางมาตรวิทยา resolution คือการเปลี่ยนแปลงที่น้อยที่สุดของปริมาณที่วัดซึ่งทำให้ค่าที่แสดงเปลี่ยนอย่างสังเกตได้ และอาจขึ้นกับสัญญาณรบกวน [3]
Example 1 A weighing system made of a load cell, an ADC circuit (HX711) and an Arduino. Assume the following.
ตัวอย่างที่ 1 ระบบชั่งน้ำหนักด้วย Load cell ซึ่งประกอบด้วย Load cell, วงจร ADC (HX711) และ Arduino สมมติให้
- The load cell has a sensitivity \(S\) of 1 mV per gram.
- One level of the ADC is equal to 0.1 mV.
- The power supply that excites the load cell has a noise of about ±10 mV.
- Load cell มีค่า Sensitivity \(S\) เท่ากับ 1 mV ต่อ 1 กรัม
- ADC มีค่า 1 level เท่ากับ 0.1 mV
- แหล่งจ่ายไฟที่ป้อนให้ Load cell มีสัญญาณรบกวน (noise) ประมาณ ±10 mV
The resolution from each component, expressed in grams by dividing a voltage by the sensitivity:
Resolution จากแต่ละองค์ประกอบ (แปลงแรงดันเป็นกรัมโดยหารด้วย Sensitivity):
\[ \mathrm{Resolution}_{\mathrm{ADC}} = \frac{V_L}{S} = \frac{0.1\ \mathrm{mV}}{1\ \mathrm{mV/g}} = 0.1\ \mathrm{g} \] \[ \mathrm{Resolution}_{\mathrm{noise}} = \frac{V_{\mathrm{noise}}}{S} = \frac{10\ \mathrm{mV}}{1\ \mathrm{mV/g}} = 10\ \mathrm{g} \] \[ \mathrm{Resolution}_{\mathrm{system}} = \max\!\left(\mathrm{Resolution}_{\mathrm{ADC}},\ \mathrm{Resolution}_{\mathrm{noise}}\right) = 10\ \mathrm{g} \]In theory the ADC can tell weights apart down to 0.1 g. But the noise from the power supply (±10 mV) is much coarser than the ADC step, so the system cannot really measure down to 0.1 g. In practice the resolution of this scale is limited by the noise of the power supply, about 10 g, not by the 0.1 g that the ADC could give. That is why this lab measures resolution from the noise actually present in the readings.
จากตัวอย่างที่ 1 จะเห็นว่าในทางทฤษฎี ADC สามารถแยกแยะน้ำหนักได้ละเอียดถึง 0.1 กรัม แต่เนื่องจากสัญญาณรบกวนจากแหล่งจ่ายไฟ (±10 mV) มีค่าหยาบกว่าความละเอียดของ ADC มาก ระบบจึงไม่สามารถวัดได้ละเอียดถึง 0.1 กรัมจริง ในทางปฏิบัติ Resolution ของระบบชั่งน้ำหนักนี้จึงถูกจำกัดโดย noise ของแหล่งจ่ายไฟ อยู่ที่ประมาณ 10 กรัม ไม่ใช่ 0.1 กรัมตามที่ ADC ทำได้ เพราะเหตุนี้แล็บนี้จึงวัด resolution จากสัญญาณรบกวนที่มีอยู่จริงในค่าที่อ่านได้
Digital resolution Digital Resolution
Digital resolution is the resolution of an analog-to-digital converter (ADC), or of a digital-to-analog converter (DAC). It depends on the number of bits \(n\) used to represent the value: the measurable range is divided into \(2^{n}\) levels within the full-scale range (FSR), so one level is [1]
Digital Resolution คือความละเอียดของตัวแปลงสัญญาณอนาล็อกเป็นดิจิทัล (ADC) หรือดิจิทัลเป็นอนาล็อก (DAC) ขึ้นอยู่กับจำนวนบิต (\(n\)) ที่ใช้แทนค่า โดยช่วงที่วัดได้จะถูกแบ่งออกเป็น \(2^{n}\) ระดับ ภายในช่วงเต็มสเกล (Full Scale Range, FSR) ดังนั้นหนึ่งระดับมีค่า [1]
\[ \Delta V_{\mathrm{ADC}} = \frac{\mathrm{FSR}}{2^{n}} \tag{1} \]Example 2 The HX711 is a 24-bit ADC. On channel A at gain 128 its input range is ±20 mV [4] (the Arduino library uses gain 128 by default [5]), so FSR = 40 mV and it can output codes from −8,388,608 to 8,388,608. Find the digital resolution.
ตัวอย่างที่ 2 HX711 เป็น ADC 24 บิต ช่อง A เมื่อ gain 128 มีช่วงอินพุต ±20 mV [4] (ไลบรารีสำหรับ Arduino ใช้ gain 128 เป็นค่าเริ่มต้น [5]) จึงมี FSR = 40 mV และให้รหัสได้ตั้งแต่ −8,388,608 ถึง 8,388,608 จงคำนวณหา Digital Resolution
\[ \Delta V_{\mathrm{ADC}} = \frac{20\ \mathrm{mV}}{2^{24}/2} = \frac{20\ \mathrm{mV}}{8{,}388{,}608} \approx 2.4\ \mathrm{nV} \]So this ADC can resolve a change of the input voltage of about 2.4 nV per level (about 2 nV). If the load cell has a sensitivity of 1 mV per gram, the ADC resolution can be converted into weight by dividing by the sensitivity:
Digital Resolution มีค่าประมาณ 2.4 nV (ราว 2 nV) หมายความว่า ADC ตัวนี้สามารถแยกแยะการเปลี่ยนแปลงของแรงดันไฟฟ้าได้ละเอียดประมาณ 2.4 nV ต่อ 1 level ถ้า Load cell มีค่า Sensitivity เท่ากับ 1 mV ต่อ 1 กรัม สามารถแปลงความละเอียดของ ADC ให้อยู่ในหน่วยน้ำหนักได้ โดยหารด้วยค่า Sensitivity ของ Load cell
\[ \mathrm{Resolution}_{\mathrm{ADC}} = \frac{V_L}{S} = \frac{2.4\ \mathrm{nV}}{1\ \mathrm{mV/g}} \approx 2\ \mu\mathrm{g} \]Considering only the limit of the ADC and ignoring noise, this weighing system could resolve a weight change down to about 2 micrograms.
เมื่อพิจารณาเฉพาะข้อจำกัดจาก ADC ไม่รวมผลของ noise ระบบชั่งน้ำหนักนี้สามารถแยกแยะการเปลี่ยนแปลงน้ำหนักได้ละเอียดถึง 2 ไมโครกรัม
Sensor resolution Sensor Resolution
Sensor (device) resolution is the smallest change of the quantity that the sensor can really tell apart from its output signal. For a scale this is the smallest weight change that can be distinguished. In practice the resolution of the sensor cannot be separated from the rest of the measuring system as cleanly as in Example 1, so the sensor resolution is judged from the noise that is mixed into the value read from the instrument. A common way to evaluate it is to record the reading many times while the weight is constant, then compute the sample standard deviation \(\sigma\) of the data set. The divisor \(N-1\) is the standard estimate of the spread from a finite set of observations [6]:
Sensor Resolution หรือ Device resolution คือการเปลี่ยนแปลงของปริมาณที่น้อยที่สุดที่เซนเซอร์สามารถแยกแยะได้จริงจากสัญญาณเอาต์พุต ในกรณีของเครื่องชั่งนี้คือค่าน้ำหนักที่น้อยที่สุดที่สามารถแยกแยะได้ ในทางปฏิบัติเราไม่สามารถแยก Resolution ของเซนเซอร์กับระบบวัดได้เหมือนตัวอย่างที่ 1 ดังนั้น Resolution ของ sensor จึงพิจารณาสัญญาณรบกวน (Noise) ที่ปนอยู่ในค่าที่อ่านได้จากเครื่องมือวัด วิธีที่นิยมใช้ประเมิน Resolution คือการบันทึกค่าที่อ่านได้ซ้ำหลายครั้งขณะน้ำหนักคงที่ แล้วคำนวณส่วนเบี่ยงเบนมาตรฐาน (Standard Deviation, \(\sigma\)) ของชุดข้อมูล ตัวหาร \(N-1\) เป็นตัวประมาณมาตรฐานของการกระจายจากข้อมูลจำนวนจำกัด [6] ตามสมการ
\[ \sigma = \sqrt{\frac{\sum_{i=1}^{N}\left(x_i - \bar{x}\right)^{2}}{N-1}} \tag{2} \]where \(N\) is the number of readings, \(x_i\) is reading number \(i\) and \(\bar{x}\) is the mean of the readings. It is undefined for \(N < 2\), so the SD boxes show “—” then. The device resolution is defined here as three times \(\sigma\):
เมื่อ \(N\) คือจำนวนที่บันทึก \(x_i\) คือข้อมูลที่บันทึกได้ครั้งที่ \(i\) และ \(\bar{x}\) คือค่าเฉลี่ยของข้อมูลที่บันทึกได้ ค่าไม่นิยามเมื่อ \(N < 2\) ช่อง SD จึงแสดง “—” โดย Resolution ของอุปกรณ์นิยามเป็น (Device resolution) 3 เท่าของ \(\sigma\) ดังสมการที่ (3)
\[ \mathrm{Resolution} = 3\sigma \tag{3} \]If the noise is roughly normally distributed, about 99.73% of the readings lie within three standard deviations of the mean (the 68–95–99.7 rule) [7], so a change of weight much smaller than \(3\sigma\) cannot be reliably told apart from the scatter of the noise. Other conventions exist: Analog Devices, for example, multiplies the rms noise by 6.6 to obtain a peak-to-peak value that captures 99.9% of the values [2]. The page shows \(3\sigma\), in grams, in the Resolution (3σ) box.
เมื่อสัญญาณรบกวนมีการแจกแจงใกล้เคียงปรกติ ค่าที่อ่านได้ประมาณ 99.73% จะอยู่ภายในสามเท่าของส่วนเบี่ยงเบนมาตรฐานจากค่าเฉลี่ย (กฎ 68-95-99.7, 68–95–99.7 rule) [7] การเปลี่ยนแปลงของน้ำหนักที่น้อยกว่า \(3\sigma\) มากจึงแยกออกจากการกระจายของสัญญาณรบกวนได้ไม่น่าเชื่อถือ ยังมีข้อกำหนดแบบอื่น เช่น Analog Devices คูณค่า rms ของสัญญาณรบกวนด้วย 6.6 เพื่อให้ได้ค่า peak-to-peak ที่ครอบคลุม 99.9% ของค่าทั้งหมด [2] หน้านี้แสดง \(3\sigma\) เป็นกรัมในช่อง Resolution (3σ)
Moving average. Averaging the last \(N\) samples smooths random noise, so the scatter of the averaged weights, and with it \(3\sigma\), becomes smaller: the resolution improves [2]. The price is speed. The output settles on a new weight only after the old samples have left the average, so the response time is limited by the number of averaging points [2]. Successive averages also share most of their samples, so they are not independent readings.
Moving average การเฉลี่ยตัวอย่างล่าสุด \(N\) ค่าช่วยลดสัญญาณรบกวนแบบสุ่ม ทำให้การกระจายของน้ำหนักที่เฉลี่ยแล้ว และ \(3\sigma\) เล็กลง คือ resolution ดีขึ้น [2] แต่ต้องแลกกับความเร็ว ค่าที่แสดงจะเข้าสู่น้ำหนักใหม่ก็ต่อเมื่อตัวอย่างเก่าหลุดออกจากการเฉลี่ยแล้ว เวลาตอบสนองจึงถูกจำกัดด้วยจำนวนจุดที่เฉลี่ย [2] ค่าเฉลี่ยที่ต่อเนื่องกันยังใช้ตัวอย่างชุดเดียวกันเป็นส่วนใหญ่ จึงไม่ใช่ค่าที่อ่านอิสระต่อกัน
Equipment อุปกรณ์ที่ต้องใช้
- Load cell with four wires (red, black, green, white)
- HX711 module
- Arduino Uno board and a USB cable
- Jumper wires
- One fixed weight (it stays on the platform for every run)
- A computer with Arduino IDE (with the HX711 library [5]) and the Chrome or Edge browser
- Load Cell ที่มีสายสี่เส้น (แดง ดำ เขียว ขาว)
- โมดูล HX711
- บอร์ด Arduino Uno และสาย USB
- สายจัมเปอร์
- ตุ้มน้ำหนักหนึ่งตัว (วางไว้บนแท่นชั่งตลอดทุกรอบการวัด)
- คอมพิวเตอร์ที่ติดตั้ง Arduino IDE (พร้อมไลบรารี HX711 [5]) และเบราว์เซอร์ Chrome หรือ Edge
Wiring การต่อสาย
Connect the four load-cell wires to the E+, E−, A− and A+ terminals of the HX711, then the HX711's VCC, GND, DT and SCK to the Arduino's 5V, GND, D3 and D2 respectively. The sketch below uses the data pins dataPin = 3, clockPin = 2
ต่อสายโหลดเซลล์ทั้งสี่เส้นเข้ากับขั้ว E+, E−, A− และ A+ ของ HX711 จากนั้นต่อ VCC, GND, DT และ SCK ของ HX711 เข้ากับ 5V, GND, D3 และ D2 ของ Arduino ตามลำดับ สเก็ตช์ด้านล่างใช้ขาข้อมูล dataPin = 3, clockPin = 2
Arduino code Arduino code
The sketch uses the HX711 library [5] and is the same as in the Sensitivity lab, except for the delay. In setup() the serial port is used at 9600 baud and the HX711 is connected through pin D3 (data) and pin D2 (clock). In loop() the 24-bit sensor value is read with scale.read(), one value per line is printed to the serial port, and then it waits 1000 ms, so a new value arrives about every second. Serial.begin(9600) must match the board rate in this page below.
สเก็ตช์นี้ใช้ไลบรารี HX711 [5] และเป็นสเก็ตช์เดียวกับแล็บ Sensitivity ยกเว้นเวลาหน่วง ในฟังก์ชัน setup() ใช้พอร์ตอนุกรมที่ 9600 baud และเชื่อมต่อ HX711 ผ่านขา D3 (ข้อมูล) และขา D2 (สัญญาณนาฬิกา) ในฟังก์ชัน loop() อ่านค่าเซนเซอร์ 24 บิตด้วย scale.read() พิมพ์ค่าหนึ่งค่าต่อหนึ่งบรรทัดทางพอร์ตอนุกรม แล้วหน่วงเวลา 1000 ms จึงได้ค่าใหม่ประมาณวินาทีละค่า ค่า Serial.begin(9600) ต้องตรงกับ board rate ในหน้านี้ด้านล่าง
#include <HX711.h>
const int dataPin=3;
const int clockPin=2;
long value=0;
HX711 scale;
void setup() {
Serial.begin(9600);
scale.begin(dataPin, clockPin);
}
void loop() {
value=scale.read();
Serial.println(value);
delay(1000);
}
How to use this lab วิธีใช้เครื่องมือ
- Close the Arduino IDE's Serial Monitor (only one program can use the port), then use Chrome or Edge on this page.
- Calibrate as in the Sensitivity lab (fill the Calibration table, then press Update calibration data), or press Import calibration to load a saved file. The Weight (g) box must be showing a weight.
- Set the Setting board rate to 9600, press Connect, and choose the Arduino port in the browser's dialog. Put one fixed weight on the platform and leave it untouched for every run below.
- Set Number of average to 1 and press Play. Wait until the weight trace is steady (the handout suggests at least 10 s, then 20 s for 10 points and 210 s for 100 points), then press Pause. After Connect or Play the moving average shows 0 until that many samples have arrived, so wait for a real value.
- Consider the Weight (g) versus time chart by moving the mouse over the trace: a box shows the time and weight of the nearest point. Then record 10 consecutive values counting back from the last value (one per second). Graph console → Fixed limits lets you narrow the time axis to the last few seconds so the points are easy to hit.
- Set Number for SD to 10. The SD box beside Weight (g) and the Resolution (3σ) box then use the last 10 weights, the same ones you recorded.
- Calculate the mean, \(\sigma\) and \(3\sigma\) yourself from your 10 recorded values, and compare with the two boxes; they should be close.
- Repeat with Number of average = 10 and then 100 (change it while paused, then press Play; Play restarts the capture) and compare how \(3\sigma\) changes.
- ปิด Serial Monitor ของ Arduino IDE (พอร์ตใช้ได้ทีละโปรแกรม) แล้วใช้ Chrome หรือ Edge เปิดหน้านี้
- สอบเทียบตามแล็บ Sensitivity (กรอก Calibration table แล้วกด Update calibration data) หรือกด Import calibration เพื่อโหลดไฟล์ที่บันทึกไว้ ช่อง Weight (g) ต้องแสดงค่าน้ำหนักแล้ว
- ตั้ง Setting board rate เป็น 9600 กด Connect แล้วเลือกพอร์ตของ Arduino ในกล่องโต้ตอบของเบราว์เซอร์ วางน้ำหนักหนึ่งตัวบนแท่นชั่ง และห้ามแตะต้องตลอดทุกรอบด้านล่าง
- ตั้ง Number of average เป็น 1 แล้วกด Play รอจนเส้นน้ำหนักนิ่ง (เอกสารปฏิบัติการแนะนำอย่างน้อย 10 s ส่วน 10 จุดใช้ 20 s และ 100 จุดใช้ 210 s) แล้วกด Pause หลัง Connect หรือ Play ค่า moving average จะแสดง 0 จนกว่าจะมีตัวอย่างครบตามจำนวน จึงต้องรอให้ได้ค่าจริง
- พิจารณากราฟ Weight (g) เทียบเวลา โดยเลื่อนเมาส์ไปชี้บนเส้น จะมีกล่องแสดงเวลาและน้ำหนักของจุดที่ใกล้ที่สุด หลังจากนั้นบันทึกค่าต่อเนื่อง 10 ค่าจากค่าสุดท้าย (วินาทีละค่า)
การใช้ Graph console → Fixed limits ช่วยบีบแกนเวลาให้เหลือไม่กี่วินาทีสุดท้าย จะชี้จุดได้ง่ายขึ้น - ตั้ง Number for SD เป็น 10 ช่อง SD ข้าง Weight (g) และช่อง Resolution (3σ) จะใช้น้ำหนัก 10 ค่าล่าสุด ซึ่งเป็นชุดเดียวกับที่คุณบันทึกไว้
- คำนวณค่าเฉลี่ย \(\sigma\) และ \(3\sigma\) ด้วยตัวเองจากค่า 10 ค่าที่บันทึก แล้วเทียบกับสองช่องนั้น ควรได้ค่าใกล้เคียงกัน
- ทำซ้ำที่ Number of average = 10 และ 100 (เปลี่ยนค่าตอน Pause แล้วกด Play ซึ่งเป็นการเริ่มเก็บใหม่) แล้วเทียบว่า \(3\sigma\) เปลี่ยนไปอย่างไร
Worked example (made-up numbers) ตัวอย่างการตีความผล (ตัวเลขสมมติ)
Suppose the last ten weights read from the chart are those in Table 1. They are invented for illustration.
สมมติน้ำหนัก 10 ค่าสุดท้ายที่อ่านจากกราฟเป็นไปตามตารางที่ 1 ตัวเลขนี้แต่งขึ้นเพื่อประกอบคำอธิบาย
| i | Weight \(x_i\) (g)น้ำหนัก \(x_i\) (g) |
|---|---|
| 1 | 99.8 |
| 2 | 100.3 |
| 3 | 100.1 |
| 4 | 99.6 |
| 5 | 100.4 |
| 6 | 99.9 |
| 7 | 100.2 |
| 8 | 99.7 |
| 9 | 100.5 |
| 10 | 100.0 |
With \(N = 10\):
\(\bar{x} = 1000.5/10 = 100.05\) g
\(\sum (x_i - \bar{x})^{2} = 0.825\) g²
\(\sigma = \sqrt{0.825/(10-1)} \approx 0.3028\) g
\(3\sigma \approx 0.9083\) g
These are the numbers the SD and Resolution (3σ) boxes show for the same ten weights. So this scale can separate weights only if the samples differ in weight by about 0.9 g.
เมื่อ \(N = 10\):
\(\bar{x} = 1000.5/10 = 100.05\) g
\(\sum (x_i - \bar{x})^{2} = 0.825\) g²
\(\sigma = \sqrt{0.825/(10-1)} \approx 0.3028\) g
\(3\sigma \approx 0.9083\) g
ช่อง SD และ Resolution (3σ) จะแสดงตัวเลขเหล่านี้เมื่อใช้น้ำหนักสิบค่าชุดเดียวกัน ดังนั้นเครื่องชั่งนี้จะแยกน้ำหนักได้ก็ต่อเมื่อตัวอย่างมีน้ำหนักต่างกันราว 0.9 g
Reading the result: if a run with a larger Number of average should give a smaller \(3\sigma\), this shows that the averaging improves the resolution, at the cost of a slower response.
การตีความ: ถ้ารอบที่ใช้ Number of average มากขึ้น ควรให้ \(3\sigma\) น้อยลง แสดงว่าการเฉลี่ยทำให้ resolution ดีขึ้น โดยแลกกับการตอบสนองที่ช้าลง
Common mistakes & limitations ข้อควรระวังและข้อจำกัด
- Drift during collection is counted as noise, because \(\sigma\) measures all scatter in the window, and load cells drift over time [2]. Wait until the trace is steady and keep the ten readings close together in time.
- Do not change Number of average while streaming; pause, change the value, then press Play to start collecting new data.
- drift ระหว่างเก็บข้อมูลจะถูกนับเป็นสัญญาณรบกวน เพราะ \(\sigma\) วัดการกระจายทั้งหมดในช่วงข้อมูล และโหลดเซลล์มีการ drift ตามเวลา [2] จึงควรรอให้เส้นนิ่งและเก็บค่าทั้งสิบให้ใกล้กันในเวลา
- อย่าเปลี่ยน Number of average ขณะที่กำลังรับค่า ให้ Pause เปลี่ยนค่า แล้วกด Play เพื่อเริ่มเก็บข้อมูลใหม่
—
| N | True weight (W, g)น้ำหนักจริง (W, g) | Sensor value (L, ADC level)ค่าเซนเซอร์ (L, ADC level) |
|---|---|---|
| 1 | ||
| 2 | ||
| 3 | ||
| 4 |
Referencesเอกสารอ้างอิง
- Analog Devices, "Chapter 20: Analog to digital conversion," Analog Devices Wiki (university program electronics text). Accessed: Sep. 28, 2026. [Online]. Available: https://wiki.analog.com/university/courses/electronics/text/chapter-20
- C. Slattery and M. Nie, "A reference design for high-performance, low-cost weigh scales," Analog Dialogue, vol. 39, Dec. 2005. Accessed: Sep. 28, 2026. [Online]. Available: https://www.analog.com/en/resources/analog-dialogue/articles/a-reference-design-for-weigh-scales.html
- Joint Committee for Guides in Metrology, International Vocabulary of Metrology – Basic and General Concepts and Associated Terms (VIM), 3rd ed., JCGM 200:2012 (2008 version with minor corrections), entry 4.14. Accessed: Sep. 28, 2026. [Online]. Available: https://www.bipm.org/documents/20126/2071204/JCGM_200_2012.pdf
- Avia Semiconductor, "HX711: 24-bit analog-to-digital converter (ADC) for weigh scales," Datasheet. Accessed: Sep. 28, 2026. [Online]. Available: https://cdn.sparkfun.com/datasheets/Sensors/ForceFlex/hx711_english.pdf
- "HX711 Arduino Library," ver. 0.7.5, GitHub. [Online]. Available: https://github.com/bogde/HX711
- Joint Committee for Guides in Metrology, Evaluation of Measurement Data – Guide to the Expression of Uncertainty in Measurement, JCGM 100:2008, 1st ed., Sep. 2008, cl. 4.2.2, Eq. (4). Accessed: Sep. 28, 2026. [Online]. Available: https://www.bipm.org/documents/20126/2071204/JCGM_100_2008_E.pdf
- "68–95–99.7 rule," Wikipedia. Accessed: Sep. 28, 2026. [Online]. Available: https://en.wikipedia.org/wiki/68%E2%80%9395%E2%80%9399.7_rule