Arduino IDEで8pinのマイコンATtiny402と412が動くようになりました。
Arduino IDE で動く8pinの小さなマイコンATtiny402と412の整備

そこで今回はメモリの少ないATtiny202ではうまくいかなかったUARTとI2Cを普通のライブラリで使えるかどうか試してみました。

前もってそれぞれ単独使用を想定した簡単なプログラムを作成してコンパイルを行ったところ,大体以下のメモリが使われていました。
・UART プログラムメモリ:2KB,グローバルメモリ:59B
・I2C(マスタ)プログラムメモリ:1KB,グローバルメモリ:96B

ATtiny402と412はプログラムメモリ:4KB,データメモリ:256B を持っているので何とかなるだろうという見切り発車です(^^;;;;;;



[試作装置]
カラーセンサーから読み取ったRGB値を表示する装置にしてみました。

MPUATtiny402,412
Color SensorHAMAMATSU S11059-02D I2C接続
Display:VFD M202M10B UART接続
レベル変換:BSS138ロジックレベル変換モジュール
 VFDとMPU書き込みは5V,カラーセンサーは3.3VなのでI2C信号はレベル変換を通しています。





ATTiny4x2は8Pinで実質的に使用できるGPIOは5本ですが,UARTとI2Cの各2本のPinは重なっていません。また,残りの1本はVFDのリセットに接続しました。






[動作結果]
今回のプログラムのコンパイルや書き込み時には特にワーニングなどは出ませんでした。

カラーセンサーにはおにぎりケースに入れたRGBを変化できるLED光源を当てて動作を確認してみました。



部屋を暗くしてLED光源のREDを当てたところです。


GREEN


BLUE



正確かどうかは分かりませんが(^^;;;
センサーとしては動いているのが確認できました。



[プログラム]
I2Cによるセンサー入力とUARTディスプレイ出力のシンプルなプログラムです。


・普通にI2CのWireライブラリを取り込み,UARTとともに初期設定をしています。




プログラム全体ではフラッシュメモリ3.3KBとSRAM 145Bを使っています。
フラッシュメモリは残り20%です。もうあまり余裕はない感じですかね(^^;;;



・メインループ部です。
 I2Cで取り込んだセンサデータをVFDにUARTシリアル出力しています。




・後はディスプレイ出力の位置指定と桁揃いのために作ってみたおまけです。





以上,ジャンクのディスプレイが一番高価(1200円ぐらい)という試作装置でしたが,ATtiny402,412ではI2CやUARTが普通に使えそうなことが分かりました。

ディスプレイをI2C接続などにすればメモリの使用量はもっと減らせるとは思います。

8Pinの小さなマイコンは内蔵メモリも多くはなく,データを貯めておくバッファ的な働きには限界がありますが,センサーやシリアル通信できる機器と接続すればいろいろ便利に使えそうですね。