mbed導入事例
以前mbedを購入してすぐOLEDを動かしてみた事がありました。このOLEDは0.95インチと、とても小柄ながら発色も良く安価で単電源3.3V駆動と扱いも簡単なため、aitendoさんでも人気商品です。
この記事を書いている現時点では、すでにキャリーボードが改良された後継バージョンが発売されています。当ブログでも、流行りに乗るべくさっそく購入しました。
今回のキャリーボードはSPIに加え、パラレル通信方式も対応できるようになっています。キャリーボードにピンアサインが書いてありとても親切です。
…が、これはパラレルのピンアサインなので
SPIモードユーザには不親切だったりします。
SPIモードでは通常
- MOSI (制御マイコンから周辺機器へデータ送信)
- MISO (周辺機器から制御マイコンにデータ受信)
- CLK (データ送出タイミングの同期用のクロック)
- CS (チップセレクト端子)
が必要です。
このOLEDではSPIモードでは表示データの通信には以下の端子を必要とします
- MOSI
- CLK
- DC (データ、コマンド識別端子)
- CS
- RESET (リセット端子)
ざっとデータシート【注:PDFです】を眺めるとSPIモードで必要な端子は
(カッコ内はピン番号) (1)VCCLCD → OLED表示用電源(+3.3V) (2,3,4) → 3ピンともショートしてGNDへ (6) VDD → VDD(+3.3V) (13) DB1 → MOSI (14) DB0 → CLK (17) RS → DC (18) CS → CS (19) RESET → RESET (20) VDD → (6)とキャリーボード上でショートしてるので配線の必要なし (22) GND → (2)とキャリーボード上でショートしてるので配線の必要なし
であることがわかりました。
さて、2,3,4番ピンのショートですが自分は下の図のように基板上で半田ショートさせました
これを今、きばん本舗さんで取り扱いがある、またスイッチサイエンスさんでも基板単体が大人気の「☆Board Orange」と秋月のジャンプワイヤを使用し接続します。
↑☆Board Orangeの外観
OLEDとmbedの接続は
(カッコ内はmbedのピン番号) (mbed) → (OLED) (P5) → MOSI (P7) → CLK (P21) → CS (P22) → RESET (P23) → DC
mbed.orgのcookbookにはRTCの時間をネットワークから設定するNTP-Clientというライブラリがあります。nuchoさんがこれを利用したネットワーク時計を製作されていました。今回、nucho氏のご好意でOLEDに表示可能なようにポーティングしました。なお、漢字表示ライブラリも同梱してありますので、Shift-JISであれば日本語表示も可能です。
そのプログラムをこちらにpublishしました。mbedにダウンロードして使います。
- プログラムをmbedにダウンロード
- ☆Board OrangeのRJ-45コネクタにネットワーク接続可能なLANケーブル接続
- mbedをリセット