« この「テープ」は何という名前? | トップページ | おっと。map関数の計算桁に注意 »

2024年10月 5日 (土)

DDS方式の2相パルス発生回路、周波数スキャン機能を付ける

あれこれ悩みながらこしらえてきたDDS方式の2パルス発生回路
ざっと完成形に持ち込めました。
割り込み処理の時間はギリギリで動いていますが、
メインループはヒマ
ということで、周波数スキャン(sweep)機能を付加しました。
設定するのは、
  Lo側周波数 1~9999Hz   f1
  Hi側周波数 1~9999Hz   f2
  Rise時間  0.0~600.0秒  t1
  Fall時間  0.0~600.0秒  t2
  Hi待ち時間 0.0~600.0秒  w1
  Lo待ち時間 0.0~600.0秒  w2

スイープは
 (1) f1周波数で2相パルス出力
 (2) t1時間をかけてf2までパルス周波数を上昇
 (3) f2周波数をw1時間保持
 (4) f2周波数からf1まで周波数を下降
 (5) f1周波数をw2時間保持
 (6) (1)に戻る
を繰り返します。

「100Hz~400Hz」をスイープすると、こんな波形が出てきます。

Bb002_20241005115101
   変化点を拡大
Bb000_20241005115101

一番下の波形は「F-Vコンバータ」 で見た、
A相パルスの周波数変化。

まだ「main loopはヒマ」だからと、LOG SWEEPの処理も
書き加えてみました。
A相周波数がこんな具合に変化します。
Bb001_20241005115401

Arduino UNO R3のATmega328P(16MHzクロック)、
8bitマイコンなのに、意外と浮動小数点処理を頑張って
くれます。
10msごとに経過時間から周波数を計算しています。

※関連
2024年9月24日:秋月のI2C接続液晶 AQM1602XAを基板に直付け
2024年9月27日:1クロックでも速くしたい DDS方式の2相パルス発生器
2024年9月30日:1クロックでも速くしたい 割込を「ISR_NAKED」で

※回路図
Cw_ccw2

元のでは無しにしていたSW4にsweepの操作を割り当てています。


|

« この「テープ」は何という名前? | トップページ | おっと。map関数の計算桁に注意 »

電子回路工作」カテゴリの記事

ツール」カテゴリの記事

Arduino」カテゴリの記事

コメント

コメントを書く



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




« この「テープ」は何という名前? | トップページ | おっと。map関数の計算桁に注意 »