« 『暗号攻防史』 | トップページ | ATtiny402マイコン サンプル:I2Cで液晶表示(Wire.hを使わないで) »

2025年9月 5日 (金)

ATtiny402マイコン サンプル:I2Cで液晶表示

ATtiny402マイコン サンプル:割り込みでシリアル出力
ATtiny402マイコン サンプル:RCサーボモータテスター
に続いて、あらたなATtiny402マイコンのサンプルです。
これらに、I2C液晶を追加してみました。

Sch01

※参:Arduino IDEの環境
Ide01

・シリアル出力を割り込みで。
  出力完了を待たなくても、次の仕事が
  できる。

・A/D変換データ取得を割り込みで。
  変換完了を待たなくても最近値を
  いつでも読める。

・1ms割り込みでタイマー。
  この中でA/D変換開始を指令。


液晶表示の様子
Tn11

ざっと、タイミングを見てもらいましょう。
上から
  PWM出力 50Hz(20ms)でサーボ用パルスを出力
  シリアル出力データ(9600BPS)
  I2C SCL 液晶表示
  I2C SDA  〃

01m

4文字+6文字の液晶表示を行った後、シリアルデータを出力。
2msの時間待ちをしてから2文字を表示。
シリアル出力が割り込みで処理されるので、
2ms待ちと2文字表示が、シリアル出力完了を待たなくても
処理が進んでいます。

さて、なんとかしたいのが液晶表示のためのI2Cアクセス。
「Wire」「twi」ライブラリを使うので複雑になっています。
液晶表示だけなら書くだけ。
余計な処理はいらないので、もっと短くシンプルに
できるはず。

※参考
I2C液晶のアクセス、割り込み処理で遅れる原因らしきもの
I2C液晶のアクセス、割り込みで処理しないようにすると

Arduino UNO R3のI2C制御とATtiny402の制御が
異なるので、ATmega328用のプログラムは動きません。
もうちょい勉強です。

~~~~~~~~~~~~~~~~
  超低速2相パルス発生回路・ケース入れ で、
  I2C液晶表示をwireライブラリを使わない
  ようにしたら(wireの中からtwiを呼んでいる)、
  プログラムのサイズが1.8kバイトほど減少。
  RAMエリアも200バイトほど減りました。
~~~~~~~~~~~~~~~~
てな具合なので、なんとかしたいです。

※バックアップ代わりに今回のスケッチ
  液晶表示処理は別ファイルになってます
   ・ダウンロード - lcd_pwm_txint0.zip


※注意:I2Cのプルアップ抵抗
 ・秋月の液晶表示器 ACM0802C-NLW-BBW-IIC、I2Cのプルアップ抵抗
モジュールに2.2kΩのプルアップ抵抗が内蔵されています。

※続き
 ・ATtiny402マイコン サンプル:I2Cで液晶表示(Wire.hを使わないで)
   プログラムエリアとRAMエリアを縮小できます。

 ・ATtiny402サンプル:I2Cで液晶表示 SCL周波数を設定できるようにしたら


|

« 『暗号攻防史』 | トップページ | ATtiny402マイコン サンプル:I2Cで液晶表示(Wire.hを使わないで) »

Arduino」カテゴリの記事

AVRマイコン」カテゴリの記事

ATtiny」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




« 『暗号攻防史』 | トップページ | ATtiny402マイコン サンプル:I2Cで液晶表示(Wire.hを使わないで) »