2014OLEDモジュールを衝動買いまったく時が経つのは実に早いもので、前回のブログ記事はお正月でしたね(笑)。共立電子でArduino用のパーツを物色していて、表示に美しさに惹かれてWinstarのWEH001602Aを衝動買い。説明を良く読まずにかったのが悪かったのですが、このパーツArduinoのLCDライブラリ(LiquidCrystal)では使えません。DATASHEETHD44780系コントローラと同じ操作性と書かれているところが味噌で、残念ながらHD44780互換では無かったです。あとは手がかりとなるのはデータシートらしいのですが、そもそも組込み屋でもない私にはデータシートの読み方が分からず、どうやってこれをソースコードに落としこめばいいのかさっぱりです。ちなみに上記のデジットBlog内のデータシートのリンク先よりも、WINSTAR本家のこのページのデータシート(WS0010を選択)のほうが新しいです。Electronicsのページや、そのままずばりArduino用のライブラリ(Adafruit)などいくつか見つかりました。先人たちがやってくれていた、私がわざわざコードを書く必要は無かったのだと安心して、サンハヤトのArduino用ユニバーサル基板に目をしょぼしょぼさせながらWHE001602Aをハンダ付けして自作シールドを作成。World」が表示されました。うーん、思ったより簡単で拍子抜け。4bitモードだと不安定?メッセージを変えてコンパイルしてArduinoをリセットすると、時々文字が化けて全く読めない状態になった。USBを抜き差ししてもなかなか元に戻らない。原因を探していてこのページを見つけた。それによるとこのOLEDの電源に問題があってノイズが乗りやすく、4bitモードで下位ビットのデータを送出する時にノイズが乗ると誤動作してしまうらしい。おまけにOLEDの利点でもある低消費電力が災いして、USBから抜いた後もしばらく、その状態を維持したままになってしまうとのこと。これを避けるには素直に8ビットモードで使うか、ノイズ対策しろということなんだろうけど、単に表示するだけなら8ビットモードで動かすのが簡単だけど、Arduinoのピンを余分に4つも使うのは勿体ないし、かとハード的に対策するのも面倒。follows要するに4ビットモードでおかしくなっちゃったら”0000”を5回送ってリセットしろという事ですね。Adafruitのコードを眺めて、なんとなくスペックシートとソースコードとの関連も見えてきたので、トライアンドエラーの末なんとか動くようになったのが以下のコードです。'a';}LiquidCrystal互換なライブラリにしろよって声が聞こえて来そうな、ぜんぜん違うコードなのだけど、まあスペックシートから起こしたらこうなったって感じなので、これを参考にもっと高機能でいかすライブラリをどなたか書いてくださる事を希望します。