ATTiny85 での動作確認は、ソフトウェアの書き込みが手間なので開発は Arduino pro mini 3.3V を使う。
Arduino pro mini ではハードウェア I2C が使用できるが、Arduino 化した ATtiny85 ではできない。 そこでソフトウェアで I2C 通信ができる TinyWireM ライブラリを使用する。
開発用 Arduino pro mini では 0.96 OLED の制御を OzOLED で Wire ライブラリ経由で行う。 ATtiny85 では、TinyOzOLED でTinyWireM ライブラリ経由で行う。
- SDA => A4
- SCL => A5
- SDA => 5
- SCL => 7
- Wire
- OzOLED
- TinyWireM
- TinyOzOLED
#if defined(__AVR_ATtiny85__)
#include <TinyWireM.h>
#include <TinyOzOLED.h>
#else
#include <Wire.h>
#include <OzOLED.h>
#endif
OzOLED.cpp の init() に
sendCommand(0x8d); //Charge Pump
sendCommand(0x14);
上下が反転するのを防ぐために OzOLED.cpp と TinyOzOLED.cpp の init() に
sendCommand(0xA0 | 0x1);//SEGREMAP 0xA0/0xA1
sendCommand(0xC8);//COMSCANDEC 0xC0/0xC8
を追加。
- Big Number font 、TinyOzOLED で2つ追加されている(?)のでどちらかに合わせたほうが良い
- ATtiny85 では I2C を 400KHz にはできない?CPUの差?
- ATtiny85 を 16mhz で動作させるために Arduino 化する時、Bootloader を書き込む