没有微控制器生成PWM的最简单方法是什么?


15

在没有微控制器控制伺服电机的情况下,产生PWM的快速,优雅的方法是什么?用电位器或其他方式来控制具有固定周期的占空比。

  • 抱歉,我想控制一个业余伺服系统。

您是否真的是说要作为伺服控制系统的一部分来控制电动机,还是您要控制“业余伺服”?看到除了我的答案。
奥林·拉斯罗普

1
为什么要PWM?PWM通常只是微控制器近似模拟控制功能的一种方式。如果您真正想要的是模拟电压或电流,则可能有更好的方法。
Photon

2
@ThePhoton如果他正在控制一个业余伺服器,则需要PWM作为控制信号。
尼克·约翰逊

如果放弃固定周期要求,则Δ-Σ振荡器将是一个非常简单的解决方案。我见过使用单个运算放大器和几个电阻器/电容器的实现。假设您不是在谈论RC伺服。
jippie 2012年

1
@jippie-什么是delta-sigma振荡器?我知道一个delta-sigma ADC需要一个振荡器,但是我一直认为这是很普遍的事情,因为它实际上并不是转换器本身的一部分。
stevenvh 2012年

Answers:


25

我建议(GASP!)555计时器处于“稳定”模式。您会在链接中找到所需的所有内容,但我只是在这里为您复制了它们!

不稳定模式为您提供可变的PWM频率,并且还允许可调占空比(链接中的高时间和低时间方程式)。

电路:

555 Timer, astable mode

注意:我会在Vcc(正极引线)和GND(负极引线)之间增加一个电解电容,以减少电源电压骤降的影响。

PWM频率:

Output frequency of 555 Timer in astable mode

与本文中的其他人相比,我的回答有些辩护。大多数其他答案都需要中间波形来生成可变的PWM信号,例如常见的三角波/比较器方法。我认为构建三角波发生器(本身就是电路的重要部分)只是解决问题的中间步骤,没有多大意义。

555是一款出色的模拟芯片,可以满足您的所有需求。我希望人们不要那么讨厌他们。


2
我喜欢555,但我认为@supercat是正确的,因为单个555无法为您提供固定频率,可变占空比的信号。C通过R1 + R2充电,并通过R2放电。如果增加R2,则将增加打开和关闭时间,并因此增加周期。如果增加R1,则只会增加接通时间,还会增加周期。如果增加C,则所有时间(包括期间)都会增加。您需要两个555。一个处于非稳态模式,它将确定周期,触发另一个,处于单稳态模式,它将确定占空比。
特拉克拉沃

5
“您将在链接中找到所需的一切”。不,那不是正确的答案。在此处提供详细信息。
stevenvh 2012年

1
我不恨555,我只是希望人们不会提到他们的最佳的解决方案的一切。单个555并不是控制业余伺服的最佳方法。
stevenvh 2012年

1
@Telaclavo-你是正确的;您不能更改占空比并保持频率恒定。但是,正如WoutervanOoijen提到的那样,运行伺服器不需要严格固定的频率。占空比的变化可能会在脉冲频率中产生大约10-20%(粗略估计)的摆幅,对于大多数伺服器来说,该摆幅应该足够准确。再说一次,您实际上并不需要调整占空比以控制伺服器。
kevlar1818 2012年

2
@stevenvh当维基百科去世时,您让我知道。即使确实如此,正如Dean在上面的评论中所表明的那样,555是如此普遍,以至于很难找到一本有关其信息的旧书,小型博客或爱好网站。
kevlar1818 2012年

8

Ye Olde Phashioned制造具有模拟受控占空比的PWM的方法是将模拟控制信号与三角波进行比较。您可以制作一个以所需的PWM频率运行的三角波发生器。这被馈送到比较器的负输入端,而模拟控制信号被馈入正输入端。结果是完全高电平或完全低电平,但占空比与控制信号成线性比例。例如,早期的D类音频放大器就遵循这一原理。

在很多情况下,PWM不必是超线性的,因此三角波不必具有完美的直边。将它们设置为指数级可以简化电路。

添加:

马克·拉格斯(Mark Rages)指出,当您说“伺服电动机”时,您可能是指模型飞机等上使用的位置控制型小型爱好电动机。我的答案适用于控制电动机,假设您的模拟电压与要驱动电动机的强度成正比。它不适用于这些“业余伺服器”。从一般意义上讲,这些不是由PWM控制的,而是由通常需要每20到50毫秒左右重复1到2毫秒的脉冲宽度来控制的。如果这个问题确实是关于业余伺服器的,那么应该修正它以使其清楚。


尽管这确实完成了任务,但必须注意@pstan要驱动伺服器,因此在其实现中拥有一个函数生成器可能不太容易移植。
kevlar1818

1
伺服电机的占空比通常很低,例如10%或更小。而且伺服系统直接使用脉冲宽度,而不是平均值,因此最好使用将脉冲宽度与重复率解耦的电路。
2012年

1
@kevlar:我重新检查了答案,但仍然看不到其中的函数生成器。我只说您需要三角波或足够近的东西。您当然不需要使用函数生成器来创建其中之一。
奥林·拉斯罗普

