BASIC4MCU | 질문게시판 | 님들 MG811 이산화탄소 센서를 쓰는데
페이지 정보
작성자 라칸 작성일2024-05-03 14:23 조회353회 댓글0건본문
/************************ CO2 Hardware Related Macros************************************/
#define DC_GAIN (8.5) //define the DC gain of amplifier
/********************** CO2 Application Related Macros**********************************/
#define ZERO_POINT_VOLTAGE (0.360) // 이산화탄소 농도가 400ppm일 때 전압값
#define REACTION_VOLTGAE (0.130) // 이산화탄소 농도가 1000ppm로 이동할때 전압강하(1000ppm : 230mv)
/***************************** CO2 Globals***********************************************/
float fCO2Curve[3] = {2.602, ZERO_POINT_VOLTAGE, (REACTION_VOLTGAE / (2.602 - 3))};
float fGetCo2Value(float _fVolts, float *_fPcurve)
{
if ((_fVolts/DC_GAIN) >= ZERO_POINT_VOLTAGE)
{
return -1;
}
else
{
return pow(10, ((_fVolts / DC_GAIN) - _fPcurve[1]) / _fPcurve[2] + _fPcurve[0]);
}
}
인터넷에 나온 식을 쓰는데 _fVolts값도 센서 출력 전압과 비슷하게 나오는데 0.29v로 계산되어도 2000~3000ppm이 넘게 나오는데ZERO_POINT_VOLTAGE, REACTION_VOLTGAE은 센서 출력을 측정한거 쓰는건데도 문제가 있어서fCO2Curve 여길 수정할 수 밖에 없는데 2.602이걸 조절하는게 맞나 싶기도 해서요다른 사람들은 DC_GAIN, fCO2Curve 수정 안하던데
댓글 0
조회수 353등록된 댓글이 없습니다.