Arduino16×2LCDチュートリアル–知っておくべきことすべて
このArduinoチュートリアルでは、 LCD(液晶ディスプレイ)を接続して使用する方法を学習します。 Arduino 。このようなLCDディスプレイは非常に人気があり、センサーデータなどの単純な情報を表示するのに最適でありながら、非常に手頃な価格であるため、多くの電子機器プロジェクトで広く使用されています。
私はすでにいくつかのArduinoプロジェクトでそれらを使用しており、ここでそれらをチェックできます:
次のビデオを見るか、以下のチュートリアルを読むことができます。 LCDピン配置、配線図、いくつかのサンプルコードなど、ArduinoでLCD文字ディスプレイを使用するために知っておく必要のあるすべてが含まれています。
LCD文字ディスプレイは、固定サイズの個々のASCII文字のみを出力できる独自のタイプのディスプレイです。これらの個々の文字を使用して、テキストを作成できます。
ディスプレイを詳しく見ると、5×8ピクセルのグリッドで構成される小さな長方形の領域があることがわかります。各ピクセルは個別に点灯できるため、各グリッド内に文字を生成できます。
長方形の領域の数は、LCDのサイズを定義します。最も人気のあるLCDは16×2LCDで、16個の長方形の領域または文字を含む2行があります。もちろん、16×1、16×4、20×4などの他のサイズもありますが、それらはすべて同じ原理で動作します。また、これらのLCDは、背景とテキストの色が異なる場合があります。
16本のピンがあり、左から右への最初のピンは Ground ピン。 2番目のピンはVCC Arduinoボードの5ボルトピンを接続します。次は、ディスプレイのコントラストを制御するためのポテンショメータを取り付けることができるVoピンです。
次に、 RS ピンまたはレジスタ選択ピンは、コマンドまたはデータをLCDに送信するかどうかを選択するために使用されます。たとえば、RSピンが低状態またはゼロボルトに設定されている場合、カーソルを特定の場所に設定し、ディスプレイをクリアし、ディスプレイをオフにするなどのコマンドをLCDに送信します。また、RSピンが高状態または5ボルトに設定されている場合、データまたは文字をLCDに送信します。
次はR / W LCDの読み取りと書き込みのどちらを行うかを選択するピン。ここで書き込みモードは明らかであり、コマンドやデータをLCDに書き込んだり送信したりするために使用されます。読み取りモードは、このチュートリアルで説明する必要のないプログラムを実行するときにLCD自体によって使用されます。
次はE レジスタへの書き込みを可能にするピン、またはD0からD7までの次の8つのデータピン。したがって、このピンを介して、レジスタに書き込むときに8ビットデータを送信します。たとえば、ディスプレイに後者の大文字のAを表示する場合は、ASCIIテーブルに従ってレジスタに01000001を送信します。最後の2つのピンA およびK 、またはアノードとカソードはLEDバックライト用です。
結局のところ、液晶ライブラリがほとんどすべてを処理するので、LCDがどのように機能するかについてあまり心配する必要はありません。 Arduinoの公式ウェブサイトから、LCDを簡単に使用できるライブラリの機能を見つけて確認できます。ライブラリは4ビットモードまたは8ビットモードで使用できます。このチュートリアルでは、4ビットモードで使用するか、8つのデータピンのうち4つだけを使用します。
16×2LCDディスプレイをArduinoボードに接続する方法は次のとおりです。
Arduinoボードからの6つのデジタル入力ピンのみを使用します。 LCDのレジスタはD4からD7 4から7までのArduinoのデジタルピンに接続されます。有効 ピンはピン番号2とRSに接続されます ピンはピン番号1に接続されます。R / W ピンはアースとVoに接続されます ピンはポテンショメータの中央のピンに接続されます。 これらのコンポーネントは、以下のいずれかのサイトから入手できます。
Vo で入力される電圧を調整することで、LCDのコントラストを調整できます。 ピン。入力電圧を0から5Vに調整することで、コントラストを簡単に微調整できるため、ポテンショメータを使用しています。
はい、ポテンショメータがない場合でも、2つの抵抗で構成された分圧器を使用してLCDのコントラストを調整できます。分圧器を使用して、ディスプレイで良好なコントラストを得るために、電圧値を0〜5Vの間に設定する必要があります。約1Vの電圧が私のLCDにうまく機能することがわかりました。良いコントラストを得るために、1Kと220オームの抵抗を使用しました。
LCDコントラストを調整する別の方法もあります。それは、Arduinoから VoにPWM信号を供給することです。 LCDのピン。 Voを接続できます Arduino PWM対応ピンにピン留めします。セットアップセクションでは、次のコード行を使用できます。
ピンD11でPWM信号を生成し、255のうち100の値で、0から5Vの電圧に変換され、 Voで約2Vの入力になります。 LCDピン。
これは、液晶ライブラリの動作原理を説明するための簡単なコードです。これは、ビデオの最初の例のコードです:
コードの説明:
最初に行う必要があるのは、液晶ライブラリを挿入することです。これは次のように行うことができます:スケッチ>ライブラリを含める>液晶。次に、LCオブジェクトを作成する必要があります。このオブジェクトのパラメータは、次のように、それぞれArduinoボードのデジタル入力ピンの番号とLCDのピンの数である必要があります:(RS、Enable、D4、D5、D6、D7)。セットアップでは、LCDへのインターフェースを初期化し、 begin()を使用してディスプレイのサイズを指定する必要があります。 機能。
ループでは、メインプログラムを作成します。 print()の使用 LCDに印刷する機能。
setCursor() 関数は、LCDに書き込まれる後続のテキストが表示される場所を設定するために使用されます。
blink() 関数は、点滅するカーソルと noBlink()を表示するために使用されます オフにする機能。
cursor() 関数は、アンダースコアカーソルと noCursor()を表示するために使用されます オフにする機能。 clear()の使用 LCD画面をクリアできる機能。
16文字を超える長さのテキストがある場合は、 scrollDisplayLeft()を使用してテキストをスクロールできます。 またはscrollDisplayRight() LiquidCrystalライブラリの関数。
コードの例を次に示します。
scrollDisplayLeft()を使用して、テキストを左にスクロールするか右にスクロールするかを選択できます。 またはscrollDisplayRight() 機能。 delay()を使用 機能スクロール速度を設定できます。
テキストのスクロール方法をより細かく制御したい場合は、「for」ループを使用して独自にスクロールすることもできます。次に例を示します:
ASCII文字に加えて、LiquidCrystalライブラリを使用すると、カスタム文字を生成してLCDに表示することもできます。
各文字の外観は、8バイトの配列で指定できます。コードの例を次に示します。
5×8ピクセルのグリッド内で0を1に変更することで、文字の外観を指定する方法を確認できます。
セットアップでは、 createChar()を使用してカスタムキャラクターを作成する必要があります 機能。
この関数の最初のパラメーターは0から7までの数値です。そうでない場合は、サポートされている8つのカスタム文字の1つを予約する必要があります。 2番目のパラメーターは、バイトの配列の名前です。
write()を使用して、カスタム文字をディスプレイに書き込みます 関数とパラメータとして、文字の番号を使用します。
参照:Arduinoタッチスクリーンチュートリアル| TFT LCD
したがって、ArduinoでLCDを使用することについて知っておく必要のあるほとんどすべてをカバーしました。これらのLCDキャラクターディスプレイは、多くの電子機器プロジェクトの情報を表示するのに非常に便利です。上記の例では、16×2 LCDを使用しましたが、これらの文字ディスプレイの他のサイズにも同じ動作原理が適用されます。
このチュートリアルを楽しんで、何か新しいことを学んだことを願っています。以下のコメントセクションでお気軽に質問してください。30以上のArduinoプロジェクトの完全なコレクションをチェックすることを忘れないでください。
LCDキャラクターディスプレイとは何ですか?
16×2LCDピン配置
ArduinoをLCDに接続する方法–配線図
LCDのコントラストを調整する
ポテンショメータなしでLCDを使用できますか?
analogWrite(11,100); // Generate PWM signal at pin D11, value of 100 (out of 255)
Code language: Arduino (arduino)LCDArduinoコード
/*
* Arduino LCD Tutorial
*
* Crated by Dejan Nedelkovski,
* www.HowToMechatronics.com
*
*/
#include <LiquidCrystal.h> // includes the LiquidCrystal Library
LiquidCrystal lcd(1, 2, 4, 5, 6, 7); // Creates an LCD object. Parameters: (rs, enable, d4, d5, d6, d7)
void setup() {
lcd.begin(16,2); // Initializes the interface to the LCD screen, and specifies the dimensions (width and height) of the display }
}
void loop() {
lcd.print("Arduino"); // Prints "Arduino" on the LCD
delay(3000); // 3 seconds delay
lcd.setCursor(2,1); // Sets the location at which subsequent text written to the LCD will be displayed
lcd.print("LCD Tutorial");
delay(3000);
lcd.clear(); // Clears the display
lcd.blink(); //Displays the blinking LCD cursor
delay(4000);
lcd.setCursor(7,1);
delay(3000);
lcd.noBlink(); // Turns off the blinking LCD cursor
lcd.cursor(); // Displays an underscore (line) at the position to which the next character will be written
delay(4000);
lcd.noCursor(); // Hides the LCD cursor
lcd.clear(); // Clears the LCD screen
}
Code language: Arduino (arduino)lcd.print("Arduino"); // Prints "Arduino" on the LCD
Code language: Arduino (arduino)lcd.setCursor(2,1); // Sets the location at which subsequent text written to the LCD will be displayed
Code language: Arduino (arduino)lcd.blink(); //Displays the blinking LCD cursor
Code language: Arduino (arduino)lcd.clear(); // Clears the LCD screen
Code language: Arduino (arduino)16×2LCDおよびArduinoでのスクロールテキストの例
#include <LiquidCrystal.h>
LiquidCrystal lcd(1, 2, 4, 5, 6, 7); // Creates an LCD object. Parameters: (rs, enable, d4, d5, d6, d7)
void setup() {
lcd.begin(16, 2);
lcd.print("Scrolling Text Example");
}
void loop() {
lcd.scrollDisplayLeft();
delay(500);
}
Code language: Arduino (arduino)#include <LiquidCrystal.h>
LiquidCrystal lcd(1, 2, 4, 5, 6, 7); // Creates an LCD object. Parameters: (rs, enable, d4, d5, d6, d7)
void setup() {
lcd.begin(16, 2); // Initializes the interface to the LCD screen, and specifies the dimensions (width and height) of the display
}
void loop() {
// scroll text to the right
for (int i = 0; i <= 13; i++) {
lcd.setCursor(i, 0); // Sets the location at which subsequent text written to the LCD will be displayed
lcd.print("LCD");
delay(500); // 1 second delay
lcd.clear(); // Write a character to the LCD
}
// scroll text to the left
for (int i = 12; i >= 1; i--) {
lcd.setCursor(i, 0);
lcd.print("LCD");
delay(500);
lcd.clear();
}
}
Code language: Arduino (arduino)LCDにカスタム文字を生成して表示する方法
#include <LiquidCrystal.h>
byte heart[8] = { // Array of bytes
B00000, // B stands for binary formatter and the five numbers are the pixels
B01010,
B11111,
B11111,
B01110,
B00100,
B00000,
B00000
};
byte smile[8] = {
B00000,
B00000,
B01010,
B00000,
B10001,
B01110,
B00000,
B00000
};
byte lock[8] = {
B01110,
B10001,
B10001,
B11111,
B11011,
B11011,
B11111,
B00000
};
byte character[8] = {
B11111,
B10101,
B11111,
B01010,
B01110,
B11111,
B01110,
B01110
};
LiquidCrystal lcd(1, 2, 4, 5, 6, 7); // Creates an LC object. Parameters: (rs, enable, d4, d5, d6, d7)
void setup() {
lcd.begin(16, 2); // Initializes the interface to the LCD screen, and specifies the dimensions (width and height) of the display
lcd.createChar(0, heart); // Create a custom character
lcd.createChar(1, smile);
lcd.createChar(2, lock);
lcd.createChar(3, character);
// Clears the LCD screen
lcd.clear();
// Print a message to the LCD
lcd.print("Custom Character");
}
void loop() {
lcd.setCursor(1, 1);
lcd.write(byte(0)); // Display the custom character 0, the heart
lcd.setCursor(5, 1);
lcd.write(byte(1));
lcd.setCursor(9, 1);
lcd.write(byte(2));
lcd.setCursor(13, 1);
lcd.write(byte(3));
}
Code language: Arduino (arduino)lcd.createChar(0, heart); // Create a custom character
Code language: Arduino (arduino)lcd.write(byte(0)); // Display the custom character 0, or the heart
Code language: Arduino (arduino)結論
製造プロセス