使用单片机如何实现~10V的信号输出?

放大电路当然是使用运放实现,在我的另外一篇博文里面总结过运放的常用电路:这里我们用到的是同相比例运放电路,如下图:波形变成模拟量输出,那就是加上滤波电路,经过一个滤波电路,可以使得PWM变成DAC输出。为了使得带载能力更强,我们会使用后面接电压跟随器等运放电路。输出电路的不同方案。

已经很久没有上过电路小课了,而且因为最近项目中遇到的需求,所以我想就做一个电路记录总结吧。

当然,我之前并没有使用过本文中的所有电路,但是既然我已经写好了它们,我一定会为他画一个实际的板并测试每个电路。

本次电路小课的主要内容是:如何使用单片机实现0~10V信号输出。

我是金辰,全网同名。 每个系列的文章我都尽力认真写,不夸张,不妥协。 对于我们这些认真学习知识的人来说,我是金辰,金石开启!

1.单片机DAC

第一种方式是使用微控制器自带的DAC模块。 现在许多微控制器都带有 DAC 模块。 我们可以直接使用DAC模块的输出来实现。

比如我们最常见的单片机供电系统是:0~3.3V。 然后我们可以将0~3.3V放大3倍,实现0~10V的输出。

放大电路当然是使用运算放大器来实现的。 我在另一篇博文中总结了运算放大器的常见电路:

常用运放电路汇总记录

这里我们采用同相比例运算放大器电路,如下图:

使用单片机如何实现~10V的信号输出?

DAC1是单片机的DAC输出,0~3.3V,放大3倍。

由于运算放大器的对称性,R2 选择为 3.3K,因此选择的电阻等于 R4 和 R3 的并联电阻。

本文是对该电路的总结记录。 至于电路的效果,我需要看看是否需要在后面的文章中补充,因为除了专用芯片之外,这种用单电源供电的普通运放搭建的电路会有一些问题。 最典型的一个问题就是能否输出0V。

更新测试结果。 第一种方法使用DAC直接放大3倍。 我觉得看起来还是比较满意的。 我们直接上测试图:

使用单片机如何实现~10V的信号输出?

上面我自己手动设置DAC值来实现不同的输出状态效果。

2. PWM加滤波电路

第二种方式是采用PWM加滤波电路。

2.1 PWM输出DAC

如何将PWM波形变成模拟输出就是添加滤波电路。 经过滤波电路后,PWM可以变成DAC输出。 如下所示:

使用单片机如何实现~10V的信号输出?

我应该单独写一篇文章来解释具体过滤器的基本分析。 这里我们只是提到使用RC滤波器可以将PWM输出变成模拟电压。

上图所示仅使用一个 RC 的滤波器电路称为一阶滤波器电路。

为了使输出更加平滑,我们会采用二阶甚至多阶滤波电路。

为了使负载能力更强,我们会使用一个运放电路,后面再接一个电压跟随器和其他运放电路。

2.2 连接滤波器的PWM RC值选择说明

RC滤波器的RC值的选取是新手较难理解和应对的一点。 这也是滤波器设计的要点之一。

我们都知道RC低通滤波器电路的截止频率为:

fc=1/2πRC

这个公式非常重要。 要理解RC滤波器,必须记住这个公式,截止频率公式。

截止频率实际上是输入信号幅度减少3dB时的频率。截止频率也称为-3dB频率

一些简单的解释(当然,如果想要具体的计算分析,可以自行网上搜索,博主还没写过关于RC滤波器的文章= =!):

毕竟,这样做或那样做都是不对的,不是吗? = =! 事实上,情况确实如此。 这种低成本电路并不完美。 我们始终做的就是做出权衡,在有限的成本规定内设计出满足需求的电路。

对于本文中的 PWM,它本质上是一个高频脉冲信号,其中的高频成分将被低通滤波器滤除。 只有低频成分才能通过滤波器,形成模拟信号输出。 我们需要保证PWM的频率远大于RC低通滤波器的截止频率,至少是10倍甚至几十倍,因为频率信号越高,滤波效果越好。

