Arduinoでガス中酸素濃度を測定
Groce Oxygen Sensor編
必要なもの
- Arduino UNO
- Grove Oxygen Sensor
Grove Oxygen Sensorはアナログ出力。RobotShopまたはSEEEDから入手可能。
配線
- センサーは、基板、センサーそのもの、Groveケーブルの三点セットになっている。それらを組み立てる。
- 以下のようにArduinoとセンサー(に取り付けられたGroveケーブル)に繋げる。
- Arduinoの3.3Vまたは5V <--> センサーの赤色の線
- ArduinoのGND <--> センサーの黒色の線
- ArduinoのA0 <--> センサーの黄色の線
- (センサーの白色の線は使わない。)
そのあとは
Arduinoの「01.Basics>AnalogReadSerial」で試すことができる。ただし、センサーはウォームアップするのに数分かかることがある。数分後、analogRead(A0)の値が安定したら、センサーに息を吹きかけてみる。値が一旦下がり、再び元のレベルに戻るはず。
トラブル
- リスポンスが悪いことがあった。最近出たMIX8410を用いたセンサーは大丈夫かもしれない。
- 水や硫化水素対策(必要な場合)
- 結露を防ぐために加温することも考えられる。
- 硫化水素による劣化を防ぐため、金属部を樹脂(エポキシやシリコン充填剤)で保護する。
LuminOx (SSTセンシング)編
必要なもの
- Arduino UNO
- LuminOx 酸素センサー(国内ではグローバル電子株式会社から入手可能)
配線
なお、上記接続はジャンプワイヤーのオス-メスを用いてもよいし、また、センサーをブレッドボードに挿して、ブレッドボードからArduinoにつなげてもよい。
なお、LuminOxのUARTは3.3Vなのに対して、Arduino UNOは5Vである。LuminOxのUARTは5Vには耐えられる仕様なので壊れることはないと思うが、もしかすると不具合が出ることがあるかもしれない。今のところは直接つないでもうまく動いている。
スケッチ
ライブラリSoftwareSerialはArduinoIDEにデフォルトで組み込まれているので新たにインストールする必要はない。
#include <SoftwareSerial.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
SoftwareSerial mySerial = SoftwareSerial(8, 9);//rx,tx
void setup() {
Serial.begin(9600);
mySerial.begin(9600);
mySerial.print("M 1"); //最初にモードを設定する。M 1でリクエスト時に測定。
mySerial.print("\r\n");
i=0;
lcd.init();
lcd.backlight();
}
void loop() {
Serial.print(" ");
mySerial.flush();
mySerial.println("O"); //センサーに測定を指示する。"O" for ppO2 [mbar], "%" for O2 in [%], "A" で圧力や温度を含め全データ
while (mySerial.available() == 0) { //センサーからの返事を待つ。
delay(10);
}
while (mySerial.available() > 0) {
String text=mySerial.readString();
Serial.print(text);
}
i++;
delay(1000);
}
測定値を数字として得たいときは、
text = text.substring(3, 8); //文字列の3文字目〜8文字目を得る
float result = text.toFloat(); //変数型を変換する
コメント
センサーは、起動してから安定するまでに5分〜10分くらいかかるようである。
Author And Source
この問題について(Arduinoでガス中酸素濃度を測定), 我々は、より多くの情報をここで見つけました https://qiita.com/hiroyasusatoh2016/items/1b9e11895af51a47d5d0著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .