水瓶座列車

どこまで行けるか、とりあえず発車します。

Raspberry Pi(ラズパイ)でI2CキャラクタLCD1602の動作確認

本ページは、プロモーションが含まれています。f:id:aquarius999:20201114182925j:plain

 

Amazon楽天で購入できるラズパイのセンサーキットの中によく含まれている、

I2CキャラクタLCD1602の動作確認をしました。

I2CキャラクタLCD1602単体でも売っていましたが、

サンプルプログラムが付属していないようで、動かし方がわかりません。

 

ここでは、私が購入したOSOYOOのセンサーキットのサンプルプログラムを使用して、

I2CキャラクタLCD1602の動作確認をしていきます。

確認したラズパイは、ラズパイ4B、ラズパイ3B+で確認しています。

 

基本的には、OSOYOOの取り扱い説明手順と同じですが、少しハマったところもありましたので、

その内容も含めて、動作確認手順について解説していきます。

 

 

 

 

1.I2CキャラクタLCD1602デバイスについて

 

I2CキャラクタLCD1602デバイスは、1行16文字で2行表示できるLCDで、

数字、カタカナ、特殊記号などを表示することができます。

このデバイスには、GPIO版とI2C版がありますが、ここではI2C版を使用します。

 

制御方法として始めは、OSOYOOのセンサーキットのサンプルプログラムを見るしかありませんでした。

インターネットで、このLCDのデータシートを探してみると、すぐに見つかりましたが、

英語で書かれており、理解するのが大変ですが、このデータシートを見ながら、

サンプルプログラムの動作を確認していくと良いです。

 

 

2.ラズパイとI2CキャラクタLCD1602の接続

 

OSOYOOセンサーキットに入っている40ピンケーブルとT字型GPIO拡張基盤を使用して、

ブレッドボードに挿します。

そして、 I2CキャラクタLCD1602基盤の裏面にあるピンがSCL、SDA、5V、GNDとあるので、

下図のように、ブレッドボードに挿したT字型GPIO拡張基盤の表示を見ながら接続します。 

f:id:aquarius999:20201121183104j:plain

 

上図では、SCL1(赤線)、SDA1(緑線)、5V(白線)、GND(黒線)に接続しています。

また、SCL1、SDA1の下の段にある赤線と黄色線は、

I2C波形を見るために、簡易ロジックアナライザに接続しています。

 

LCDとの接続完了後、ラズパイの電源を入れてLCDのバックライトが点灯することを確認し、

続けてスレーブアドレスを確認します。

 

スレーブアドレスの確認方法は、ラズパイ上で、

$ i2cdetect -y 1

を実行して、下図のように表示されることを確認します。

f:id:aquarius999:20190112191037p:plain


この場合はスレーブアドレスが、0x27になります。

 

このOSOYOOのセンサーキットには、一本線のオスメスのジャンプワイヤが含まれていません。

20ピンのオスメスのジャンプワイヤはあるのですが、わざわざ4本接続のために、

これを使うのも微妙ですし、ちぎってバラバラにするのも更に微妙な感じがしました。

20ピンのオスメスのジャンプワイヤを使用しても大丈夫ですが、 

ちょっと見た目が良くないのとごちゃごちゃしますので、オスメスの単線ワイヤを購入すると良いです。

 

 

 

 

3.サンプルプログラムの入手

 

冒頭でも書きましたが、ここでは、OSOYOOセンサーキットに付属している、

CD-ROMのサンプルプログラムを使用しています。

サンプルプログラムを見たい場合は、OSOYOOのセンサーキットから購入することができます。

 

また、サンプルプログラムは、OSOYOO以外のセンサーキットにも含まれていると思いますので、

ラズパイで使用できるセンサーキットのおすすめランキング - 水瓶座列車

で、おすすめのセンサーキットを紹介していますので、参考にしてみてください。

 

 

 

4.サンプルプログラムの実行結果

 

サンプルプログラムの実行後、I2CキャラクタLCD1602の液晶部に、

「Hi man. Welcome to osoyoo.com」

が表示されます。

その後、すぐに表示が切り替わり、

「This is Lesson13 IIC LCD Test」

と表示されます。

f:id:aquarius999:20201224025901j:plain

 

サンプルプログラムは確認できましたが、自由に文字を表示するためには、

やはりどのように制御しているのかを理解する必要があります。

 

私なりにLCD1602のデータシートから制御方法を解析した結果を、

LCD1602(I2C)を制御する方法を解析調査した結果まとめ - 水瓶座列車

に、まとめていますので、参考にしてみてください。

 

 

5.ハマったところ

 

OSOYOOの説明書を流し読みしながら動作確認を行っていましたが、

初めてサンプルプログラムを実行したところ何も表示されませんでした。

スレーブアドレスに間違いはなく、サンプルプログラムもスレーブアドレス変更以外触っていません。

 

原因が、ソフトウェア側かハードウェア側かを切り分けるために、

簡易ロジアナでI2C波形が出ているか確認してみましたところ、 正確に波形は出ていました。

このロジアナでの確認方法については、

RaspberryPi 3B+でロジックアナライザを使ってI2Cの波形を取得する方法 - 水瓶座列車

にありますので、参考にしてみてください。

 

I2C波形が出ていれば、何か表示されるはずなのに、表示されないということは、

基盤の設定か?というところに行きついて、やっと原因がわかりました。

 

OSOYOOの説明書や説明動画をちゃんと読み返しているとLCD表示しないときは、

「基盤の裏側にある十字のツマミを触って調整する」という説明がありました。

そのツマミとは、下記の赤枠の部分です。

f:id:aquarius999:20201121183135j:plain

 

このツマミを左側や右側に回すことで、LCDバックライトの輝度を調整することができます。

輝度が低くて文字が表示されていない場合や輝度が高すぎて低くしたい場合などに、

このツマミを回して調整してみてください。

 

 

6.最後に

 

I2CキャラクタLCD1602の動作確認をメインに書きましたが、

5項でI2C波形を確認したロジアナは、何万円もするロジアナを使用したわけではなく、

Amazonで1500円ほどのものを使用して、ソフトウェアは、フリーのPulseViewを使用しています。

もし、I2Cの波形取得にも興味がありましたら、参考にしてみてください。

 

 

<関連・おすすめ記事>

Raspberry Pi (ラズパイ)で役に立つ書籍のおすすめランキングベスト5 - 水瓶座列車

RaspberryPi (ラズパイ)で使用できるカメラのおすすめランキングベスト5 - 水瓶座列車

RaspberryPi 4Bと3B+のスペック比較解説 - 水瓶座列車

Raspberry Pi(ラズパイ)のOSをバックアップ・リストアする方法 - 水瓶座列車

Raspberry Pi OSのカーネルソースビルド手順解説 - 水瓶座列車