HOME 

Arduinoを使ったGLCD12864のI2Cモジュール化

秋月GLCD(SG12864ASLB-GB)は信号線が多くArduino1枚のピンをほぼ使ってしまいます。

そこでI2CスレーブとしてGLCDを制御することにしました。このアイディアはすでに数人の

方がおこなっているので探すとあると思います。自分のサイトで公開できるものを

ということで作ってみました。

●ブロック図

 

●I2CスレーブArduino

モジュールなのでアルミ板に取り付けておきました。

小さい基板で作ってGLCDの裏に貼り付けてもいいかもしれません。

 

●I2Cマスター側はArduinoのks0108ライブラリと同じように使えるようにしました。

GLCDの関数がほぼそのまま使えます。

普通のks0108ライブラリからの変更点は以下のとおりです。

1)スケッチの#include <ks0108.h>を#include <ks0108i2c.h>に置き換えます。

2)Wire.begin()を追加します。

3)GLCDをGLCDi2cに変更します。

4)フォントの実体(配列)はスレーブ側に持っているためフォント名称はdefine定義のFont_をつけます。

これだけの変更でI2C経由でGLCDを制御できるようになります。

 

●I2Cスレーブ側のArduinoは本来ks0108ライブラリを使用する予定でしたが、

glcdライブラリが上位コンパチで高速描画なのでglcdライブラリを使用しています。

  確認Arduinoバージョン: 0023と1.0 (コンパイルと動作テストをしました)

  使用ライブラリ: glcd v3 .  The latest build of the library can be found here:とあるものです。

  (ARDUINO FORUMダウンロードページ

 

●I2Cスレーブ側(GLCD側)回路図

GLCD-I2C_kairo.PNG

 

●スケッチ

Arduinoスケッチ

1) I2Cマスター側 ”libraries\ks0108i2c” (ks0108ライブラリと同じように使えるデモスケッチ)

   ks0108i2c_20120514.zip

   解凍してlibrariesの下にコピーしてください。

 examplesで開いてコンパイル後、I2Cマスター側Arduinoに転送してください。

2)I2Cスレーブ側(GLCD側) ”ks0108i2cSlave” (GLCDの対応関数はks0108ライブラリ、裏でglcd使用)

  ks0108i2cSlave_20120514.zip

   解凍してスケッチをコンパイル後、I2Cスレーブ側Arduinoに転送してください。

  コンパイル時、librariesにglcd-v3ライブラリも必須です。別途用意してください。

 

●動作確認

 I2CマスターArduinoとI2CスレーブArduinoをI2Cケーブルで接続します。

 最初にI2CスレーブArduinoを起動します。1秒待ってI2CマスターArduinoを起動します。

 デモ画面がI2CスレーブArduinoのGLCDに表示されます。

 同時リセットだとデータの取りこぼしが発生するので、マスター側は1秒くらい待ってから

 GLCDの関数を呼ぶといいです。

 

●フォント

  フォントは英字2種類です。

 

●デモ写真(I2Cマスターからデモスケッチを実行し、I2CスレーブのGLCDを撮影)

 

1枚目は画像データをI2C転送しています。2枚目は文字コードをI2C転送しています。

 

●格納データ(C言語データ)

 1)I2Cマスター側  画像データ

 2)I2Cスレーブ側  フォントデータ

 画像データはマスター側にあるのでスケッチから書き換え可能です。

 固定画像ならスレーブ側に持たせてもいいかもしれません。(要改造)

 

 

inserted by FC2 system