これまで、マイコン関係の表示器としては、主に1602や2004などのLCDを使用してきました。
今回、6mのSSB/CWトランシーバの表示器として、nokia5110という48×84ピクセルのLCDモジュールを使ってみようと思い、ヤフオクで2個手に入れました。1個499円で送料無料でした。(発送先は、台湾で、発注から約1週間で届きました。)
nokia5110は、nokiaの携帯電話に使われていたモジュールで、国内でもaitendoなどでも入手可能です。
nokia5110は、海外では人気のあるデバイスで、関係する記事も多く見られます。反面、国内ではこのデバイスに関して記載したブログ、ホームページは残念ながら、多くありません。
そこで、nokia5110について、少し詳しく書きたいと思います。
参考になるのは、FMCA(福島マイコン愛好会)のメンバーでもあるJA2GQP水野さんのブログのsi5351 VFO の記事で、表示にnokia5110が使われています。この記事と回路図、スケッチを参考にして、実験を進めていきます。
ビニールの袋の中には、ピンヘッダがついていました。が、1つは、8ピンでいいのですが、もう一つは7ピン。どうして?
さらに、一つは、LCDを基板に固定する部分が不具合があり、はんだ付けをしました。
このLCDモジュールは、モジュールの電極を基板に圧着させて使うので、モジュールと基板は、しっかり接触させなければなりません。
今回のnokia5110は、基板が赤いタイプです。(青い基板のタイプも出回っています)
VCCには、Arduinoから3.3Vを供給します。LIGHTは、バックライトで、このタイプはGNDに接続するとバックライトが光ります。(3,3Vに接続するとバックライトが光るタイプもあります。)
なお、バックライトをつけたとき、3.3Vの電流は約5mAでした。
ホワイトバックライトと書いてあったのですが、実際には青いLEDが光りました。
今回は、Arduino UNOを使い、nokia5110とArduinoの接続は次のように行いました。
Arduino nokia5110
D11 ---------4050--- ------1 RST(Reset)
GND ----------------------2 CE(Chip Enabule)
D10 --------4050----------3 DC(Data/Command)
D9 ---------4050--------- 4 DIN(Data In)
D8 ---------4050--------- 5 CLK(Clock)
3V3 ---------------------- 6 VCC
GND --------------------- 7 LIGHT
GND --------------------- 8 GND
nokia5110の動作電圧は、3.3Vなので、レベルコンバータとして、74HC4050を間に入れています。
海外のサイトの例では、レベル変換をしないで、ダイレクトに接続している例が多く見られます。
たぶん、それで大丈夫なのだと思いますが、念のために今回は、4050を入れました。
nokia5110に使われているのは、PHILIPS社製のPCD8544という48×84 pixels matrix LCD controllerです。
このコントローラは、SPI(Serial Peripheral Interface)で動作します。公開されているライブラリを利用することにします。
様々なArduino用ライブラリがありますが、今回は、Rinky-Dink ElectornicsというサイトのLCD5110_Basicを使います。
ダウンロードして、ライブラリに登録します。
LCD5110_Basicライブラリの中のサンプルスケッチをコンパイル・ロードしてみました。
Arduinonoのロゴが表示されました。ロゴが白黒反転し、次に歯車の図形が表示され、白黒反転し、これを繰り返すスケッチです。
nokia5110モジュールが正常に動作することが分かりました。
スケッチなどについては、次回