DDS IC「AD9833」をArduino UNO R3で制御
備忘録としてアップしておきます。
2025年5月21日:Arduino UNO R4 minima 電源供給方法でクロックが変わる#4
この実験で使った「1MHz近傍周波数発振回路」です。
Arduino UNO R4 minima、あるいはRA4M1コアボードから
出力させた1MHzを、このDDS回路で出力した1MHzをmix
してビート音を出しました。
DDS IC AD9833は、モジュールじゃなく単体の石を
買ってありました。
25MHzの水晶もあったのですが、あえてATmega328P
から16MHzのクロックを出すようにして横取りしました。
全体の消費電流は25mAくらい
出力はフィルタやアンプを入れずにそのままです。
高速オペアンプを買ってあれこれ試して
みたいところです。
最低周波数が1Hz。 最小桁が0.1Hz。
最高周波数は5MHzあたり。
周波数をスイープする機能を入れてありますんで、
何かの実験で役立つかもしれません。
・制御スケッチ
・ダウンロード - ad9833_01.zip
※スケッチ追加修正してます
・sweep時のトリガ用(オシロでの観察)として
Rise時、PD4をHにしています。
Hの↑エッジで周波数 A->Bのスイープが
始まります。
↓エッジがWait-Hのタイミングになります。
ABCラジオ(AM 1008kHz)にビートをかけて
遊んでいるところ。 (ラジオを横に置いて)
液晶アクセスの「TWI」、AD9833アクセスの「SPI」。
ともにライブラリは使わずATmega328PのI/Oレジスタを
直接操作しています。
ATmega328Pの「SPI」なんて、ほんとに簡単。
(出力制御の場合)
I/Oポートを操作してる感覚で制御できますんで、
ライブラリなんて要りません。
要るのはATmega328Pのハードウェアマニュアル。
※関連
・2024年10月6日:おっと。map関数の計算桁に注意
| 固定リンク
「Arduino」カテゴリの記事
- ATtiny1614:タイマレジスタの初期設定を見る(2026.01.06)
- ラジオペンチさんの「ダイソーのゆらゆらLEDキャンドルライト」#2(2025.09.15)
- ラジオペンチさんの「ダイソーのゆらゆらLEDキャンドルライト」(2025.09.11)
- ATtiny402サンプル:"Wire.h"を使わずI2Cで液晶表示 AQM1602だと(2025.09.09)
- ATtiny402サンプル:I2Cで液晶表示 SCL周波数を設定できるようにしたら(2025.09.09)
「発振回路」カテゴリの記事
- DDS IC「AD9833」をArduino UNO R3で制御:箱入れ #2(2025.07.03)
- DDS IC「AD9833」をArduino UNO R3で制御:箱に入れる(2025.06.30)
- DDS IC「AD9833」の出力にバッファアンプを #2(2025.06.26)
- DDS IC「AD9833」の出力にバッファアンプを(2025.05.27)
- DDS IC「AD9833」をArduino UNO R3で制御(2025.05.25)


コメント