これは、「ロボットの作り方」シリーズの5番目のチュートリアルです。このチュートリアルでは、ロボットプラットフォームとCO2センサーを組み合わせて、特定の領域のCO2密度を検出できるようにします。
最後の4つのチュートリアルと同じ、ここでは例としてArduinoロボットキット(Pirate:Bluetooth 4.0搭載4WD Arduinoモバイルロボットキット)を使用します。
レッスンメニュー:
レッスン1:はじめに
レッスン2:基本的なArduinoロボットの製作
レッスン3:ライントラッキングArduinoロボットの構築
レッスン4:障害物を避けることができるArduinoのロボットを作る
レッスン5:光と効果音でArduinoのロボットを製作する
レッスン6:環境を監視できるArduinoロボットの構築
レッスン7:Bluetooth制御Arduinoロボットの製作
ハードウェアコンポーネント
Arduino用CO2ガスセンサー×1
用品:
ステップ1:
デジタルタッチセンサー×1
ステップ2:
Arduino用LCDキーパッドシールド×1
ステップ3:
M3 * 6MMナイロン製支柱およびタイラップ
ステップ4:
組み立て説明書:
ステップ1:タッチセンサーを追加する
ナイロン製支柱を固定するために、タッチセンサーには2つの穴があります。
ナイロン支柱を固定します。それらの列をひねりすぎないでください。
ステップ5:
次に、タッチセンサーをプレートに取り付けます。
ステップ6:
STEP2:液晶画面を追加する
液晶画面の4つの穴に海岸をスライドさせて固定します。タイラップの残りの部分を切り取ります。
ステップ7:
STEP3:CO2センサーを追加する
ナイロン製支柱をCO2センサーに固定します。センサープレートにCO2センサーを取り付けます。
ステップ8:
あなたはほとんど組み立てを完了しました。後で回路接続で作業する必要があるので、上部プレートをまだプラットフォームに固定しないでください。
ステップ9:
ハードウェアを接続します。
ケーブルを整理してください。
インターフェースは次のように色付けされています。
赤は電源を示します
黒は地面を示します
青色はアナログ入力ピンを示します
緑色はデジタルI / Oピンを示します
LCDモニタは、VCC、GND、SCL、SDAの順に接続してください。
ステップ10:
コーディング
DHT11_Display.inoというコードを見つけてダウンロードします。 LiquidCrystal_I2CとCO2のライブラリを忘れないでください。
ステップ11:
コードのダウンロードに成功すると、リアルタイムのCO2密度がLCD画面に表示されます。タッチセンサーには2つの機能があります。
1.しばらくしてもセンサーに触れないと、センサーは自動的にオフになります。
2.他の環境データを監視するためにさらにセンサーを追加したい場合は、タッチセンサーがLCD上の監視データを切り替えることができます。
コードの概要ライブラリは重要です。図書館がなければ図書館を理解するのは難しいです。
#include #include
LiquidCrystal_I2C液晶(0x20、16、2)。
# "CO2.h"を含めます
CO2センサーCO2ppm;
ここでは、センサーのピンを宣言するために使用される変数であるCO2Pinについて知る必要があります。
int CO2Pin = A1;
すなわち、DHT11PinはAnalog Pin1を表します。つまり、当社のCO2センサーはアナログピン1に接続されています。
以下は、時間変数の宣言です。 TouchPinはタッチセンサーを表し、13はデジタルピンを表します。
long currentMillis = 0。
long previousMillis;
長い間隔= 4000。
int count = 0; //数を数える
int touchPin = 13。
起動のための設定であるsetup()の機能を持ち込みます。
pinMode(touchPin、INPUT);
その後、タッチセンサーを入力モードにしてください。具体的な情報については、pinMode()の機能の紹介があるArduinoウェブサイト(www.arduino.cc)のArduinoリファレンスを確認してください。
次に、LCDスクリーンを初期化してLCDライトをオンにする必要があります。これは、LCDスクリーンの準備ができていることを示しています。
lcd.init();
lcd.backlight();
遅延(100)。
lcd.setBacklight(0);
今度はloop()の機能に変わります。まずタッチセンサーから値を読み取り、次にそれらのデータを1つの変数touchStateに格納する必要があります。
int touchState = digitalRead(touchPin);
それからあなたがあなたの指でタッチセンサーに触れたら、コントローラがHIGHの信号を受信するかどうか確認してください、1はカウントに加えられます。
if(touchState == HIGH){count ++; previousMillis = millis(); }
これにより、カウントとは、何回画面に触れたかを意味します。しかし、センサーに一度だけ触れると、それぞれの接触の時間はmillis()の関数に含まれます。
ifで始まる小文を使ってタッチ時間の長さを変更します。ここでの間隔は、私たちが設定したタッチの期間を意味します。このように、私たちは、4秒のタッチと4秒以上のタッチでそれぞれどのような行動が取られるべきかを知っています。
if(currentMillis - previousMillis <Interval){// 4秒で何かをする
そうでなければ{// 4秒以上何かをする}
lcd.setBacklight(0);
setBacklight()の関数は、LCDバックライトランプを消すために使用されます。
4秒以上センサーに触れたときにどのような処置をとるべきか
4秒以上センサーに触れると、LCDバックライトランプが消灯することがあります。
4秒以内にどんな行動を取るべきですか。
if(count == 1){//ワンタッチでは、LCD画面に違いは表示されません}
そうでなければ(count == 2){// 2回タッチすると、LCD画面に値が表示されます}
4秒以内にもう一度タッチセンサーを押します。画面はまだ消えています。同時に2回タッチすると、LCDバックライトが点灯し、CO2濃度の数字が表示されます。
最後にセンサーに触れた後は、カウントをゼロにしてください。
カウント= 0。
したがって、完全なコードは次のようになります。
if(count == 1){lcd.setBacklight(0); }
そうでなければ(count == 2){lcd.backlight(); DustShow();カウント= 0。 }
次に、previousMillisと比較できるように、現在の時刻を追跡する必要があります。この点は非常に重要です。
currentMillis = millis();
CO2ppm.Read()の関数を使ってデータを読み込みます。そして、CO2センサーからのデータを格納するために変数CO2Valueが使用されます。
int CO2値= CO2ppm.Read(CO2Pin);
これがLCDスクリーンに関連した機能の使い方です。
lcd.setCursor(0,0);
lcd.setCursor(0,1);
setCursor(column、row)の関数は、角かっこ内のゼロから始めて、カーソルが表示される列と行を示すために使用されます。
lcd.print(CO2値);
print()は、この数字を直接画面に表示できることを意味します。
lcd.print( "");
lcd.print( "")は、画面に表示される空白を意味します。画面をクリアするために使用されます。
複数のセンサーの組み合わせある種類のセンサーを購入したら、どのようにして複数の環境センサーを組み合わせることができますか。
心配しないで私たちはあなたに、複数のセンサーをテストするためのコーディングテンプレートを提供します。上記のテンプレートを参照して、組み合わせを調整できます。実際には、LCDスクリーンの変更のためのステップがあることを除いて理論は単一のセンサーと同じです。
下の赤のコーディングは修正する必要があります。その数は、指がセンサーに触れた回数を意味します。したがって、count = 2は2回押したことを意味し、最初のセンサーの数値が表示されます。立ち止まるな!あなたはもう一度カウントをゼロにしなければならないことを心に留めておいてください。
サンプルコード
if(currentMillis - previousMillis <間隔){
if(count == 1){lcd.setBacklight(0); }
そうでなければ(count == 2){//No.1 Sensor Sensor1Show(); lcd.backlight(); }
そうでなければ(count == 3){//No.2 Sensor Sensor2Show(); lcd.backlight();カウント= 0。 }
もちろん、センサーのための初期設定、最初の変数の宣言は重要です。
それでもコードの変更方法がわからない場合は、WeatherStation.inoというサンプルコードを参照して確認できます。