このチュートリアルでは、BMP180とARDUINOを使用して気圧測定システムを設計します。まず、BMP180をARDUINOに接続するために、BMP180用に特別に設計されたライブラリをダウンロードする必要があります。このライブラリは、https://github.com/adafruit/Adafruit-BMP085-Libraryで 入手できます。ライブラリをアタッチした後、BMP180センサーの操作を容易にする特別な関数を呼び出すことができます。
必要なコンポーネント
ハードウェア: Arduino unoボード、接続ピン、220Ω抵抗、BMP180気圧センサー、16x2 LCD、ブレッドボード。
ソフトウェア: Arduino毎晩
回路図と動作説明
ヘッダーを呼び出した後、ArduinoUnoとBMP180センサー間の通信を確立することを心配する必要はありません。それを行う特別な関数を呼び出すだけです。LCDを初期化し、SENSORから呼び出された値を表示するだけです。
16x2 LCDでは、バックライトがある場合は全体で16ピン、バックライトがない場合は合計14ピンになります。バックライトピンに電力を供給するか、そのままにしておくことができます。14ピンには8つのデータピン(7-14またはD0-D7)、2つの電源ピン(1&2またはVSS&VDDまたはGND&+ 5v)、コントラスト制御用の3番目のピン(VEE-文字の太さを制御します)があります。示されている)および3つの制御ピン(RS&RW&E)。
回路では、2つの制御ピンしか使用していないことがわかります。コントラストビットと読み取り/書き込みはあまり使用されないため、グランドに短絡できます。これにより、LCDが最高のコントラストと読み取りモードになります。ENABLEピンとRSピンを制御して、それに応じて文字とデータを送信する必要があります。
LCD用に行われる接続を以下に示します。
PIN1またはVSSをアースに接続
PIN2またはVDDまたはVCCから+ 5v電源
PIN3またはVEEを地面に接続(初心者に最適な最大のコントラストを提供)
ARDUINO UNOのPIN4またはRS(レジスター選択)からPIN8
PIN5またはRW(読み取り/書き込み)をグランドに接続(LCDを読み取りモードにすると、ユーザーの通信が容易になります)
ARDUINO UNOのPIN6またはE(有効)からPIN9
ARDUINOUNOのPIN11またはD4からPIN10
ARDUINOUNOのPIN12またはD5からPIN11
ARDUINOUNOのPIN13またはD6からPIN12
ARDUINOUNOのPIN14またはD7からPIN13
ARDUINO IDEを使用すると、ユーザーはLCDを4ビットモードで使用できます。このタイプの通信により、ユーザーはARDUINOのピン使用量を減らすことができます。他のARDUINOとは異なり、ARDUINOはデフォルトで4ビットモードで通信するように設定されているため、4itモードで使用するために個別にプログラムする必要はありません。回路では、4ビット通信(D4-D7)を使用したことがわかります。
したがって、上記の表からの単なる観察から、LCDの6つのピンをコントローラーに接続しています。4つのピンはデータピンで、2つのピンは制御用です。
BMP180をArduinoUnoに接続するには、次の手順 を実行する必要があります。
|
まず、特殊機能「#include」を有効にするためのヘッダーファイルを呼び出す必要があります。
このヘッダーファイルを使用すると、ファズなしでセンサーから直接値を読み取ることができる関数を呼び出すことができます。
次に、C通信を有効にする必要があります。これは、「#include
「StringPRESSUREVALUE = String(bmp.readPressure());」を呼び出すことで圧力を読み取ることができます。ここで、圧力値はセンサーから読み取られ、文字列「PRESSUREVALUE」に保存されます。
「StringTEMPARATUREVALUE = String(bmp.readTemperature());」を呼び出すことで、温度を読み取ることができます。ここで、圧力値はセンサーから読み取られ、文字列「TEMPARATUREVALUE」に保存されます。
まず、ヘッダーファイルを有効にする必要があります( '#include
次に、ここで使用しているLCDのタイプをボードに通知する必要があります。LCDにはさまざまな種類があります(20 * 4、16 * 2、16 * 1など)。ここでは、16 * 2 LCDをUNOに接続して、「lcd.begin(16,2);」を取得します。16 * 1の場合、「lcd.begin(16,1);」を取得します。
この命令では、ピンを接続した場所をボードに通知します。接続されているピンは、「RS、En、D4、D5、D6、D7」の順に表されます。これらのピンは正しく表現されます。回路図に示すようにRSをPIN0などに接続したので、ボードのピン番号を「LiquidCrystallcd(0,1,8,9,10,11);」と表記します。
以上でデータを送信するだけで、LCDに表示する必要のあるデータは「cd.print( "hello、world!");」と書く必要があります。このコマンドを使用すると、LCDに「hello、world!」と表示されます。
ご覧のとおり、これ以外のことを心配する必要はありません。初期化するだけで、UNOはデータを表示する準備が整います。ここでは、BYTEごとにデータを送信するためのプログラムループを作成する必要はありません。センサーから値を読み取った後、16x2LCDに表示します。