SSD1306 DSD TECH OLED 0.91インチーOzoled

SSD1306 DSD TECH OLED 0.91インチーOzoled

https://github.com/mistertwo/ozoled-oled-display-096-i2c-driver-library
Clone&downloadのボタンを押して、ZIPをDL
スケッチーラインブラリをインクルードーZIP形式のライブラリをインストール
でDLしたZIPを選択
ファイルースケッチ例からOLED_Hello_Worldを選択して実行すればOK。
#include <Wire.h>
#include <OzOLED.h>
void setup(){
  OzOled.init();  //initialze Oscar OLED display
  OzOled.printString("Hello World!"); //Print the String
}
void loop(){
}
これでフラッシュが3.3kb、RAMが234バイト。
前のAdafruitのライブラリーをそのままで同じHelloWold!を表示させたときは、
12.63kb、RAMが342バイトだったので、軽い!というは特徴。

Attiny85でも使いたいのでライブラリを探す
https://gist.github.com/tinytintoy/51ed73b7afae9cabcb9fb1a6890b6f94
先人の方々に感謝。TinyOzOLEDってのが
https://github.com/SensorsIot/TinyOzOled
か上とら同じように、ZIPをDL.ライブラリーを取り込みます。

Attiny85にArduinoISPで書き込みできる状態にして(いっぱいある紹介されているんでここでは割愛。こことか)

#include "TinyWireM.h"
#include "TinyOzOLED.h"
void setup() {
  OzOled.init();
  OzOled.printString("Hello World!!",0,0);

}
void loop() {
  // put your main code here, to run repeatedly:
}

#includeの部分をTiny版に変更してAttiny85に書き込み、SDA,SCL,VCC,GNDを繋いていざ。

 が!しかーーし!
写真だとわかりにくいが、文字が小さい、フォントが縦につぶれたようになる。
まず読めるレベルではない・・・・
ArduinoからOzOLEDで表示したらならなかったが、AttinyでTinyOzOLEDすると文字が小さくなる。

ちょっと調べると、回避方法が載っていたのでまとめておくと・・・
上でZIPでライブラリーを取り込んでいるが、個人によるが、
ドキュメント/Arduinoのフォルダにあるlibrariesに、TinyOzOled-maserができている。
このフォルダーにあるTinyOzOLED.cppを開く(噂なんで確認していないが、Visial Studio系のエディターで開く、改行の問題があるらしい・・・・)
init()の下に
sendCommand(0xA8); //Multiplexer
sendCommand(0x1F);
sendCommand(0xDA); //Com pins
sendCommand(0x02);
を追加し、上書き保存。
ここで再度、Attiny85にArduinoISPを通じで”Hello World!!"のスケッチをコンパイルして書き込んでやる。

写真ではわかりにくいが、文字がはっきりと大きくなる。

開発時点だと、上の写真のようにISPとOLEDを同時に接続している。
GNDやVCCは共通なんで問題ないが、Attinyから見たI2Cに使うSCL,SDLのラインはArduinoからの書き込みにも使う。いちいち繋ぎかえるのが面倒なんで・・・と壊れはしないが、SCLのラインをArduinoから切り離して、USBの抜き差しで電源を入れなおすとOLEDへの変更が有効になる。
まあ、それに気が付くまで、ん?って苦労したので備忘録。








コメント

このブログの人気の投稿

Attiny85とAQM0802A(LCD)のI2C接続

Attiny85 FuseRest

HS101 STM32の自作お手軽オシロスコープ