メニュー
Octopus MG811 CO2 ガスセンサーは、OCTOPUS シリーズの CO2 電子ブリックで、外観、PCB 固定穴、接続の基本設計は同じです。
CO2濃度が高くなると出力電圧は低くなります。カタログやコーディングサンプルを確認することで、CO2値を簡単に確認することができます。
CO2 プローブは、CO2 に対するアレルギー性が高く、アルコールや CO2 に対する耐干渉性を備えた工業用グレードで作られています。信号増幅回路を搭載しており、温度や湿度の異なる環境下でも高性能で迅速な応答を実現します。さらに、オンボードの加熱回路は、5V から安定した 6V 電圧に変換するのに役立ち、モジュールの適応性を直接向上させます。
このモジュールは電気化学 CO2 に属しており、動作中はプローブ自体が発熱します。怪我をする可能性があるため、触れないでください。
空気中に長時間さらされてプローブが「中毒」した場合や、プローブをアクティブにするためにさらに 48 時間加熱し続ける必要がある場合に備えて、センサーを使用していない間はシールを保管してください。
MG-811 プローブは電気化学センサーのカテゴリに属します。正確な値を得るために、使用する前に実証操作を行ってください。
プローブの動作電圧: 6v
昇圧回路を内蔵しており、入力DC3.7~5V、電流500mA以上に対応しています。
OCTOPUSの電子レンガ。
簡単接続。
アイテム | パラメータ |
名前 | Octopus MG811 CO2 ガスセンサー |
SKU | EF04100 |
動作電圧 | DC3.7~5v |
接続モード | G-GND、V-VCC、Sピン信号 |
サイズ | 31×48mm |
正味重量 | 9.6g |
このモジュールは、最良の留め具を備えた Dupont ワイヤを介して Arduino UNO の A0 に接続され、Arduino メインボードには追加の接続 (7.5V ~ 9V) で電力が供給されます。
MG-811 プローブは電気化学センサーのカテゴリに属します。正確な値を得るために、使用する前に実証操作を行ってください。安定した電力供給が行われると、プローブ自体が発熱します。モジュールを新鮮な空気の場所に置き、48 時間連続加熱してください。モジュールの出力電圧 (単位: V) を測定し、8.5 で割って、最終値をコードのマクロ定義に入力する必要があります。
#define ZERO_POINT_VOLTAGE (電圧(V)/8.5と修正)
たとえば、マルチメータでテストした電圧が 2.4V の場合、2.4/8.5=0.282 を使用し、以下のように修正する必要があります。
#define ゼロポイント電圧 (0.282)
修正後、Arduino メインボードにアップロードしてください。これを使用して独自のプロジェクトをテストできるようになります。
/ * MG-811 ガスセンサーモジュール V1.1 のデモ*
** /
/ **ハードウェア関連のマクロ** /
#define MG_PIN (A0) //使用するアナログ入力チャンネルを定義します
#define DC_GAIN (8.5) //アンプのDCゲインを定義
/ *ソフトウェア関連のマクロ** /
#define READ_SAMPLE_INTERVAL (50) //通常の操作で取得するサンプルの数を定義します
#define READ_SAMPLE_TIMES (5) //各サンプル間の時間間隔(ミリ秒単位)を定義します
//通常の動作
/**アプリケーション関連のマクロ**/
//これら 2 つの値はセンサーごとに異なります。ユーザーはこの値を決定する必要があります。
#define ZERO_POINT_VOLTAGE (0.220) // CO2 濃度が 400PPM の場合のセンサーの出力をボルトで定義します
#define REACTION_VOLTGAE (0.030) // センサーを空気中から 1000ppm CO2 に移動させたときのセンサーの電圧降下を定義します
/*グローバル* /
float CO2Curve[3] = {2.602,ZERO_POINT_VOLTAGE,(REACTION_VOLTGAE/(2.602-3))};
// 曲線から 2 つの点が取得されます。
//これら 2 つの点で線が形成されます。
//元の曲線と「ほぼ同等」。
//データ形式:{ x, y, 傾き};ポイント1: (lg400, 0.324)、ポイント2: (lg4000, 0.280)
//傾き = (反応電圧) / (log400 –log1000)
void setup()
{
シリアル.begin(9600); //UART セットアップ、ボーレート = 9600bps
Serial.print("MG-811 デモ\n");
}
ボイドループ()
{
int パーセンテージ;
フロートボルト;
volts = MGRead(MG_PIN); Serial.print( "SEN0159:" ); Serial.print(volts); Serial.print( "V " ); percentage = MGGetPercentage(volts,CO2Curve); Serial.print( "CO2:" ); if (percentage == -1) { Serial.print( "<400" ); } else { Serial.print(percentage); } Serial.print( "ppm" ); Serial.print( "\n" ); delay(500);
volts = MGRead(MG_PIN); Serial.print( "SEN0159:" ); Serial.print(volts); Serial.print( "V " ); percentage = MGGetPercentage(volts,CO2Curve); Serial.print( "CO2:" ); if (percentage == -1) { Serial.print( "<400" ); } else { Serial.print(percentage); } Serial.print( "ppm" ); Serial.print( "\n" ); delay(500);
volts = MGRead(MG_PIN); Serial.print( "SEN0159:" ); Serial.print(volts); Serial.print( "V " ); percentage = MGGetPercentage(volts,CO2Curve); Serial.print( "CO2:" ); if (percentage == -1) { Serial.print( "<400" ); } else { Serial.print(percentage); } Serial.print( "ppm" ); Serial.print( "\n" ); delay(500);
volts = MGRead(MG_PIN); Serial.print( "SEN0159:" ); Serial.print(volts); Serial.print( "V " ); percentage = MGGetPercentage(volts,CO2Curve); Serial.print( "CO2:" ); if (percentage == -1) { Serial.print( "<400" ); } else { Serial.print(percentage); } Serial.print( "ppm" ); Serial.print( "\n" ); delay(500);
volts = MGRead(MG_PIN); Serial.print( "SEN0159:" ); Serial.print(volts); Serial.print( "V " ); percentage = MGGetPercentage(volts,CO2Curve); Serial.print( "CO2:" ); if (percentage == -1) { Serial.print( "<400" ); } else { Serial.print(percentage); } Serial.print( "ppm" ); Serial.print( "\n" ); delay(500);
volts = MGRead(MG_PIN); Serial.print( "SEN0159:" ); Serial.print(volts); Serial.print( "V " ); percentage = MGGetPercentage(volts,CO2Curve); Serial.print( "CO2:" ); if (percentage == -1) { Serial.print( "<400" ); } else { Serial.print(percentage); } Serial.print( "ppm" ); Serial.print( "\n" ); delay(500);
volts = MGRead(MG_PIN); Serial.print( "SEN0159:" ); Serial.print(volts); Serial.print( "V " ); percentage = MGGetPercentage(volts,CO2Curve); Serial.print( "CO2:" ); if (percentage == -1) { Serial.print( "<400" ); } else { Serial.print(percentage); } Serial.print( "ppm" ); Serial.print( "\n" ); delay(500);
volts = MGRead(MG_PIN); Serial.print( "SEN0159:" ); Serial.print(volts); Serial.print( "V " ); percentage = MGGetPercentage(volts,CO2Curve); Serial.print( "CO2:" ); if (percentage == -1) { Serial.print( "<400" ); } else { Serial.print(percentage); } Serial.print( "ppm" ); Serial.print( "\n" ); delay(500);
volts = MGRead(MG_PIN); Serial.print( "SEN0159:" ); Serial.print(volts); Serial.print( "V " ); percentage = MGGetPercentage(volts,CO2Curve); Serial.print( "CO2:" ); if (percentage == -1) { Serial.print( "<400" ); } else { Serial.print(percentage); } Serial.print( "ppm" ); Serial.print( "\n" ); delay(500);
volts = MGRead(MG_PIN); Serial.print( "SEN0159:" ); Serial.print(volts); Serial.print( "V " ); percentage = MGGetPercentage(volts,CO2Curve); Serial.print( "CO2:" ); if (percentage == -1) { Serial.print( "<400" ); } else { Serial.print(percentage); } Serial.print( "ppm" ); Serial.print( "\n" ); delay(500);
volts = MGRead(MG_PIN); Serial.print( "SEN0159:" ); Serial.print(volts); Serial.print( "V " ); percentage = MGGetPercentage(volts,CO2Curve); Serial.print( "CO2:" ); if (percentage == -1) { Serial.print( "<400" ); } else { Serial.print(percentage); } Serial.print( "ppm" ); Serial.print( "\n" ); delay(500);
volts = MGRead(MG_PIN); Serial.print( "SEN0159:" ); Serial.print(volts); Serial.print( "V " ); percentage = MGGetPercentage(volts,CO2Curve); Serial.print( "CO2:" ); if (percentage == -1) { Serial.print( "<400" ); } else { Serial.print(percentage); } Serial.print( "ppm" ); Serial.print( "\n" ); delay(500);
volts = MGRead(MG_PIN); Serial.print( "SEN0159:" ); Serial.print(volts); Serial.print( "V " ); percentage = MGGetPercentage(volts,CO2Curve); Serial.print( "CO2:" ); if (percentage == -1) { Serial.print( "<400" ); } else { Serial.print(percentage); } Serial.print( "ppm" ); Serial.print( "\n" ); delay(500);
volts = MGRead(MG_PIN); Serial.print( "SEN0159:" ); Serial.print(volts); Serial.print( "V " ); percentage = MGGetPercentage(volts,CO2Curve); Serial.print( "CO2:" ); if (percentage == -1) { Serial.print( "<400" ); } else { Serial.print(percentage); } Serial.print( "ppm" ); Serial.print( "\n" ); delay(500);
}
/* MGRead *
入力: mg_pin - アナログチャネル
出力: SEN-000007 の出力
備考: この関数は SEN-000007 の出力を読み取ります。
** /
float MGRead(int mg_pin)
{
int i;
フロート v=0;
for (i=0;i<READ_SAMPLE_TIMES;i++) { v += analogRead(mg_pin); delay(READ_SAMPLE_INTERVAL); } v = (v/READ_SAMPLE_TIMES) *5/1024 ; return v;
for (i=0;i<READ_SAMPLE_TIMES;i++) { v += analogRead(mg_pin); delay(READ_SAMPLE_INTERVAL); } v = (v/READ_SAMPLE_TIMES) *5/1024 ; return v;
for (i=0;i<READ_SAMPLE_TIMES;i++) { v += analogRead(mg_pin); delay(READ_SAMPLE_INTERVAL); } v = (v/READ_SAMPLE_TIMES) *5/1024 ; return v;
for (i=0;i<READ_SAMPLE_TIMES;i++) { v += analogRead(mg_pin); delay(READ_SAMPLE_INTERVAL); } v = (v/READ_SAMPLE_TIMES) *5/1024 ; return v;
for (i=0;i<READ_SAMPLE_TIMES;i++) { v += analogRead(mg_pin); delay(READ_SAMPLE_INTERVAL); } v = (v/READ_SAMPLE_TIMES) *5/1024 ; return v;
for (i=0;i<READ_SAMPLE_TIMES;i++) { v += analogRead(mg_pin); delay(READ_SAMPLE_INTERVAL); } v = (v/READ_SAMPLE_TIMES) *5/1024 ; return v;
}
/* MQGetPercentage **
入力: ボルト - SEN-000007 出力はボルトで測定
pcurve - ターゲットガスの曲線へのポインタ
出力:対象ガスのppm
備考: 直線の傾きと点を利用する。 x(ppmの対数値)
y(MG-811 出力) が提供される場合、ラインの を導出することができます。そのままでは
対数座標、10 の累乗は結果を非対数に変換するために使用されます
価値。
** /
int MGGetPercentage(float ボルト, float *pcurve)
{
if ((ボルト/DC_GAIN )>=ZERO_POINT_VOLTAGE) {
-1 を返します。
} それ以外 {
return pow(10, ((ボルト/DC_GAIN)-pcurve[1])/pcurve[2]+pcurve[0]);
}
}
シリアル モニターを開くと、5 分後に周囲の CO2 濃度が表示されます。
アイテム | パラメータ |
Octopus MG811 CO2 ガスセンサー | 1 |