C言語

I2Cを使ってLCDに文字を表示させる!①(C言語)

I2Cを使ってLCDに文字を表示させる!①(C言語)

スポンサーリンク

こんにちは。駆け出しエンジニアのまっきーです。

今回は、I2Cを使ってLCDに文字表示をさせたいと思います。

準備、用語解説

使用したもの

  • RaspberryPi3B+
  • I2C LCD Display(16*2)
  • 1602 I2Cキャラクタ表示液晶
  • 8ピンジャンパワイヤ(メス・メス)

↑8ピンでなくてもよい

上記のもの(RaspberryPiを除く)は全て下記のセットに同梱されています。

https://amzn.to/2QKiZzf

それではまずI2Cとは何かから説明していきます。

I2Cとは

 

I2Cとは、クロックに同期させて通信を行う同期式シリアル通信です。

この通信では2本の信号線を用います。

  • SDA(Serial DAta line) データ信号
  • SCL(Serial Clock Line) クロック信号

SCLで同期をとり、SDAでデータを送受信するということですね。

それぞれの通信にはプルアップ抵抗(Rp)を使います。

通信をする際にはマスタ、スレーブと役割を分け、マスタからスレーブに対して送信、受信の指示を送ります。

LCDとは

LCD(Liquid Crystal Display)とは、液晶ディスプレイと呼ばれ、生活の様々な場面で使用されています。

今回使用するLCDはこのようなものです。

最大(16*2)文字を下の図のように表示させることができます。

文字の表示は、下のASCIIコードに従います。

例えば、1は00110001と表せます。16進数にすると0x31です。

LCDデータシート

実装

目的

LCDの画面に文字を表示させることを目的とします。

事前準備

今回参考に(ほぼやることは同じですが笑)したのはこちらのホームページです。

Osoyooの解説ページです。

スターターキットに従って多くのチュートリアルを載せてくれています。

それでは設定を始めていきましょう。

①まず設定画面からI2Cを有効にして、再起動をします。

②再起動が終了したら次のコマンドを入力してください。

デバイス名が表示されれば、設定は成功です。

③次に、スレーブアドレスを取得します。

I2Cの説明でも少し触れましたが、スレーブアドレスというものを使います。これは基本的にはメーカーで固定されています。

スレーブアドレスが表示されます。

私と同じものを使用している場合、0x27もしくは0x3Fと表示されると思います。

これで、準備は完了です。次に、電子回路です。

電子回路図

ラズパイのピンにそのままさして構いません。(接続には最新の注意を払いましょう)

プログラム

サンプルプログラムをコピペしました。

ただし、スレーブアドレス(LCDAddr)は自分のデバイスのアドレスに設定してください。

実行すると…

;がなかったり、if文がおかしかったりします。エラーを修正しましょう。

再度実行すると…

画面が暗くなり、文字も表示されません...

ん~、サンプルプログラムなのになんででしょう。

しっかりプログラムの意味を読み解く必要がありそうですね。

I2Cを使ってLCDに文字を表示させる!②(C言語)」に続きをまとめてあります!

関連記事
ラズパイでSPI通信に挑戦!(理論編)| C言語

続きを見る

関連記事
ラズパイでSPI通信に挑戦!(実装編)| C言語

続きを見る

スポンサーリンク

-C言語

© 2021 まきろぐ Powered by AFFINGER5