【貂蝉がプログラミングを学ぶ】Arduinoハンズオン(37) - MQ-3エタノール可燃性ガス・アルコールセンサーモジュールの実際のテスト状況

ここに画像の説明を挿入

37 個のセンサーとモジュールについての言及はインターネット上で広く広まっていますが、実際には、Arduino と互換性のあるセンサー モジュールは 37 個以上あるはずです。手持ちのセンサーやモジュールがいくつかあるので、真の知識(手を動かさなければならない)の概念に従って、学習とコミュニケーションの目的で、一つずつ実験してみるつもりです成功したか失敗したかをここに記録します。Xiao Xiao 進捗状況や解決できない問題については、レンガを投げて翡翠を輝かせることができれば幸いです。

[Arduino] 108 センサーモジュール シリーズ実験 (データ + コード + グラフィック + シミュレーション)
実験 37 MQ-3 アルコール センサー モジュール エタノール 可燃性ガス 敏感ガス 高感度検出 警報 センサー プローブ

ここに画像の説明を挿入
ここに画像の説明を挿入

ここに画像の説明を挿入

ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入

Arduino実験配線図

ここに画像の説明を挿入
ここに画像の説明を挿入

非常に単純なテスト プログラム。シリアル ポート データを読み取り、実験波形を確認します。Arduino 実験
オープン ソース コード

/*
  【Arduino】108种传感器模块系列实验(资料+代码+图形+仿真)
  实验三十七:MQ-3酒精乙醇传感器模块(半导体式表面电阻控制型)
*/

void setup()
{
    
    
  Serial.begin(9600);
  pinMode(A0, INPUT);
}

void loop()
{
    
    
  Serial.println(analogRead(A0));
  delay(200);
}

予熱後のシリアルポートデータは約250です。

ここに画像の説明を挿入

その後、シリアル ポートから出力される数値は下がり続け、約 10 分で 75 程度で安定しました。

ここに画像の説明を挿入

実験では75%の家庭用消毒用アルコールを使用した

ここに画像の説明を挿入

このモジュールは確かにアルコールに非常に敏感で、最高値は 800 以上に上昇します。

ここに画像の説明を挿入

アルコールボトルのキャップを締めた後、データはゆっくりと減少するプロセスを経ます

ここに画像の説明を挿入

ここに画像の説明を挿入

地面に少量のアルコールを振りかけると検出できますが、データ範囲ははるかに小さくなります。

ここに画像の説明を挿入

アルコール濃度を検出するための視覚アラーム プログラム。現在の定常状態データは 68 です。

ここに画像の説明を挿入

過剰なアルコール濃度(400以上)が検出されると、警告灯が点灯します。

ここに画像の説明を挿入
【Arduino】108種類のセンサーモジュールシリーズ実験(データ+コード+グラフィックス+シミュレーション)
実験37:MQ-3アルコールエタノールセンサーモジュール(半導体表面抵抗制御型)第2回
Arduino実験オープンソースコード

/*
  【Arduino】108种传感器模块系列实验(资料+代码+图形+仿真)
  实验三十七:MQ-3酒精乙醇传感器模块(半导体式表面电阻控制型)之二
*/

int Buzzer = 8;  // 定义数字口8 为Buzzer (蜂鸣器)

void setup()
{
    
    
  pinMode(Buzzer, OUTPUT);  // 定义数字口8 为输出模式
  Serial.begin(9600);
}

void loop()
{
    
    
  int val;
  val = analogRead(A0);
  Serial.println(val, DEC);
  while (val < 400)
  {
    
    
    digitalWrite(Buzzer, LOW); //蜂鸣器不响
    val = analogRead(A0);
    Serial.println(val, DEC);
  }
  digitalWrite(Buzzer, HIGH); // 蜂鸣器响
}
/*
  【Arduino】108种传感器模块系列实验(资料+代码+图形+仿真)
  实验三十七:MQ-3酒精乙醇传感器模块(半导体式表面电阻控制型)之三
*/

const int gasSensor = 0;

void setup() {
    
    
  Serial.begin(9600);      // sets the serial port to 9600
}

void loop() {
    
    
  float voltage;
  voltage = getVoltage(gasSensor);

  Serial.println(voltage);
  delay(1000);
}

float getVoltage(int pin) {
    
    
  return (analogRead(pin) * 0.004882814);
  // This equation converts the 0 to 1023 value that analogRead()
  // returns, into a 0.0 to 5.0 value that is the true voltage
  // being read at that pin.
}

Arduinoの実験シーン図

ここに画像の説明を挿入
ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/weixin_41659040/article/details/132507160