0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

3种单片机实现0~10V输出电路的方案

硬件攻城狮 来源:矜辰所致 2023-05-29 09:51 次阅读

前言

好久没有上电路小课堂的课了,也是最近项目遇到的需求,想着正好做个电路记录总结。

当然本文的电路以前我也不是全部用过,但是既然写了,那么我肯定给他画个实际的板子,每个都测试一遍。

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

一、MCUDAC

第一种方式,利用单片机自带的DAC模块,现在很多的单片机都自带了 DAC 模块,我们可以直接使用 DAC 模块的输出进行实现。

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

放大电路当然是使用运放实现,在我的另外一篇博文里面总结过运放的常用电路:

常用运放电路总结记录

这里我们用到的是同相比例运放电路,如下图:

wKgZomR0BZaAYkPsAAIDOwFY4Do758.png

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

R2 选择 3.3K 还是因为运放的对称性,选择与 R4 和 R3 并联电阻相等的阻值。

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

更新测试效果,第一种使用 DAC 直接放大3倍,感觉直接看起来还是挺满意的,直接上测试图:

wKgaomR0BZaAFLMjAAtTfYTX7l0214.png

上面我通过自己手动设置 DAC 的值,输出的不同状态效果。

二、PWM 加滤波电路

第二种方式,使用 PWM 加滤波电路。

2.1 PWM 输出 DAC

如何让 PWM 波形变成模拟量输出,那就是加上滤波电路,经过一个滤波电路,可以使得PWM变成DAC输出。 如下图:

wKgZomR0BZaAHLiEAAAZ3a7AM7M726.png

对于具体的 滤波器的基础分析,我应该会单独写一篇文章来说明,这里我们只是提一下,知道使用 RC 滤波器可以使得 PWM 输出变成模拟电压。

上图只使用一个 RC 的滤波电路称为一阶滤波电路。

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

为了使得带载能力更强,我们会使用后面接电压跟随器等运放电路。

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

对于 RC 滤波器的 RC值选择,是新手难以理解处理的一个点,这也是滤波器设计的重点之一。

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

fc=1/2πRC

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

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

简单几点说明(当然,如果要具体算式分析,可自行网上搜索,博主还没有写过 RC 滤波器的文章 = =!):

R 越小,输出损耗越大

R 越大,噪声纹波越大

C 越小(比如到达 pf 级别后),越容易被寄生电容影响

C 越大(比如比较大的 uf 级别后),因为电容越大,普通情况下就只能使用电解电容,但是电解电容的高频特性很差,在 RC 滤波器中尽量不要使用电解电容

说来说去,这不是这也不行那也不行?= =!实际上就是这样,这种低成本的电路没有完美的,我们总做的就是一个权衡,在有限的成本规定范围内,设计出一个满足需要的电路。

对于本文我们的 PWM 而言,其本质上是一种高频脉冲信号,其中的高频分量会被低通滤波器滤掉,只有低频分量才能通过滤波器,形成模拟信号输出。我们要保证 PWM 的频率 远大于 RC 低通滤波器的截止频率,至少在 10 倍以上甚至数十倍,因为越往上的频率信号,滤波的效果越来越好。

很遗憾在给 PWM 信号做滤波的时候并没有一个完美的固定值范围告诉大家,一般来说 ,保持电阻在 K 级别,数百欧姆到 K级别都可以,然后电容 nf 级别,nf 到 1uf,当然这只是普通情况,还是具体情况具体分析。

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

重要的是在你按照经验值设计完电路发现问题了以后知道如何去查找问题,如何去调整参数,这是硬件设计的关键所在。

2.3 0~ 3.3V PWM 输出 0 ~10V

方案一:RC 滤波器

上面简单的说明了一下,那么上一下我们本次测试的电路:

wKgaomR0BZaAJOo7AADJZOaJuJs859.png

图中的阻容大家可以根据自己的需求修改。

测试:

