Osoyoo Arduino 16×2 I2C LCD プロジェクト

Prev:Osoyoo Arduino 傾斜センサープロジェクト

今回は、I2CでLCDに文字を表示しちゃいましょう!って感じです。

I2Cとはなんじゃ?と言う方に少しだけ。

電源2本、信号線1本、クロック線1本の合計4本で通信が出来てしまうシリアル通信の規格なんです。簡単過ぎだwww

ネットワークには複数ノードが接続される為に、パケット内にSlaveアドレスを指定する必要があるため、送信データは増えてしまいます。

I2Cの後発でSPIというのがありますが、こちらは各ノードをCSで選択する事により送信データが少なく、また送受信の手順も簡単になっています。(I2Cはちょっと手間がかかる)。

ただし、その分CSの線がノード分増える事になりますので、設計する際には何が重要かで選択する事になると思います。

話を戻して、

今回の接続図です。

と思ったのですが、LCDの裏側のパーツがありません・・・・・

なので、本当のパクリでお送りします。

(しかも写真に透かしが・・・悪気はありません・・・ごめんなさい・・・・)

で、今回はI2Cのライブラリーを取り込む必要があるらしいです。

LiquidCrystal_I2C.zip

をダウンロードして、下記フォルダ内に配置します。

既にLiquidCrystal_I2Cというフォルダがある場合には、リネームしておきます。

C:\Program Files (x86)\Arduino\libraries

ArduinoIDEの画面で「Sketch->Import Library ->Add Library」をクリックして、解凍済みのLiquidCrystal_I2Cフォルダを選択します。

リストで新しいLiquidCrystal_I2Cが出てきたらOKです。

ArduinoIDEを再起動します。

では、図のように接続します。

「SDA=A4 」

「SCL=A5」

「VCC=5V」

「GND=GND」

こんな感じで、通電するとLCDのバックライトが光ります。

LCDの拡大

何も文字は出てきてません。

さて、次はこのLCDのアドレスが何番かを知る必要があります。

先ほど説明したように、送信データとしてSlaveアドレスが必要なためです。

下記ソースをArduinoに展開します。

Arduinoにロードします。

ArduinoIDEの画面で「Tools」-「serial monitor」を開くと接続されているI2CのSlaveが表示されますので、メモっておいてください。

いよいよ、LCDへの文字表示です。

上記ソースで0x3fとなってる箇所を0x27へ変更します。

LiquidCrystal_I2C lcd(0x3f,16,2);

LiquidCrystal_I2C lcd(0x27,16,2);

Arduinoにロードすると下記のように「Hello World!」が表示されます。

ほんま便利な世の中になったよなー。シミジミ

Next:74HC595 シフトレジスターを使って、直列入力並列出力プロジェクト

シェアする

  • このエントリーをはてなブックマークに追加

フォローする