コンテンツメニュー
● ハードウェア構成
>> 並列インターフェイス配線
● 高度な機能
>> カスタム文字生成
>> テキストのスクロール
>> LCDを使用したクリエイティブなArduinoプロジェクト
● 結論
● よくある質問
>> 3.なぜ私のディスプレイはパワーを消費しすぎているのですか?
● 引用
統合 Arduinoを使用したLCD画面は、 プロジェクトに貴重な視覚的フィードバックを追加します。この包括的なガイドは、パラレルとI2Cの両方のインターフェイスを使用して、16x2および20x4文字ディスプレイの配線構成、コード実装、および高度な機能をカバーしています。
Arduinoを使用してLCD画面を正常にセットアップするには、次のコンポーネントが必要になります。
-Arduino uno/nano:プロジェクトの脳として機能するマイクロコントローラーボード。
- 文字LCDモジュール:一般的に使用されるモジュールには、16x2(標準)または20x4(拡張)が含まれます。
-10kΩポテンショメータ:このコンポーネントは、ディスプレイのコントラストを調整するために重要です。
-220Ω抵抗器:電流をLCDのバックライトLEDに制限するために使用されます。
- ブレッドボード/ジャンパーワイヤ:プロトタイピング中に接続を行うために不可欠。
LCD文字ディスプレイは、個々のASCII文字を固定サイズで出力できるタイプの画面です。最も一般的なサイズは16x2と20x4で、最初の数字は行ごとの文字数を示し、2番目の数は行数を示します。各文字はピクセルのグリッド内で形成され、通常は5x8マトリックスに配置されます。
-16x2 LCD:それぞれ16文字の2行を表示します。
-20x4 LCD:それぞれ20文字の4行を表示します。
これらのディスプレイの汎用性により、センサーデータ、ステータスメッセージなどを表示できるため、多くのエレクトロニクスプロジェクトで人気があります。
並列インターフェイスを使用してLCDをArduinoに接続するには、いくつかのピンが含まれます。以下は典型的な接続レイアウトです:
LCD PIN | ARDUINO接続 | 目的 |
---|---|---|
VSS | GND | 地面 |
VDD | 5V | 力 |
vo | ポテンショメータ | 対比 |
Rs | デジタルピン12 | 登録選択 |
RW | GND | 読み取り/書き込みモード |
e | デジタルピン11 | 信号を有効にします |
D4-D7 | デジタルピン5-2 | データピン |
A/k | 5V/GND | バックライトコントロール |
この配線構成により、ArduinoはLCDと効果的に通信することができます。 Voに接続されたポテンショメータはコントラストを調整し、テキストが表示されるようにします。
よりシンプルな配線ソリューションを探している人には、I2Cインターフェイスを使用することを強くお勧めします。この方法により、必要な接続の数が減少します:
I2C LCD PIN | ARDUINO接続 |
---|---|
GND | GND |
VCC | 5V |
SDA | A4 |
SCL | A5 |
I2Cインターフェイスには4つのワイヤのみが必要であり、スペースが限られているプロジェクトやクリーンなセットアップを好むプロジェクトに最適です。
Arduinoを使用してLCDディスプレイを制御するには、液体クリスタルライブラリを使用します。このライブラリは、ディスプレイと簡単に対話するために必要なすべての機能を提供します。
-begin(cols、rows):表示寸法を初期化します。
- 印刷:現在のカーソル位置にテキストを出力します。
-setCursor(col、row):カーソルをディスプレイ上の特定の場所に移動します。
- クリア:ディスプレイからすべてのテキストをクリアします。
-scrolldisplayleft/scrolldisplayright:ディスプレイ全体にテキストをスクロールします。
ArduinoでLCDを使用することのエキサイティングな機能の1つは、カスタム文字を作成する機能です。これにより、プロジェクトのユーザーインターフェイスを強化できるユニークなシンボルまたはアイコンを設計できます。キャラクターのピクセルパターンを表すバイト配列を定義することにより、メモリに保存して、必要なときにいつでも表示できます。
ディスプレイの幅を超える長いメッセージを表示すると、テキストのスクロールを実装できます。この機能により、ユーザーエンゲージメントを高く保つために、情報を動的に提示できます。
LCDディスプレイとArduinoを使用している間、いくつかの一般的な問題に遭遇する可能性があります。
1。ブランク画面:電源接続が安全であることを確認し、コントラストポテンショメーターが調整する必要があるかどうかを確認します。
2。文字化された文字:正しいモード(4ビット対8ビット)を使用していることを確認し、コードのピン割り当てを確認します。
3。バックライトのフリッケージ:必要に応じて、現在の制限抵抗を交換または調整します。
LCDをArduinoプロジェクトに統合すると、多くの可能性が開かれます。
- デジタルクロック:RTCモジュールとLCDを組み合わせて、日時と日付を表示するリアルタイムクロックを作成します。
- 温度と湿度モニター:dht11などのセンサーをLCDと一緒に使用して、環境条件を視覚化します。
- カウントダウンタイマー:正確なタイミングが重要なキッチンやラボに適したタイマーアプリケーションを作成します。
- ゲームリーダーボード/クイズディスプレイ:LCD画面にスコアや質問を表示して、インタラクティブゲームを強化します。
Arduinoを使用してLCD画面をセットアップすると、視覚的なフィードバックを提供することにより、対話性が大幅に向上します。このガイドは、重要な配線構成、コアプログラミング技術、カスタム文字生成やスクロールテキストなどの高度な機能をカバーしています。並列またはI2C接続法を選択するかどうかにかかわらず、LCDをプロジェクトに統合すると、間違いなく機能性とユーザーエクスペリエンスが向上します。
バックライト抵抗抵抗値(低いω=より明るい)を変更します。 LEDの推奨される電流評価を超えないようにしてください。
はい。ただし、特定のLCDモデルとの互換性を確保します。多くは、適切な動作のためにレベルシフターを必要とします。
コードに適切なコントロールピンを使用して必要としない場合はバックライトを無効にします。
`setCursor()`および `print()`機能をループ()内に使用して、ディスプレイでセンサーの測定値を継続的に更新します。
通常、ほとんどの文字ディスプレイで使用されるHD44780コントローラーの制限により、通常40Hz約40Hzです。
このガイドに従って、さまざまな構成やプロジェクトを実験することで、Arduinoを使用してLCDスクリーンを使用し、数え切れないほどのクリエイティブアプリケーションへのドアを開くことに習熟することになります。
[1] https://www.electronicsforu.com/arduino-projects-ideas
[2] https://howtomechatronics.com/tutorials/arduino/lcd-tutorial/
[3] https://www.instructables.com/arduino-interfacing-with-without-potentiometer/
[4] https://stevezafeiriou.com/arduino-lcd/
[5] https://docs.arduino.cc/learn/electronics/lcd-displays
[6] https://forum.arduino.cc/t/interfacing-with-arduino-with-using-liquid-crystal-library/661968
[7] https://www.youtube.com/watch?v=s_-nigo71_w
[8] https://projecthub.arduino.cc
[9] https://forum.arduino.cc/t/advanced-programming-of-lcd-display/143529
[10] https://www.crystalfontz.com/products/arduino-lcd-displays.php
[11] https://www.youtube.com/watch?v=860EERQ9C3E
[12] https://all3dp.com/2/best-arduino-projects-with-lcd/
[13] https://forum.arduino.cc/t/simple-lcd-program/318032
[14] https://forum.arduino.cc/t/how-to-start-with-a-lcd-without-a-library/323753
[15] https://www.hackster.io/rau7han/best-arduino-projects-2020-advanced-intermediate-level-to-cb823a
[16] https://forum.arduino.cc/t/software-for-layout-design-of-lcd-displays/1015972
[17] https://forum.arduino.cc/t/how-to-write-to-lcd-2x16-without-using-liquidcrystal-library/157196
[18] https://www.youtube.com/watch?v=eyhl03ufquq
[19] https://www.instructables.com/driving-salvaged-graphical-lcd-display-with-arduin/
[20] https://forum.arduino.cc/t/using-the-incleuded-lcd-display-without-libraries/249207