不幸的是,在过滤 PWM 信号时没有完美的固定值范围可以告诉您。 一般来说,电阻应该保持在K级,从几百欧姆到K级,电容应该是nf级,当然从nf到1uf。 这只是一般情况,还是具体情况分析。

涉及到的细节需要大量分析,不过不用担心,在一般使用中,即使你不知道如何选择,也可以根据网上能找到的参考“经验值”来完成电路设计。

重要的是当你根据经验值设计电路并发现问题后,知道如何发现问题以及如何调整参数。 这是硬件设计的关键。

2.3 0~ 3.3V PWM 输出 0 ~10V 方案一:RC 滤波器

以上是简单的说明,那么我们看一下我们这次测试的电路:

使用单片机如何实现~10V的信号输出?

图中的电阻和电容可以根据自己的需要修改。

测试:

正如我们上面所说,我们可以计算出RC低通滤波器的截止频率。 我们需要保证PWM的频率远大于RC低通滤波器的截止频率。

如果PWM的频率比较低会出现什么情况呢? 比如我的PWM周期是1HZ,然后占空比设置为50%。 直接给大家看一张图:

使用单片机如何实现~10V的信号输出?

要进行进一步修改,请稍微修改 PWM 频率。 我测试的其实是定时器的频率,如下:

使用单片机如何实现~10V的信号输出?

根据公式

Tout = ((arr+1)*(psc+1))/Tclk; // 32MHz主频

定时器周期为1ms,实际上意味着频率为1KHz。 为了方便表达0~100对应的占空比,将上面的arr改为100,实际上就是1KHz左右。 我们看一下效果:

使用单片机如何实现~10V的信号输出?

其实测试时我并没有刻意去调整电阻和电容值,直观上效果似乎还可以(上图中的毛刺大多是因为示波器的GND线钳距离太远) 。

选项 2:晶体管

晶体管方案是基于B站Eric Wen老师视频中的电路,由于某些原因,没有附上链接。 你可以自己搜索一下。 我在这里分享给大家,作为参考!

有一个问题。 老师提到的图中偏置电压好像是11V。 这并不令人满意。 我用串联12V二极管来测试:

使用单片机如何实现~10V的信号输出?

因为上图仅供参考!

如果要保证输出不超过10V,那么偏置电压最好选择10V。 把上面的D3去掉比较合适,因为这样最大输出接近12V。

3.专用转换芯片

前两种方法成本相对较低。 与电平转换电路一样,也有0~10V输出的专用转换芯片。

但事实上,我从来没有使用过它,但既然要测试它,我就不能抛下它。 所以我暂时不知道哪个芯片好,所以只能在网上搜索(虽然根据我的理解,度娘搜索的芯片只能说广告太多不一定好),但是有没办法,一查,就是这个芯片:GP8101。

看了介绍,发现这款芯片有一个系列,不仅包括PWM输入,还包括I2C接口:

使用单片机如何实现~10V的信号输出?

我不会在这里发布太多解释。 你可以自行搜索。 本文将把它当作一个解决方案。 我们可以根据推荐电路直接设计电路图:

使用单片机如何实现~10V的信号输出?

测试其实和上面一样,设置不同的占空比,看示波器,结果还是很不错的。

结论

本文列出了如何使用微控制器实现 0 ~ 10V 输出电路的不同解决方案。

要说最稳定、最省心的方案,肯定是使用专用芯片。 如果确实对成本敏感,就要根据实际需求来考虑。 对于文中列出的几个电路,如果在实际测试中有新的发现,博主会第一时间更新文章。

好了,本篇文章就到这里,谢谢大家!

使用单片机如何实现~10V的信号输出?

使用单片机如何实现~10V的信号输出?

使用单片机如何实现~10V的信号输出?

使用单片机如何实现~10V的信号输出?

使用单片机如何实现~10V的信号输出?

单片机

单片机控制技术项目式教程(第2版)-上海

2024-2-10 11:03:34

单片机

程序在单片机中是如何运行程序的?|星标

2024-2-10 12:01:41

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索