凯发K8官网|迪乐馆棋牌|基于环形振荡器、555定时器和Arduino的数字方波
之前◈ღ,我们介绍了设计方波振荡器的概念◈ღ,即运算放大器(op-amp)和基于晶体管的非稳态多谐振荡器的模拟实现◈ღ。在本文中◈ღ,我们将研究实现方波振荡器的数字方法◈ღ,同时讨论其优点和局限性◈ღ。
环形振荡器具有相当简单的架构◈ღ,它利用一串反相器◈ღ,最终输出馈入第一个输入◈ღ,形成一个环◈ღ,如图1所示◈ღ。
不仅架构简单◈ღ,电路的操作也很简单◈ღ。启动时◈ღ,假设INV1从逻辑0变为逻辑1◈ღ。随着该逆变器的输出开始上升◈ღ,一旦达到INV2的触发点◈ღ,该输出将开始降至逻辑0◈ღ。这种连锁反应持续到最终的逆变器INVN迪乐馆棋牌◈ღ,然后输出反馈到开始以维持反应◈ღ。总的来说◈ღ,这种反应会产生持续的振荡◈ღ,假设所有逆变器的上升/下降时间相同◈ღ,将产生方波输出◈ღ。
为了使电路按所述运行◈ღ,环中的逆变器数量(图1中用N表示)必须是奇数◈ღ。这一要求是必要的◈ღ,因为如图1所示◈ღ,任何反相器INVX的输出(其中X是偶数)都将具有与INV1的输出互补的输出◈ღ。如果将该值反馈到INV1迪乐馆棋牌◈ღ,则不会有变化◈ღ,因此也不会有振荡◈ღ。虽然在这个简单的例子中◈ღ,我们只使用反相器凯发K8官网◈ღ,但您可以在整个电路中使用任何逻辑门◈ღ。然而◈ღ,在这个环形例子中◈ღ,必须有奇数个反相级才能振荡◈ღ。
现在◈ღ,你可能会问◈ღ:电路的哪些方面决定了工作频率?基本上◈ღ,每个逆变器的固有延迟(td)和级数(N)根据以下方程式决定◈ღ:
由于td通常很小迪乐馆棋牌◈ღ,并且希望将N最小化◈ღ,因此频率通常很高◈ღ,大约为数百MHz甚至GHz◈ღ。对于低速应用或精确的频率控制◈ღ,用户通常必须向每个逆变器的输出端添加负载◈ღ,最简单的是通过RC电路◈ღ,如图2所示◈ღ。
接下来◈ღ,假设RCtd◈ღ,我们可以说振荡频率完全取决于RC时间常数和级数◈ღ。
至于优点◈ღ,这种设计的简单性使其对高速振荡器设计具有吸引力◈ღ;然而◈ღ,对于较低的频率◈ღ,很难控制这些◈ღ。另一个缺点是◈ღ,由于高切换速率◈ღ,这种架构通常功耗很大凯发K8官网◈ღ。
555定时器有很多种◈ღ,由几家公司开发◈ღ,但我们将重点介绍德州仪器的LM555◈ღ。数据表第7.4.2节说明了定时器的不稳定操作◈ღ,正如我们从上一篇文章中所知◈ღ,这是我们感兴趣的◈ღ。实现的示意图如图3所示◈ღ。
这里◈ღ,电容器C由电阻器RA和RB充电◈ღ。一旦达到上触发点(在定时器的情况下◈ღ,VCC的⅔)◈ღ,C就会通过RB放电至VCC的85%◈ღ。此时◈ღ,电容器再次开始充电◈ღ,这种行为会无限期地持续下去◈ღ。由此◈ღ,我们可以通过以下方程获得充电和放电时间以及振荡周期◈ღ:
在这里◈ღ,我们可以看到◈ღ,我们不仅可以控制振荡频率◈ღ,还可以控制输出占空比◈ღ。然而◈ღ,这些不能短于tfall◈ღ,这意味着占空比必须大于50%◈ღ,但如果RBRA◈ღ,则可以接近方波占空比凯发K8官网◈ღ。
这种实现的优点是它简单◈ღ,需要最少的硬件◈ღ,也是低速振荡器的稳定可靠的解决方案◈ღ。至于限制◈ღ,这种设计不适用于需要小于50%的占空比或需要高速的情况◈ღ。
最后凯发K8官网◈ღ,我们将讨论通过Arduino实现振荡器◈ღ。在我们的例子中凯发K8官网◈ღ,我们将看看Arduino UNO R3◈ღ。该板的引脚如图4所示◈ღ。
对于我们的生成器◈ღ,我们将使用Arduino UNO的数字I/O引脚之一◈ღ,特别是D7◈ღ。实现此解决方案不需要外部硬件◈ღ,因为这都可以通过下面显示的Arduino程序定义◈ღ:
在上面的代码片段中◈ღ,我们声明了三个全局变量◈ღ,允许用户设置频率和占空比◈ღ。在这个例子中◈ღ,我们可以创建一个占空比为50%的100 Hz输出◈ღ,从而产生方波◈ღ。然后◈ღ,我们可以使用“pinMode”函数在void设置块中初始化数字输出引脚◈ღ。接下来◈ღ,我们可以进入一个连续循环◈ღ,将D7设置为高◈ღ,并将输出保持在该值一段时间◈ღ,该时间等于占空比乘以周期◈ღ。最后◈ღ,我们可以将输出设置为逻辑低电平迪乐馆棋牌◈ღ,并在剩余的时间段内保持信号不变迪乐馆棋牌凯发K8官网◈ღ。因此◈ღ,一旦Arduino打开◈ღ,这个循环将无限期地继续下去◈ღ。
正如您所看到的◈ღ,软件实现允许在零外部硬件的情况下具有高度的灵活性◈ღ。虽然这相当简单◈ღ,但我们仅限于Arduino的带宽◈ღ,除非我们使用外部振荡器来推动更高的频率◈ღ,如果需要高速振荡器的话◈ღ。凯发K8旗舰厅◈ღ,晶片产业AG凯发K8真人娱乐◈ღ,凯发k8国际手机◈ღ,k8凯发◈ღ。