象徴的な名前「ノキア5110」自体は、90年代に非常に人気があった頑丈なノキアの携帯電話の思い出を買うべきでした。モデル5110には、当時の携帯電話の表示画面として機能するのに十分なグラフィカルディスプレイが付属していました。この画面では、英数字から携帯電話に必要な小さなグラフィックまで、あらゆるものを表示することができました。地球が回転するにつれて、光沢のあるタッチスクリーンを備えた新しい技術が登場し、このディスプレイは使用されなくなりました。しかし、うまくいけば、小さなグラフィックを表示する必要があり、大きなLCD画面にお金をかけないようにする必要がある電子機器アプリケーションで使用できます。したがって、このチュートリアルでは、Nokia5110グラフィカルLCDをArduinoとインターフェイスさせて機能させる方法を学習します。
これらのLCDには、84×48の寸法の白黒ピクセルがあります。単調に見えるかもしれませんが、プロジェクトの適切なグラフィックスを表示するために使用でき、Arduinoなどのマイクロコントローラーで簡単に使用できます。それでは始めましょう….!
必要な材料:
- Arduinoボード(任意のバージョン)
- Nokia5110ディスプレイ
- 接続線
Nokia 5110グラフィックディスプレイモジュール:
市場で入手可能なこれらのグラフィカルLCDには2つのタイプがあります。1つはディスプレイの上下両方にはんだパッドがあり、もう1つはディスプレイの下部にのみはんだパッドがあります。私たちが使用しているのはタイプ2に属し、ディスプレイの下にのみパッドがあります。両方のモジュールは同じように機能するため、接続は両方で同じです。したがって、モジュールに関係なく、チュートリアルに従うことができます。
前に述べたように、Nokia 5110グラフィカルLCDは、水平方向に84ピクセル、垂直方向に48ピクセルです。ディスプレイの合計サイズは1.72'x1.72 'です。モジュールには6つの入力ピンがあり、SPI通信を介して任意のマイクロコントローラーに接続できます。ディスプレイとArduinoの間で通信するインターフェースICは、Philips PCD8544ディスプレイコントローラーICであり、そのデータシートはここにあります。ただし、Arduinoを使用してこのICと通信している場合は、ダウンロードして使用する準備ができているライブラリがあるため、データシートについて心配する必要はありません。ここで使用しているモジュールを以下に示します。
回路図:
Nokia5110グラフィカルLCDをArduinoに接続するための完全な回路図を以下に示します。
ディスプレイモジュールには、ArduinoとのSPI通信をセットアップするために使用される8つのピンがあります。モジュールは、Arduinoボードの3.3Vピンで給電されます。これらのモジュールは3.3Vロジックで動作するため、ディスプレイのVccピンに5Vを供給しないことに注意してください。LCDが3.3Vロジックで動作し、Arduinoが5Vロジックで動作する場合でも、ディスプレイのピンをArduinoに直接配線しました。これは、LCDが正しく動作することがわかったためです。必要に応じて分圧器を使用して5Vを3.3Vに変換できますが、私にとってはロジック変換なしでのみ機能します。接続は非常にシンプルで簡単です。接続が完了すると、セットアップは次のようになります。
Arduinoプログラムと作業:
以下の手順に従って、Nokia 5110Display用にArduinoをプログラムします。この手順は、Arduino IDEがすでにインストールされており、その使用に慣れていることを前提としています。
ステップ1:コンピューターでArduino IDEを開き、Arduinoをコンピューターに接続した後、ツールメニューから適切なボードを選択します。
ステップ2:ここをクリックして、GitHubリポジトリからAdafruitライブラリによるNokia5110ディスプレイライブラリをダウンロードします。
ステップ3: Zipファイルがダウンロードされたら、[スケッチ]-> [ライブラリを含める]-> [。ZIPライブラリ を 追加]を 選択し、ZIPがダウンロードされた場所を参照します。
注:すべての円、テキスト、長方形などを実行するAdafruit GFXグラフィックコアもダウンロードする必要があります。https://github.com/adafruit/Adafruit-GFX-Libraryから入手して、同じ方法でインストールできます。 。
ステップ4: [ファイル]-> [例]-> [Adafruit PCD Nokia 5110LCDライブラリ] -> [pcdtest ]を選択してサンプルプログラムを開き、[アップロード]ボタンをクリックします。
ステップ5:プログラムがアップロードされたら、Arduinoのリセットボタンを押すと、このチュートリアルの最後にあるビデオに示されているように、すべてのアニメーションを表示するサンプルプログラムが表示されます。
サンプルプログラムを読んで、LCDでさまざまなグラフィックデザインを実行するために使用できるさまざまな組み込み関数を理解できます。しかし、さらに一歩進んで、LCD画面にCircuitDigestロゴを表示してみましょう。
今すぐに必要な画像を開いて ペイント し、画像のサイズを変更。ディスプレイに使用できる最大画像サイズは84×48です。
画像のサイズを変更した後、ペイントの[名前を付けて 保存]オプションを使用して、画像をビットマップ(白黒) として保存し ます。 LCD画面に画像をビットマップとして表示するには、ビットマップ画像をコードに変換できるソフトウェアが必要です。ここをクリックすると、ソフトウェアをダウンロードできます。ダウンロードしたら、ファイルを解凍し、 「BitmapEncoder」 をクリックしてアプリケーションを起動します。このソフトウェアを使用して保存したビットマップイメージを開き、エンコードされた値の配列を取得します。これらの値を直接コピーして、Arduino配列に貼り付けることができます。当社のロゴのソフトウェアによって示される値を以下に示します
ご覧のとおり、配列は値 48、48で 始まります。これは、画像のサイズです。これを配列に追加しないでください。したがって、最初の2つの値を削除し、残りをプログラムの配列値として使用します。配列は次のようになります。完全なプログラムは、このページの最後に与えられているあなたの参考のために。
static const unsigned char PROGMEM Logo = {B00000000、B00000000、B00000000、B00000000、B00000000、B00000000、B00000000、B00000000、B00001111、B11111000、B00000000、B00000000、B00000000、B00000000、B00001111、B11111111、B00000000、B00000000、B00000000、B00000011、B B11111111、B11000000、B00000000、B00000000、B00001110、B00111110、B00111111、B11110000、B00000000、B00000000、B00111110、B00111110、B10000000、B01111100、B00000000、B00000000、B01111100、B01111100、B11000000、B00111110、B00000000、B00000000 B00001111、B00000000、B00000001、B11111000、B11111111、B00111111、B10000111、B10000000、B00000011、B11111000、B11111111、B11111111、B11000011、B11000000、B00000111、B11110001、B11111111、B11111111、B11100000、B11100000、B00000111、B11100001、B111 B01100000、B00000000、B00000011、B11100000、B00001001、B11111100、B00000000、B00000000、B00000111、B11100000、B00011001、B11111110、B00000000、B00000000、B00000111、B11000000、B00000001、B11111111、B10000000、B00011111、B11111111、B11000111、B11100011、B11111111、B11111000、B00111111、B11111111、B10001111、B11111111、B11111111、B11111100 B11111111、B11111111、B11111100、B00111111、B11111111、B00011111、B11111111、B11111111、B11111100、B00111111、B11111110、B00111111、B00111111、B11111111、B11111110、B01111111、B11111110、B00111110、B00000000、B01111111、B111 B00000000、B00000000、B01111111、B11111100、B01111110、B10000000、B00000000、B00000000、B00000000、B00000000、B11111110、B00111111、B11111111、B11111110、B00000000、B00000001、B11111111、B11111111、B11111111、B11111110、B01111111、11 B11111110、B01111111、B11111111、B11111111、B11111111、B11111111、B11111110、B01111111、B11111111、B11000111、B11111111、B11111111、B11111110、B00111111、B11111111、B10000011、B11111110、B00000000、B00000000、B00111111、B11111111、B10110011、B11111000、B00000000、B00000000、B00111111、B11111111、B10000001、B11100000、B00000000、B00000000、 B10000001、B11111111、B11111100、B00000000、B00011111、B11111000、B00000111、B11111111、B11111000、B00000000、B00000111、B11111110、B00011111、B11111111、B11111000、B00000000、B00000001、B11111111、B01111111、B11111111、B11110000、 B11111111、B11110000、B00000111、B11111000、B00001111、B11111111、B11000000、B00000000、B00000011、B11111100、B00100111、B11111111、B00000000、B00000000、B00000011、B11111111、B00110111、B11111100、B00000000、B00000000、B00000001、B11111 B10000000、B00000000、B11111111、B11001111、B10000000、B11111111、B00000000、B00000000、B01111111、B11111111、B10110001、B11111110、B00000000、B00000000、B00011111、B11111111、B10110111、B11111100、B00000000、B00000000、B00001111、B11111111、B10000111、B11110000、B00000000、B00000000、B00000011、B11111111、B11111111、B11000000、B00000000、 B11111111、B00000000、B00000000、B00000000、B00000000、B00001111、B11110000、B00000000、B00000000、B00000000、B00000000、B00000000、B00000000、B00000000、B00000000};
このビットマップを表示するには、次のコード行を使用する必要があります。画面上の以前のデータが消去され、新しいビットマップイメージが書き込まれる場所。
display.clearDisplay(); display.drawBitmap(20、0、Logo、48、48、1); display.display();
行 display.drawBitmap(20、0、Logo、48、48、1); ビットマップ画像の位置、サイズ、色を表示します。構文はとして与えることができます。
display.drawBitmap(X_Position、Y_Position、配列の名前、画像の長さ、画像の幅);
画像の長さと幅は、前述のように、それぞれ配列の最初の2つの要素から取得できます。このコードを実行すると、以下に示すようにビットマップがLCD画面に表示されます。
以下に示すように、単純なテキストを表示することもできます。
チュートリアルを理解し、Nokia 5110LCDをArduinoとインターフェイスさせたことを願っています。このグラフィカルな表示を身に付ければ、グラフィックの細部を必要とする多くのプロジェクトを作成できます。完全な動作は、以下のビデオで見つけることができます。これを機能させる上で問題が発生した場合は、フォーラムを使用して問題または以下のコメントセクションを投稿できます。