このチュートリアルでは、ARDUINO UNOのADC(アナログ-デジタル変換)の概念を紹介します。次の図に示すように、Arduinoボードには6つのADCチャネルがあります。それらの中で、それらのいずれか1つまたはすべてをアナログ電圧の入力として使用できます。Arduinoの宇野ADCは10ビット分解能((0〜(2 ^ 10)1023)から整数値程度)です。これは、0〜5ボルトの入力電圧を0〜1023の整数値にマッピングすることを意味します。したがって、ユニットごとに(5/1024 = 4.9mV)ごとに。
このすべてにおいて、ポテンショメータまたはポットを「A0」チャネルに接続し、ADCの結果を簡単なディスプレイに表示します。シンプルなディスプレイは16x1と16x2のディスプレイユニットです。16x1ディスプレイユニットは16文字で、1行になります。16x2は、1行目に16文字、2行目に16文字の合計32文字になります。ここでは、各文字に5x10 = 50ピクセルがあることを理解する必要があります。したがって、1つの文字を表示するには、50ピクセルすべてが連携する必要がありますが、ディスプレイユニットに別のコントローラー(HD44780)があるため、心配する必要はありません。ピクセルを制御する仕事(LCDユニットでそれを見ることができます、それは後ろの黒い目です)。
必要なコンポーネント
ハードウェア: ARDUINO UNO、電源(5v)、JHD_162ALCD(16x2LCD)、100uFコンデンサ、100KΩポットまたはポテンショメータ、100nFコンデンサ。
ソフトウェア: arduino IDE(Arduino毎晩)
回路図と説明
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つのピンは制御用です。
上図は、ARDUINOUNOのADCの回路図を示しています。
ワーキング
LCDをARDUINOUNOに接続するには、いくつかのことを知っておく必要があります。
|
まず、UNOADCチャネルのデフォルトの基準値は5Vです。これは、任意の入力チャネルでのADC変換に5Vの最大入力電圧を与えることができることを意味します。一部のセンサーは0〜2.5Vの電圧を提供するため、5Vのリファレンスでは精度が低下します。そのため、このリファレンス値を変更できるようにする命令があります。したがって、参照値を変更するために、(「analogReference();」)があります。
デフォルトでは、10ビットの最大ボードADC解像度が得られます。この解像度は、命令(「analogReadResolution(bits);」)を使用して変更できます。この解像度の変更は、場合によっては便利です。
上記の条件がデフォルトに設定されている場合、関数「analogRead(pin);」を直接呼び出すことにより、チャネル「0」のADCから値を読み取ることができます。ここで「pin」はアナログ信号を接続したピンを表します。この場合は次のようになります。 「A0」になります。ADCからの値は、「int ADCVALUE = analogRead(A0);」のように整数に変換できます。」、この命令により、ADCが整数「ADCVALUE」に格納された後の値。
それでは、16x2LCDについて少しお話ししましょう。まず、ヘッダーファイルを有効にする必要があります( '#include
次に、ここで使用しているLCDのタイプをボードに通知する必要があります。LCDには非常に多くの種類があるため(20x4、16x2、16x1など)。ここでは、16x2 LCDをUNOに接続して、「lcd.begin(16,2);」を取得します。16x1の場合、「lcd.begin(16、1);」を取得します。
この命令では、ピンを接続した場所をボードに通知します。接続されているピンは、「RS、En、D4、D5、D6、D7」の順に表されます。これらのピンは正しく表現されます。回路図に示すようにRSをPIN0などに接続したので、ボードへのピン番号を「LiquidCrystal lcd(0、1、8、9、10、11);」と表記します。
以上でデータを送信するだけで、LCDに表示する必要のあるデータは「cd.print( "hello、world!");」と書く必要があります。このコマンドを使用すると、LCDに「hello、world!」と表示されます。
ご覧のとおり、これ以外のことを心配する必要はありません。初期化するだけで、UNOはデータを表示する準備が整います。ここでは、BYTEごとにデータを送信するためのプログラムループを作成する必要はありません。
Arduino UnoのADCの使用 については、以下のCプログラムで段階的に説明します。