SSブログ

Arduino UNO R3 でCO2センサを3セット接続測定 [arduino]

これまでソフトウェアシリアル通信は、1組しか利用したことはありませんでしたが、今回3組を利用し、CO2センサ3セットを使って5秒間隔でシリアルモニタ画面にセンサ値を表示させるスケッチを作成してみました。

複数のソフトウェアシリアルは、Arduino UNO R3の場合、どこのデジタルI/O(D0~D19)でも設定できると記載してあったのですが、同時に使えることはなく、切り替えて使うことが判明しました。
つまり、切り替えしないと使えないようです。
よって、その切替したスケッチをメモとして残しておきます。

===========================
‪#‎include‬ SoftwareSerial CO21(4,5), CO22(6,7), CO23(8,9); void setup() { Serial.begin(38400); } void loop() { Serial.print("--CO21 > " + String(sub_co2(CO21)) + " ppm"); Serial.print(", CO22 > " + String(sub_co2(CO22)) + " ppm"); Serial.println(", CO23 > " + String(sub_co2(CO23)) + " ppm"); } int sub_co2(SoftwareSerial CO2){ int val=0; uint32_t tim=millis(); String str; CO2.begin(38400); while(!CO2.available() && (millis()-tim)<3000); str=CO2.readStringUntil('\n'); if(str.indexOf("ppm")) { //文字列検索 str=str.substring(0,str.length()-4); //文字列からの ' PPM'削除 str.trim(); // 空白文字削除 val = str.toInt(); // 文字数字の整数化 } while(millis() -tim<5000); return val; } =========================== 結果は、添付写真のとおりに出てきました。 1.jpg
nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。