2016年5月6日金曜日

Arduino UnoでaitendoのSPIグラフィックLCD(F12864G25412P1701)を動かしてみる。

以前、3.3V駆動のArduino Pro Miniで動かしたが、またまた74HC4050を使って5V->3.3V変換してArduino Unoで動かしてみた。

ブレッドボード図

LCDのLEDA(バックライトLEDのアノード)には基板上で電流制限抵抗が入っているのでVDDに直結していいが、


直結するとバックライトが明るすぎたので100Ωの抵抗を入れた。

U8GLIB


U8GLIBのExampleはコンストラクタに
U8GLIB_MINI12864 u8g(10, 9, 8); 
を1行追加するだけで動く。SCK=13, MOSI=11だがこれを省略して、CS=10、A0=9、RESET=8だけパラメータで指定するとハードウェアSPIで動作するようだ。

少しだけ図形を書いてみるテストをしてみたが、

  // picture loop  
  u8g.firstPage();  
  do {
    draw();
  } while( u8g.nextPage() );


と言う風な流儀で描画をしないといけないようだ。(draw()関数内で実際の描画コマンドを発行する)

で、ドキュメントを流し読みしてみると、毎回画面がクリアされて全部書き直さないといけないようで、アニメーション等で前の絵の一部だけ上書きしたい場合速度的に問題がある。

ちゃんとドキュメントやソースを読んでいないので何とも言えないが、PSoC等で使うときにもう少し調べてみる予定。