BASIC4MCU | 질문게시판 | 무게 센서를 이용하여 마신 물의양을 측정하는 법에대해 질문드리겠습니다
페이지 정보
작성자 살려주세요ㅠㅜ 작성일2020-04-07 16:18 조회8,095회 댓글1건본문
// 맨 밑에 마신 물의양을 측정하는 코드가 있습니다 !
#include <HX711.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// circuit wiring
#define LOADCELL_DOUT_PIN 2
#define LOADCELL_SCK_PIN 3
// 오프셋 수동 조절 시 변경할 단위(g)
#define CHANGE_OFFSET_VALUE 0.1
// 최대 측정 범위 (g)
#define LOADCELL_MAX_RANGE 5000
// ADC 모듈에서 측정된 결과값을 (loadcellValue)값 당 1g으로 변환해 줌
// 무게 단위 표시
enum SELECT_UNIT_LIST{
AutoUnit,
GramUnit,
KiloGramUnit
};
enum SELECT_UNIT_LIST selectUnit = GramUnit;
HX711 scale;
LiquidCrystal_I2C lcd(0x27,16,2); // set the LCD address to 0x27 for a 16 chars and 2 line display
float savespace = 0;
float drink = 0;
float calibration_factor= -7050;void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
// 로드셀 HX711 보드 pin 설정
scale.begin(LOADCELL_DOUT_PIN, LOADCELL_SCK_PIN);
// 측정값 1회 읽어오기
Serial.print("read: \t\t");
Serial.println(scale.read());
delay(1000);
// 스케일 설정
scale.set_scale(calibration_factor);
//스케일 값 확인
Serial.print("Scale value :\t");
Serial.println(scale.get_scale());
//여기부터 마신 물의양을 측정하는 코드입니다 !!
void loop() {
// put your main code here, to run repeatedly:
float value;
// 오프셋 및 스케일이 적용된 측정값 (5회 측정 평균값) 파운드를 g으로 변환
value = 453.592 * scale.get_units(5);
// 측정 값 출력
void printValue(float value)
{
if (value-savespace >= 100) // 텀블러에 들어있는 물의 무게를 저장하는 코드입니다 최소 100g의 물의양이 증가해야 물의 무게를 다시 저장하는겁니다
savespace=value;.
if (value < savespace) // 물을 마시거나 도중에 물을 채웟을때 마신 물의양을 측정하는 코드입니다.
{
drink=drink+savespace-value;
savespace=value ;
value 는 로드셀에서 측정한 값(g)이고 savespace는 물의 무게를 측정하기 위해 (주머니 같은 개념으로?)선언한 변수입니다
drink 는 마신 물의 양입니다
뭐가 문제인지 잘 모르겠네요...
댓글 1
조회수 8,095master님의 댓글
master 작성일무슨 문제가 있는지 상세히 적어보세요