« 「導通チェッカー」から「配線チェッカー」へ | トップページ | シリコン樹脂とリミットスイッチの接点 »

2024年9月24日 (火)

秋月のI2C接続液晶 AQM1602XAを基板に直付け

SDAとSCLの2線でつなげる液晶モージュールが
なかなか便利です。
先日来使っているのが16文字x2行のこれ。
  AQM1602XA-RN-GBW
液晶の足は1.27mmピッチで一直線。
  AE-AQM1602A(KIT)
これになると2.54mmピッチへの変換基板が付属しています。
内部昇圧回路のコンデンサが付いているので、
主回路への接続は、+電源・GND・SDA・SCLの4本だけ。

ところが、この基板を使うと、液晶を基板に貼り付けるのに
  上に出っぱる
  厚くなる(基板そのものは1.2mm厚)
と、使い勝手がよくありません。
Ll10
Ll13

そこで、こんなつなぎをしています。
足を曲げて外に膨らませ、2.54mmピッチの
ユニバーサル基板にハンダしちゃうのです。

Ll11
ちょい拡大
Ll12

コンデンサの取り付けは基板の裏(パターン側)で。
L14_20240924163601

液晶板と基板の間にはスポンジタイプの両面テープ。
全面に貼ると剥がすとき大ごとになりそうなんで、
両端にちょっとだけ。

この液晶を使い、Arduino UNO R3(のチップで)こんなツールを
作っています。
Ll14

二つともデジタルで周波数を設定できる2相パルス発生回路
です。
90度位相差のあるA相B相パルスを出力します。
CW/CCWとカウント方向を変えられます。

下のは 「fclk / n16」でATmega328の16bitタイマー、
アウトプットコンペアで分周する方式。
周波数を設定できる範囲は0.1Hz~9990.0Hz。
   1/nですんで周波数が高くなると
   ちょいと誤差が出ます。

割り込みの時間に余裕があったんで、パルス数を
指定して「何発出せ」をできるようにしてみました。
  ロータリーエンコーダを回して周波数とパルス数を指定。
  CWあるいはCCWスイッチを押すとパルスを出力。
  設定数出したらSTOP。
2相パルスとして使わなくて、
  「何発かのパルスが欲しい」
ときに便利。
  お手軽ツールで、これってなかなか無いんじゃ
  なかろうか。

上のはDDS方式で、0.01Hz単位で周波数を設定できます。
0.10Hz~9999.99Hz。
こっちは STOP・CW・CCWの操作だけ。

基準カウントクロックが80kHzで、16MHzクロックの
ATmega328にはなかなか重い仕事です。

80kHz=12.5μ秒で割り込みをかけてDDS処理。
タイマー1のコンペアマッチで2相パルスを出力します。
ポートを叩いてH/Lを出力するんじゃないので、ジッターは
ありません。  (DDSに起因するジッタはある)
  80kHzで割り込み。
  DDSのための32bit加算
  次のコンペマッチで出力するA相B相を決定。
これを繰り返します。

※関連記事
2024年6月2日:秋月電子通商のI2C接続液晶表示器
2021年7月2日:秋月の液晶表示器 ACM0802C-NLW-BBW-IIC、I2Cのプルアップ抵抗
2022年7月18日:秋月電子16文字x2行のI2Cインターフェース液晶AQM1602Y
2024年9月12日:液晶表示:CG-RAMの表示がちょいと違う

※重要 液晶へのI2CアクセスとTWI割り込みを切り離せたから
    高速割り込みが安定してできるようになったのです。
2024年4月3日:超低速2相パルス発生回路・ケース入れ
2024年4月7日:I2C液晶のアクセス、割り込み処理で遅れる原因らしきもの
2024年4月12日:I2C液晶のアクセス、割り込みで処理しないようにすると


※2相パルスあれこれ
2024年4月26日:治具作りは面白い:2相パルスの発生
2014年07月01日:高速2相パルス発生回路
2018年5月25日:アナログ入力で2相パルスの周波数と正転逆転を制御する発振器

※2相パルス発生回路 回路図
Cw_ccw2

2022年8月24日:パルスジェネレータを作ってみた:箱に入れた
これの出力はデューティ可変できますが
「パルスを何発欲しい」には対応していません。
設定も「周期」で、「周波数」として合わせたい時は
ちょいと不便。
「全部入り」を作ろうとすると、Ardino UNO-R3ベースでは
だいぶとチカラ不足。

いずれも、電源や表示器以外は、
  ATmega328Pの中に入っている機能だけ
で実現していますんで、
「こんだけできるんやで」と褒めてやりたいところ
です。

※案
DDS方式の2相パルス発生器、割り込みの中では
処理時間の制限でもうなにもできませんが、
「外(main loop)」ではあれこれできそうです。
例えば、周波数を振らす。
  何Hzから何Hzまで、何秒かけて周波数をup/down。
てな処理です。
DDS加算している値を変えると周波数が変わります。
  割り込みでの処理時間は同じ。
設定メニューを出してあれこれでしょう。
  SW4を付けとけば良かった。


|

« 「導通チェッカー」から「配線チェッカー」へ | トップページ | シリコン樹脂とリミットスイッチの接点 »

ツール」カテゴリの記事

Arduino」カテゴリの記事

コメント

コメントを書く



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




« 「導通チェッカー」から「配線チェッカー」へ | トップページ | シリコン樹脂とリミットスイッチの接点 »