很多人用了其他单片机,说Arduino效率低,说Arduino成本高,一次要用一块板,不能重复使用。
以此教程献给那些热爱Arduino的人。
这个是我DIY的DDS信号发生器例子。
DDS信号发生器使用了成品模块,其实就是AD9850的IC加上输出的滤波器网络。
控制器用了Arduino,连接1602 LCD作为显示。
控制方法是用左右键移动光标控制不同的位,上下键调整该光标所指示的值,并且具有自动进位和快进的功能
(比如1000,光标指示千位上,按住上键,会变成2000,一直按住,马上就会自己快进,快速变成3000,4000...到达9000以后会自动变成10000,然后继续变成11000,12000,13000...以此类推)
受限于AD9850的性能和外围输出网络的带宽,20MHz下还是很稳定的。用这个配合示波器粗略测个电容电感还是没啥压力的。当然还能在低频下作为音频发生器和频闪光源控制器。
这个电路里Arduino就被移植到了洞洞板上。
仔细看图你会发现:
1. 石英振荡器没有电容,只有负载电阻1M。
2. 用PWM功能驱动三极管实现了背光两度可调工恩那个。
3. 按钮都配备了下拉电阻,实际上完全可以用Arduino自带的INPUT_PULLUP功能,把开关变成下拉触发,这样可以节省大量电阻,可惜当时制作这个时候还没有了解到这一点。
4. 用LM7805供电。
5. 配有完整的复位电路。
整机
模块化设计,拆去LCD模块
将ATMega328P藏于LCD模块下,配有复位电路,晶体振荡器,LCD对比度电位器,背光控制三极管
模块化设计,拆去DDS模块
晶体振荡器没有电容,只有1M负载电阻
自己设计走线的背面
开机画面
初始化完成,调到1000Hz
示波器观察输出
调到1MHz
调到10MHz
200字以内,仅用于支线交流,主线讨论请采用回复功能。