diff --git a/rapimeasure.py b/rapimeasure.py index 8e121c0..0c5f684 100644 --- a/rapimeasure.py +++ b/rapimeasure.py @@ -18,6 +18,8 @@ SCK_PIN = 6 # GPIO6 -> 31번 핀 # 설정 변수 CALIBRATION_FACTOR = -411.17 # 캘리브레이션 팩터 +measure_delay = 0.1 # 측정 간격 (초) +density = 1.0 # 기본값: 물 (1.0 g/ml) # 상태 변수 is_calibrated = False @@ -61,6 +63,8 @@ def perform_calibration(): print("영점 조정 중...") + + # 10번 읽어서 평균값을 오프셋으로 사용 readings = [] for _ in range(10): readings.append(hx.read()) @@ -92,16 +96,35 @@ def tare(): print(">> 영점 조정 완료!\n") +def get_weight(): + """무게 측정 함수""" + raw_value = hx.read() + + # (RAW 값 - 오프셋) / 캘리브레이션 팩터 = 무게 + weight_g = (raw_value - offset_value) / CALIBRATION_FACTOR + weight_g = max(0, weight_g) # 음수 값 방지 + + # 밀도 적용 (부피 계산) + volume_ml = weight_g / density + + return weight_g, volume_ml + + def main(): if not init_hx711(): return perform_calibration() - print("5초 후 tare() 테스트...") - time.sleep(5) - tare() + print("무게 측정 테스트 (10회):") + print("-" * 50) + for i in range(10): + weight_g, volume_ml = get_weight() + print(f" [{i+1:2d}] {weight_g:.1f}g / {volume_ml:.1f}ml") + time.sleep(measure_delay) + + print("-" * 50) print("테스트 완료")