在上文我们说过,我们可以算出 RC低通滤波器的截止频率,我们要保证 PWM 的频率 远大于 RC 低通滤波器的截止频率。

如果 PWM 的频率比较低会怎样,比如,我 PWM 周期为 1HZ,然后占空比设置为50% ,直接给大家看一个图:

wKgZomR0BZaAUGGfAArMB-QE_vg062.png

进一步的修改一下,把 PWM 的频率稍微修改一下,对于我测试的其实也就是 定时器的频率,如下:

wKgaomR0BZaAZiB9AAAl8uCsDUY712.png

根据公式

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

定时器周期为 1 ms, 其实也就表示频率为 1KHz,为了方便表示占空比 0~ 100 对应,上面的 arr 改成了100, 实际上也是 1KHz 左右,再来看看效果:

wKgZomR0BZaAYo6TAAj5XG3O4Gw522.png

实际上我测试的时候没有特意的去调整阻容的值,就直观上看起来效果还是可以的(上图的毛刺多是因为示波器 GND 的线夹得太远了)。

方案二:三极管

三极管的方案是参考 B 站 Eric文老师 视频中的电路,因为某些原因,不放链接,大家可以自行搜索,这里也当做借鉴分享给大家!

有一个问题,偏置电压老师讲的图上好像是 11V ,这个并不好满足,我使用一个 12 V 串联一个 二极管测试一下:

wKgZomR0BZaABJE1AABucy0vh2c691.png

因为上图为借鉴,仅供参考!

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

三、专用转换芯片

前面的两种方式成本相对都比较低,和电平转换电路一样,0 ~10V 输出也有专门的转换芯片。

但实际上我没用过,但是既然都要测试了,那也不能落下,那么一下子也不知道什么芯片好,只能去网上搜索(虽然按我的理解是度娘搜索的芯片只能说广告做得多,并不见得好),但是也没有其他办法,于是乎经过一通搜索, 那就是这款芯片了:GP8101 。

看了一下介绍,这个芯片有一个系列,不仅有 PWM 输入的,还有 I2C 结口的:

wKgaomR0BZaAZ5UXAACtQMr1RPo581.png

这里就不贴太多说明了,大家自行可以搜索,本文也就把他当做一种方案,我们直接根据推荐电路设计电路图即可:

wKgaomR0BZaAbZRaAAKjo6uSRE8799.png

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

结语

本文列出了使用单片机如何实现 0 ~ 10V 输出电路的不同方案。

要说最稳定省心的,肯定是使用专用芯片,如果确实对成本敏感,那就得结合实际需求考虑了。文章列出的几个电路后续如果在实际测试中有新的发现也会第一时间更新文章。

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

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6032

    文章

    44521

    浏览量

    633136
  • mcu
    mcu
    +关注

    关注

    146

    文章

    17002

    浏览量

    350334
  • 滤波电路
    +关注

    关注

    46

    文章

    631

    浏览量

    69594
  • 输出电路
    +关注

    关注

    0

    文章

    74

    浏览量

    15935
  • dac
    dac
    +关注

    关注

    43

    文章

    2272

    浏览量

    190846

原文标题:3种单片机实现 0 ~ 10V 输出电路的方案!