@Markrages:嗯?如果速度足够快,则电动机会看到脉冲序列的平均值。就大多数电动机而言,几百赫兹就足够了。伺服部分是通过控制方案完成的,OP对此并没有要求。看来他已经有一个模拟水平,该水平与电动机的驱动力成正比。
奥林·拉斯罗普

@Markrages:在我看来,您正在谈论业余伺服器,它希望每20 ms左右发送一次1-2 ms的脉冲吗?从这个角度来说,您的评论是有道理的,但是OP根本没有提到爱好伺服。
奥林·拉斯洛普

7

三角波。比较器。控制阈值。这是做到这一点的基本方法。

PP

enter image description here

首先产生一个50Hz的方波。最简单的方法:

enter image description here

Ω

REXTCEXT

T=REXT×CEXT

μΩ

ΩΩ

我可以用两个LM555来完成此操作,但是我需要更多的外部组件。

编辑(关于微控制器)
我同意奥林的观点(见评论),排除微控制器是短视的(奥林说“傻”)。曾经有一段时间开发微控制器很复杂,但是今天已经不复存在了。您也可以花几欧元购买一个编程接口。然后,该解决方案看起来是如此简单,以至于没有任何非控制器解决方案可以与之抗衡:您将ATTiny5(Olin的PIC10F220)放在SOT23-6中。将去耦电容器连接至电源连接,将电位计连接至ADC输入。而已!3(三个)组件。将ADC读数转换为脉冲宽度输出非常容易,甚至对于初学者来说也几乎是荒谬的。

一旦开始使用它们,您会发现微控制器通常会提供比其他IC或分立元件更简单,更灵活的解决方案。

笔记
从另一个问题中,我看到您确实使用微控制器。您为什么要在这里避免它们?


如何获得三角波?
m.Alin,2012年

1
@ m.Alin-如果您想要一个非常干净的三角形,是正确的方法。但是,尽管斜率的确是指数级的,但振荡器中的反相器输入也近似为三角形。
stevenvh 2012年

1
从本地来讲,555在这里比74HCT1G14便宜。+1 BTW。\
Standard Sandun

3
@stevenvh“如果您想要一个非常干净的三角形,这是正确的方法。” 按照您的逻辑,这是完全不能接受的。请将此包含在您非常有帮助的完整答案中。
kevlar1818 2012年

2
@pstan-如果您的规格不太高,则可以使用555电路。这远非完美:频率随占空比变化,并且控制不是线性的。所述三角形发生器 +比较器解决了这些缺点。
stevenvh 2012年

4

产生PWM信号的最简单方法是将锯齿波或三角波馈入模拟比较器的一个输入,将控制电压馈入另一个。如果不能获得纯三角波,则可以通过将方波通过RC滤波器,使滤波器的输出在大约1 / 4VDD和3 / 4VDD之间摆动,然后按比例缩放控制电压来合理地近似一个三角波。进入比较器,以便将应产生0.01%占空比的控制电压转换为滤波后的方波的最低电压,将应产生99.99%占空比的控制电压转换为滤波后的方波的最高电压方波。这将产生一个与幅度不成线性比例的脉冲宽度,但对于许多用途而言,该脉冲宽度足够接近。


1
这正是kevlar1818提出的NE555电路的功能……
Cees Meijer

2
@CeesMeijer:海报要求可变的占空比和固定的周期。我不知道使用单个555将控制电压转换为固定频率的可变占空比波的任何方法。但是,它可以很好地产生一个三角形的波,并馈入比较器中。
2012年

自从我建造这条电路已经20年了,所以我不得不查一下。确实您是对的。我使用外部触发器来获得恒定频率。不过,您可以使用第二个555。
Cees Meijer

2

我建议使用UCC3803之低压(BiCMOS)电源控制IC 。简单的R和C即可轻松设置工作频率,而电位计则可轻松实现占空比控制。它将在5V电源轨上运行。

TI UC3842数据表摘录

UCC3803与UCx84x系列PWM控制器引脚兼容。如果要进行简单的PWM,则可以使用上面的原理图,省去R1、2N2222和5k ISENSE调节电位器(只需将引脚3接地)。您可能还可以省略与误差放大器调节电位器串联的两个4.7k电阻,直接进入Vref和Gnd,或者在不需要调节的情况下使用一个明确的分压器。(您没有指定是否需要轻松更改占空比)。

该IC能够驱动大约1A的电流。(如果您的伺服电机具有PWM输入,则这是一个讨论点。)


“可能需要外部驱动器才能真正为电动机供电”。你确定吗?我一直认为PWM输入只是一个低电流信号电平。为了供电,伺服具有第三连接。
stevenvh 2012年

另外,我只记得占空比只有5%到10%。那可能是正确的供电方式。
stevenvh 2012年

很好 但是仍然需要考虑很多外部组件。
Standard Sandun

看起来更像是UEMIG:不必要的EMI发生器。:-(
stevenvh 2012年

它似乎也需要至少10V的输入。也许不是最好的选择……
stevenvh 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.