![[多機能メーター製作]ディスプレイ編 [多機能メーター製作]ディスプレイ編](https://cdn.snsimg.carview.co.jp/minkara/blog/000/045/011/454/45011454/p1m.jpg?ct=6e9c184f3a21)
私は週末しかエイプに乗らないので、冬場はバッテリーの電圧が気になっていました。バイク用に各社から電圧計が販売されていますが、マイコンを使って趣味で自作することにしました。折角なのでバッテリーだけでなく、時計機能、気温、油温、タコメーター、距離計、燃料計なども作れたらと思っています。
マイコンにはSTマイクロ社のNUCLEO-F411REというマイコンボードを使用します。これはARM社が整備するMbedというプラットフォームで開発可能なマイコンボードで、Arduinoとピン互換になっていたりします。Cortex-M4/FPU 100MHz, Flash512KByte, RAM128KByteと、ハイスペックどころかかなりのオーバースペックなので機能的に不足することはないでしょう。
表示には SSD1306というディスプレイを使用します。有機EL(OLED)なので太陽光の下でも見やすく、0.96インチ128x64ピクセルと非常に小型です。マイコンとはシリアルIFで接続し、I2C方式とSPI方式があります。I2C方式は配線数が少ないというメリットがあるのですが、SPI方式の方が表示が高速とのことなのでこちらを選択しました。半年程前に購入し放置していましたが、そろそろ本気を出そうと思います。
下図がマイコンとOLEDとの接続図です。
SSD1306のライブラリは「関連情報URL」から入手しました。
ピンアサインを上記接続図に変更。
ソフトをマイコンにダウンロードして起動。
おぉ!サンプル画像が表示された!
が、なんか変ですね。。。
画像が縦に伸びているようです。
そして左上には128x32の表示が。
解像度は128x64では?
調べてみるとライブラリのヘッダーファイル「Adafruit_SSD1306.h」に記述のある「Adafruit_SSD1306_Spi」クラスのコンストラクタで、OLEDの高さ指定と思われる個所が32になっていました。これを64に変更。
Adafruit_SSD1306_Spi(SPI &spi, PinName DC, PinName RST, PinName CS, uint8_t rawHieght = 32, uint8_t rawWidth = 128)
↓
Adafruit_SSD1306_Spi(SPI &spi, PinName DC, PinName RST, PinName CS, uint8_t
rawHieght = 64, uint8_t rawWidth = 128)
解像度が128x32の製品もあるということでしょうか?よく分かりませんが成功です。

Posted at 2021/04/11 23:52:48 | |
トラックバック(0) |
多機能メーター製作 | 趣味