文章出处:【微信号:mcu168,微信公众号:硬件攻城狮】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    可用于单片机0-10V模拟量采集电路(一)

    在嵌入式系统中会用到0-10V电压信号输出的传感器。 而单片机ADC引脚的输入电压却比较低。 如STM32引脚输入电压最高为3.3V,高于3.3V
    发表于 03-16 14:30 1.2w次阅读
    一<b class='flag-5'>种</b>可用于<b class='flag-5'>单片机</b>的<b class='flag-5'>0-10V</b>模拟量采集<b class='flag-5'>电路</b>(一)

    单片机0~10V输出电路实现

    总结单片机实现 0~10V 输出电路的几种方案
    的头像 发表于 05-10 16:02 5741次阅读
    <b class='flag-5'>单片机</b><b class='flag-5'>0</b>~<b class='flag-5'>10V</b><b class='flag-5'>输出</b><b class='flag-5'>电路</b>的<b class='flag-5'>实现</b>

    工业现场0-10V输出电路分析

      今天分析一下,工业现场0-10V输出电路,这个电路是一个网上的开源的,今天主要分析一下0-10V输出
    的头像 发表于 11-14 17:20 2833次阅读
    工业现场<b class='flag-5'>0-10V</b><b class='flag-5'>输出</b><b class='flag-5'>电路</b>分析

    干货分享!单片机0~10V输出电路实现

    见的单片机供电系统为:0 ~ 3.3V。那么我们就可以将 0 ~ 3.3 V 放大 3倍,
    发表于 03-12 09:18

    0~10v0~10v隔离电路如何制作?

    0~10v0~10v隔离电路如何制作?
    发表于 12-21 23:14

    STM32怎么模拟0~10V电压控制电机转速

    想通过STM32的PWM输出模拟量,控制电机的风机转速,但电机提供的是0~10V的模拟量输入范围,而MCU的PWM输出只有0~3.3
    发表于 05-06 11:23

    求问单片机实现0~10V调光问题

    本帖最后由 xiaochaoliu 于 2016-4-1 13:55 编辑 大家好,小弟新手,接到一个项目,需要实现0~10V的模拟调光功能,并且是自动调光,从0~
    发表于 04-01 13:37

    单片机如何实现DAC输出0~20mA或0~10V

    现在准备通过STM8单片机DAC方式输出4~20mA或者0~10V信号,单片机3.3V供电,DA
    发表于 05-29 11:16

    单片机模拟量输出

    请问用单片机配合怎么怎样的电路实现同一输出输出-10v~+
    发表于 12-02 14:35

    单片机如何实现输出0~20mA或0~10V

    最近做传感器变送器的项目,现在碰到技术型问题,单片机如何输出模拟量:0~20mA或者0~10V或者0
    发表于 04-12 15:02

    4~20mA转换为0~10V电路

    4~20mA转换为0~10V电路
    发表于 02-18 21:50 1w次阅读
    4~20mA转换为<b class='flag-5'>0</b>~<b class='flag-5'>10V</b>的<b class='flag-5'>电路</b>

    单片机通过PAC芯片GP8101控制0-5V调速电机方案

    0-5V或者0-10V电压是许多电机的通用调速接口,而一般的主控芯片为3.3V供电的单片机或者DSP,于是需要一个能产生0-5V
    的头像 发表于 11-12 09:11 7999次阅读
    <b class='flag-5'>单片机</b>通过PAC芯片GP8101控制<b class='flag-5'>0-5V</b>调速电机<b class='flag-5'>方案</b>

    GMY001 0-100%PWM转±10V输出模块

    特性 客益电子的GMY001将0%-100%占空比的PWM信号输入,线性转换成-10V到+10V的模拟电压输出。 输入信号范围0%-100%
    的头像 发表于 05-22 09:12 3395次阅读
    GMY001 <b class='flag-5'>0</b>-100%PWM转±<b class='flag-5'>10V</b><b class='flag-5'>输出</b>模块

    单片机如何实现 0~10V 输出电路的不同方案

    小课堂主要内容就是: 使用单片机如何实现 0 ~ 10V 的信号输出。 我是矜辰所致,全网同名,尽量用心写好每一系列文章,不浮夸,不将就,认
    的头像 发表于 06-22 10:56 3749次阅读
    <b class='flag-5'>单片机</b>如何<b class='flag-5'>实现</b> <b class='flag-5'>0</b>~<b class='flag-5'>10V</b> <b class='flag-5'>输出</b><b class='flag-5'>电路</b>的不同<b class='flag-5'>方案</b>

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

    使用单片机如何实现0 ~ 10V的信号输出? 要实现0
    的头像 发表于 10-26 17:37 3274次阅读