当前位置:   article > 正文

Arduino + AD9833 波形发生器

ad9833

Arduino + SI5351 方波发生器_姜戈12的博客-CSDN博客SI5351 方波发生器https://blog.csdn.net/jiangge12/article/details/125815044

感觉 Si5351 只有方波还是少点意思。

看到有人做 AD9833 ,成品卖355元。icon-default.png?t=N7T8https://www.bilibili.com/video/av463721457/

上面视频里卖家做了一个豪华底板,有屏幕编码器按键等,能够有不少附加值(增加售价)。

不过真的需要搞这么复杂?

看看视频觉得有 DIY 价值,做成了不就节约355元了吗。

想起个笑话: “今天下班一回家,没有挤上公交车,实在等不住了,就跑回了家,我赶紧给老婆报喜,我说:“老婆,今天我省了一块钱,我跟着公交跑回来的!”老婆说:“这么厉害,明天你跟着出租车跑回来,要省好几十块钱呢!”我想了想,我说:“对呀,我咋那么笨啊,还是老婆聪明!”

找到模块是左图这样的,16元。没选右图那样带SMA接口的,既贵也手里也没配套线材。

真需要严谨高频波形时估计会上更高指标的,这个也就练练手。

再仔细看了看,右图多了一级AD8051放大,并且使用了数字电位器,贵还是有贵的道理。

“ Ctrl+Alt+I ” 打开库管理界面,搜的一下,arduino 已经有这个库,尝试编译也通过了。

那接下来就等模块到货了。。。几天之后。。。快递在疫情期间准点到达

------------------------------------------------------------------------------------------------------------------

先焊接排针(左图)。如图 5个数字脚 和 2个模拟脚 上下分开,有字一面向上方便看引脚标识。

看了下PDF,AD9833电流很小,可以像之前做OLED实验一样,用数字引脚供电。

实拍测试场景:先用的UNO测试,后因用到蓝牙改用 ESP32 。如果和上图一样插在 UNO的 D7-D3 ,直接用如下代码:( D7 Vcc   ,D6 Gnd )

代码很简洁,比SI5351易读。关键是 SI5351 例程代码频率需要校准,AD9833就不需要的。

  1. #include <MD_AD9833.h>
  2. #include <SPI.h>
  3. MD_AD9833 AD(/*DATA*/5, /*CLK*/4, /*FSYNC*/3);
  4. void setup(void)
  5. {
  6. pinMode(7, OUTPUT); digitalWrite(7, HIGH); // 数字引脚供电(仅限极低低功耗模块)
  7. pinMode(6, OUTPUT); digitalWrite(6, LOW);
  8. AD.begin();
  9. AD.setMode(MD_AD9833::MODE_TRIANGLE); // MODE_SINE MODE_TRIANGLE MODE_SQUARE1
  10. AD.setFrequency(MD_AD9833::CHAN_0, 1000000);
  11. }
  12. void loop(void)
  13. {
  14. }

----------------------------------------------------------------------------------------------------------------------

如没有示波器,把 AD9833 频率降到 1KHz,可以用 ADC 采样并输出到 串口绘图器。

UNO ADC 默认采样速度 10KHz ,可以提高到 67KHz。 代码如下:

  1. #define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit))
  2. #define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))
  3. int i;
  4. int ch0_adc[600];
  5. void setup(void) {
  6. Serial.begin(2000000);
  7. sbi(ADCSRA,ADPS2) ;
  8. cbi(ADCSRA,ADPS1) ;
  9. cbi(ADCSRA,ADPS0) ;
  10. }
  11. void loop(void) {
  12. for ( i = 0 ; i < 600 ; i++){ ch0_adc[i] = analogRead(A0); }
  13. for ( i = 0 ; i < 600 ; i++){ Serial.println(ch0_adc[i]); }
  14. delay(1000); // 单位 毫秒
  15. }

“ Ctrl+Alt+L ” 打开 Arduino IDE 串口绘图器 ,即可看到下面这样的波形

-----------------------------------------------------------------------------------------------------------------------

最后,总要有别于其他已经有的波形发生器才算对得起折腾。

ESP32不是有蓝牙吗?程序移植到ESP32是及其容易的,注意几个引脚号即可。

AD9833 插在ESP32上,外加一块电池。

不打板不做外壳还能比这更简洁? 

 示波器也配合用手持的,这样摆拍方便。

下面是 手机控制参数 的 演示视频 。( 模块黑乎乎的在右上角 )

https://v.youku.com/v_show/id_XNTg4OTczOTAzNg==.htmlicon-default.png?t=N7T8https://v.youku.com/v_show/id_XNTg4OTczOTAzNg==.html

 手机 App 用的是  汇承  的,帮他家宣传下,不买他的模块也可看看资料。

附:

卓老师的测试,看得出来已经用上了面包板硬线,不过依然没有直插简洁测试AD98331. 该模块是购置于淘宝GY9833: Price: 6.85。AD9833购买模块以及测试实验2. 测试实验板(1) HardwareAltiumDesign\Test\2020\GenretCntF103\SPIF030K8(2) Firmware所在目录:Application\Test\2020\GeneralFSPIF030\Src模块AD983...https://blog.csdn.net/zhuoqingjoking97298/article/details/104111128

卓老师的分析在今天充满着2的岁月日子里,也有着和2无缘的事物,那就是AD9833。它所产生的12.5MHz的信号中,居然没有所有的偶次(2的整数倍数)谐波。AD9833及其实验电路AD9833是一款AnalogDevices公司的可编程信号低功耗发生器芯片。工作电压2.35.5V。在外部25MHz时钟信号驱动下可以产生0.1Hz12.5MHz的正弦波、三角波以及方波。被应用于工业气体、液体流量测量、位...https://zhuoqing.blog.csdn.net/article/details/104151117

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/540012
推荐阅读
相关标签
  

闽ICP备14008679号