基于CD4093施密特触发器与非门构建红外发射器:从数字振荡到ASK调制

发布时间:2026/5/26 20:23:05

基于CD4093施密特触发器与非门构建红外发射器:从数字振荡到ASK调制 1. 项目概述为什么选择CD4093来制作红外发射器如果你玩过一些简单的电子制作比如用NE555定时器来产生脉冲信号驱动红外LED那你可能会觉得那已经够简单了。但当我翻看一些老派的电子杂志比如Elektor我发现很多读者尤其是初学者他们渴望的不仅仅是“能工作”而是“能彻底理解”。一个用NE556双定时器搭建的调制电路虽然经典但对于刚接触数字电路的人来说内部比较器、触发器的工作机制像是一个黑箱。所以我决定回归基础用一片在数字电路入门课上最常见的芯片——CD4093来打造一个极简的红外信号发射器。CD4093是一片CMOS数字集成电路内部集成了四个独立的“与非门”NAND Gate。但它的妙处在于每个与非门的输入都集成了施密特触发器Schmitt Trigger。这个特性至关重要施密特触发器具有滞回电压这意味着它对输入信号的抗噪声能力极强输入电压在高低电平切换时不会因为微小的抖动而产生振荡输出。这让我们用最简单的RC电阻-电容网络就能搭建出非常稳定的振荡器而无需担心普通逻辑门因阈值电压点单一而产生的振荡不稳定问题。换句话说用CD4093你可以用最直观的方式——“一个电阻、一个电容加一个逻辑门”——来理解振荡是如何产生的这是用定时器芯片无法直接提供的学习体验。这个项目的核心目标有两个第一是功能性的制作一个能产生约40kHz载波并能被低频信号调制的红外发射器用于模拟常见的红外遥控信号。第二是教育性的通过一个完整的、可工作的项目引导初学者踏入数字电路和模拟调制的大门。整个电路成本极低所有元件都是通孔插件非常适合在面包板上搭建实验。你会发现理解了这片小小的4093你就掌握了数字振荡、信号调制和缓冲驱动的基本概念这些是通往更复杂数字系统如单片机的坚实基石。2. 核心思路与CD4093芯片深度解析2.1 从与非门到振荡器核心原理拆解CD4093的核心是四个二输入施密特触发与非门。在数字电路中当我们将一个与非门的两个输入端短接在一起它就变成了一个“非门”反相器。一个非门的输出总是输入的相反状态。那么如何让一个反相器自己振荡起来呢关键在于引入延时和反馈。想象一下这个场景反相器输入为低电平时输出立刻跳变为高电平。如果我们通过一个电阻和电容组成的网络将这个“瞬间”的高电平输出缓慢地“搬运”回输入端会发生什么电容开始通过电阻充电输入端的电压会从低电平逐渐升高。当这个电压超过施密特触发器的高电平阈值Vth时反相器认为输入变成了高电平于是它的输出立刻跳变为低电平。接着输出端的低电平又会通过同样的RC网络使电容放电输入端电压从高逐渐下降。当电压低于施密特触发器的低电平阈值Vth-时反相器再次翻转输出变高……如此周而复始一个自激振荡器就诞生了。这就是我们用CD4093中的一个门电路例如U1A搭建核心载波振荡器如40kHz的原理。其振荡频率公式近似为f ≈ 1 / (0.8 * R * C)。这里的0.8是一个经验系数考虑了CMOS施密特触发器的典型阈值比例。选择RC的值时需要计算例如要产生约40kHz0.000025秒周期的载波假设我们选择一个100pF的电容C那么电阻R ≈ 1 / (0.8 * 40000 * 0.0000000001) ≈ 31.25kΩ。我们可以用一个33kΩ的固定电阻和一个10kΩ的可调电位器串联这样就能精细调节频率使其准确落在接收头最敏感的38kHz或40kHz频点附近。注意这个公式是近似的实际频率会受到电源电压、芯片个体差异以及施密特触发器阈值离散性的影响。因此电路中的可调电位器至关重要它允许我们通过示波器或实际遥控测试来“校准”频率。2.2 为何是CD4093而非NE555/556这是一个关键的设计选择。NE555无疑是经典的定时器但它本质上是一个模拟-数字混合电路。对于初学者理解其内部两个比较器、一个RS触发器和放电管如何协同工作门槛相对较高。它的定时周期计算1.44/((R12*R2)*C)也略显复杂。而CD4093的方案则截然不同直观性振荡原理直接源于逻辑门和RC延时反馈概念上更贴近数字电路的基础教学易于理解和推导。灵活性一片芯片有四个独立的门我们可以清晰地划分功能模块一个门做高频载波振荡U1A一个门做低频调制信号振荡U1B一个门担任调制器U1C最后一个门作为输出缓冲U1D。电路图一目了然信号流向清晰。抗干扰性内置的施密特触发器让RC振荡器起振可靠工作稳定不易受电源噪声或元件参数微小变化的影响。教学价值通过这个项目初学者能亲手实践如何用基础门电路构建功能模块这是学习更复杂可编程逻辑如CPLD、FPGA的绝佳前奏。3. 电路设计与各模块详解整个发射器电路可以分为四个功能明确的模块载波振荡器、调制信号发生器、调制器数字与门以及输出驱动级。我们将逐一拆解并给出具体的元件选型建议和参数计算。3.1 模块一载波振荡器U1A这是产生约40kHz高频信号的核心。我们使用CD4093的第一个与非门U1A将其两个输入端并联作为反相器使用。电路连接U1A的输入引脚1、2脚连接在一起接到RC反馈网络的节点上。输出引脚3脚一方面连接到后续调制器另一方面通过一个定时电阻R1和一个定时电容C1反馈回输入端。元件选型与计算电容C1选择100pF的陶瓷电容。选择这个量级的原因是为了能够通过可调电阻将频率精确调整到40kHz附近。电容值太小如10pF会受寄生电容影响大不稳定太大如1nF则需要电阻值很小功耗会增加。电阻R1由一个固定电阻例如33kΩ和一个可调电位器例如10kΩ串联组成。总电阻调节范围约为33kΩ至43kΩ。根据公式计算中心值38kΩ时频率f ≈ 1/(0.8 * 38000 * 1e-10) ≈ 32.9kHz。通过调节电位器我们可以覆盖30kHz到40kHz以上的范围确保能找到与接收头匹配的最佳频点。实操要点在面包板上搭建时尽量使R1和C1的引线短接特别是C1以减少分布电容对高频振荡的影响。用示波器探头测量U1A的输出引脚3脚应能看到一个近似方波频率可通过电位器平滑调节。3.2 模块二调制信号发生器U1B这个模块产生一个低频的方波信号用来模拟要发送的数据或编码。例如一个几赫兹到几百赫兹的方波可以模拟红外遥控的“按键按下”和“松开”状态。我们使用第二个门U1B配置与U1A完全相同只是RC值大得多。电路连接与U1A完全对称。元件选型与计算电阻R2选择1MΩ的固定电阻。对于低频振荡电阻值通常较大以减少功耗。电容C2选择100nF0.1μF的涤纶或陶瓷电容。频率计算f ≈ 1/(0.8 * 1e6 * 1e-7) ≈ 12.5Hz。这意味着这个低频振荡器会产生一个周期约0.08秒的方波适合肉眼观察其调制效果LED会明显闪烁。如果你想模拟更复杂的编码可以用一个微控制器如Arduino的I/O口直接替代这个振荡器输出特定的编码波形如NEC编码。功能延伸U1B的输出引脚4就是我们的调制信号。在测试时你可以用另一个LED非红外连接到这个输出通过观察其闪烁来直观了解调制信号的节奏。3.3 模块三调制器U1C与数字幅度调制ASK这是将数据低频信号“加载”到载波上的关键一步。我们使用第三个门U1C作为一个受控的门电路。CD4093是与非门其逻辑是“当所有输入为高时输出为低否则输出为高”。我们可以巧妙地利用它实现“数字幅度调制”即幅移键控ASK。电路连接将载波信号来自U1A引脚3连接到U1C的一个输入端如引脚5。将调制信号来自U1B引脚4连接到U1C的另一个输入端引脚6。输出为引脚7。工作原理当调制信号为高电平时U1C的两个输入端载波和调制信号的状态完全由载波决定。此时U1C相当于一个反相器将40kHz的载波方波反相后输出。因此输出端是连续的40kHz方波。当调制信号为低电平时根据与非门逻辑只要有一个输入为低输出就固定为高电平。此时无论载波如何变化U1C的输出被“封锁”在恒定的高电平。结果最终从U1C引脚7输出的波形是在调制信号为高电平期间有40kHz的方波脉冲群输出在调制信号为低电平期间输出为平稳的高电平。这正是一串被低频方波“门控”了的40kHz载波脉冲也就是最简单的ASK调制信号。红外接收头内部有一个带通滤波器中心频率通常为38kHz它只对这个频率范围内的脉冲有响应。因此只有载波脉冲群能被接收头解调为低电平而恒定的高电平无载波则被解调为高电平从而还原出调制信号。3.4 模块四输出缓冲与驱动级U1D及晶体管CMOS逻辑门如CD4093的输出电流能力很弱通常只有几毫安不足以直接驱动红外LED发出足够强度的、能被一定距离外接收的光信号。因此我们必须增加一个电流驱动级。缓冲门U1D首先使用第四个门U1D。将其两个输入端短接作为反相缓冲器。将调制后的信号U1C引脚7接入U1D的输入引脚8、9从引脚10输出。这个缓冲级有两个作用一是对信号进行整形确保边沿陡峭二是提供一定的隔离避免后级功率电路影响前级脆弱的振荡电路。晶体管驱动电路这是提升驱动能力的关键。我们使用一个通用的NPN小信号晶体管如2N2222、BC547或S8050。连接方法晶体管基极通过一个限流电阻R3例如220Ω至1kΩ连接到U1D的输出引脚10。发射极接地。集电极连接红外LED的阴极红外LED的阳极通过一个限流电阻R4连接到正电源如5V。工作原理当U1D输出高电平时晶体管基极获得电流而饱和导通相当于集电极和发射极之间短路此时红外LED两端获得电压而点亮。当U1D输出低电平时晶体管截止红外LED熄灭。元件参数计算基极电阻R3用于限制流入晶体管基极的电流。假设U1D输出高电平为5V晶体管基-射极导通电压Vbe约为0.7V希望基极电流Ib为5mA左右足以使通用小功率晶体管饱和则 R3 (5V - 0.7V) / 0.005A ≈ 860Ω选用820Ω或1kΩ的标准值即可。LED限流电阻R4这是决定红外LED发射功率的关键。红外LED的正向压降Vf通常在1.2V至1.6V之间。假设电源电压Vcc5VVf1.4V希望LED工作电流If为100mA这是一个较强的驱动电流适合较长距离传输则 R4 (Vcc - Vf - Vce_sat) / If。其中Vce_sat是晶体管饱和压降约0.2V。计算得 R4 (5 - 1.4 - 0.2) / 0.1 34Ω。我们可以选择一个33Ω的电阻此时实际电流约为103mA。务必注意电阻的功率要足够P I² * R 0.1² * 33 0.33W因此应选择至少0.5W的电阻。状态指示LED为了在调试时直观看到电路是否在工作可以在U1D的输出端或晶体管驱动前并联一个普通的红色LED和一个限流电阻如330Ω到地。当有调制脉冲群时这个LED会快速闪烁由于频率高人眼可能看到的是持续亮但略有闪烁或变暗当调制信号为低电平时此LED常亮。这是一个非常实用的调试辅助手段。4. 完整电路搭建、调试与实测4.1 物料清单与准备工作在开始焊接或在面包板上插接之前请准备好以下元件元件符号参数/型号数量备注U1CD4093BE (或HCF4093, MC14093)114引脚DIP封装CMOS四路施密特触发与非门R133kΩ 电阻 (1/4W)1载波振荡定时电阻RV110kΩ 可调电位器 (卧式或立式)1用于精确调节载波频率C1100pF 陶瓷电容 (NPO/C0G材质为佳)1载波振荡定时电容稳定性要求高R21MΩ 电阻 (1/4W)1调制信号振荡定时电阻C2100nF (0.1μF) 薄膜或陶瓷电容1调制信号振荡定时电容R3820Ω 或 1kΩ 电阻 (1/4W)1晶体管基极限流电阻Q1NPN晶体管如2N2222A, BC547, S80501TO-92封装IR LED红外发射二极管如TSAL62001注意发射角度和波长通常940nmD2红色或绿色普通LED (3mm或5mm)1状态指示R433Ω 电阻 (1/2W 或 1W)1重要根据电流选功率见上文计算R5330Ω 电阻 (1/4W)1状态指示LED限流电阻-面包板或万用板1用于搭建电路-连接线若干杜邦线或单芯线-电源1套5V直流电源可用USB接口或电池盒实操心得在面包板上搭建时建议遵循“从电源开始模块化搭建”的原则。首先连接好电源和地线总线。然后依次搭建载波振荡器U1A、R1、RV1、C1用示波器确认其振荡后再搭建调制信号发生器U1B、R2、C2最后连接调制器和驱动级。这样分步调试问题容易定位。4.2 分步调试流程与关键测试点调试是项目成功的关键遵循以下步骤可以系统化地排查问题电源与芯片检查接通5V电源先不接任何外围元件测量CD4093的Vcc引脚14和GND引脚7之间电压是否为稳定的5V。用万用表测量芯片静态电流应在微安级别如果达到毫安级甚至更高可能芯片已损坏或短路。载波振荡器调试搭建好U1A、R1、RV1、C1的回路。将示波器探头地线夹在电路地探头接在U1A的输出端引脚3。打开电源示波器应显示一个近似方波的波形。调节电位器RV1观察频率变化。目标是将频率调整到38kHz或40kHz根据你的红外接收头标准。如果没有示波器可以尝试用智能手机摄像头辅助将红外LED对准手机摄像头大多数手机CMOS传感器能感应到近红外光在黑暗环境中调节电位器直到在手机屏幕上看到红外LED发出微弱的、高频闪烁的白点这通常意味着频率在几十kHz范围。调制信号发生器调试搭建好U1B、R2、C2的回路。将示波器探头接在U1B输出端引脚4应能看到一个频率约十几赫兹的方波。或者将一个普通LED和330Ω电阻串联后接在引脚4和地之间应能看到LED以大约每秒十几次的频率清晰闪烁。调制器功能验证连接U1C将U1A引脚3接至U1C引脚5U1B引脚4接至U1C引脚6。将示波器探头接在U1C输出端引脚7。此时应能看到一个被“斩波”的40kHz信号在U1B输出高电平期间示波器显示密集的40kHz方波在U1B输出低电平期间示波器显示一条高电平直线。这证明ASK调制成功。驱动级与最终输出连接U1D作为缓冲然后连接晶体管驱动电路和红外LED。在U1D输出引脚10或晶体管基极可以同时并联状态指示LEDD2与R5。此时状态指示LED应呈现与调制信号同步的明暗变化由于视觉暂留高频载波期间可能看起来是常亮但稍暗。红外LED无法直接用肉眼观察但可以用数码相机或手机摄像头观察其是否发出在调制信号高电平时微弱的白光。最终测试找一个通用的38kHz红外接收头如VS1838B、HS0038等将其Vcc接5VGND接地OUT接一个LED和电阻到5V或者直接接示波器。将你的发射器红外LED对准接收头距离几十厘米。当发射器工作时接收头的输出端应该输出与你的低频调制信号U1B产生的方波反相的电平信号。即发射器“发信号”载波脉冲群时接收头OUT输出低电平发射器“不发信号”载波被封锁时接收头OUT输出高电平。4.3 进阶玩法用单片机替代低频振荡器一旦基础电路调试成功你就可以进行更有趣的升级用Arduino、ESP8266或其他任何单片机来替代U1B及其RC网络实现真正的红外遥控编码发射。连接方法断开U1B与U1C的连接即U1C的引脚6不再接U1B引脚4。将单片机的一个GPIO引脚如Arduino的D2通过一个约1kΩ的电阻连接到U1C的引脚6。将单片机和发射器电路共地。编程实现在单片机中编写程序模拟常见的红外协议如NEC协议。以NEC协议为例它使用38kHz载波通过脉冲间隔编码来代表“0”和“1”。你需要做的是在需要发射载波逻辑“0”或引导码的脉冲部分时将GPIO引脚设置为高电平。在需要关闭载波逻辑“1”或间隔部分时将GPIO引脚设置为低电平。精确控制高低电平的持续时间NEC协议中引导码高电平9ms低电平4.5ms逻辑“0”的高电平560μs低电平560μs逻辑“1”的高电平560μs低电平1690μs。优势这样一来你的这个CD4093发射器就从一个简单的演示装置升级为了一个通用的、可由程序控制的红外信号发射器。你可以用它来控制电视、空调、风扇等任何支持红外遥控的设备只要你知道其协议编码。5. 常见问题、故障排查与优化技巧在实际制作中你可能会遇到一些问题。下面是一个快速排查指南现象可能原因排查步骤与解决方案电路完全无反应指示灯不亮1. 电源未接通或接反。2. 芯片损坏或插反。3. 存在短路。1. 检查电源电压确认极性。2. 断电检查芯片方向缺口标记。测量芯片Vcc与GND间电阻排除短路。3. 目视检查所有连线特别是电源和地线。状态指示灯常亮或不亮但不闪烁1. 调制信号发生器U1B未起振。2. 载波振荡器U1A未起振导致调制器输出恒定。3. 连接错误。1. 用示波器或万用表交流档检查U1B引脚4是否有电压变化。检查R2、C2值是否正确连接是否可靠。2. 检查U1A部分特别是电位器接触是否良好C1是否损坏。尝试临时将C1换为更大值如1nF看是否产生低频振荡以便观察。3. 对照电路图检查U1B输出是否连接到U1C的正确输入端。红外信号发射距离非常近10cm1. 红外LED驱动电流不足。2. 载波频率偏离接收头中心频率太多。3. 红外LED或接收头方向不对或前方有遮挡。1.重点检查R4计算并确保红外LED电流在50-100mA。R4阻值是否太大功率是否足够导致发热阻值变化可尝试暂时减小R4到15-22Ω短时间测试避免烧毁LED。2. 用示波器仔细调节电位器RV1将载波频率精确对准38kHz。无示波器时在接收头输出接一个LED慢慢调节RV1直到控制距离最远。3. 确保红外LED正对接收头且中间无尘埃及强光干扰特别是日光灯和太阳光。接收头输出信号混乱不受控制1. 环境光干扰强烈。2. 载波波形畸变严重非方波。3. 电源噪声大。1. 在较暗环境中测试或为红外LED和接收头加装遮光罩。2. 检查U1A的输出波形应为干净方波。如果边沿缓慢或波形畸变可能是C1质量不佳或负载过重。在U1A输出后先经过U1D缓冲再送调制器。3. 在芯片的Vcc和GND引脚之间就近并联一个100nF和一个10μF的电容以滤除电源噪声。调节电位器时频率变化不线性或不起振1. 电位器接触不良。2. 电容C1漏电或损坏。3. 电源电压过低CMOS芯片在低于3V时可能工作异常。1. 更换电位器或直接用固定电阻替代测试。2. 更换C1优先选用NPO/C0G材质的陶瓷电容其温度稳定性和精度更好。3. 确保电源电压在4.5V-5.5V之间。优化技巧与心得分享追求更远距离除了确保足够的驱动电流还可以尝试将红外LED串联使用。两个相同的红外LED串联后所需电压加倍但电流相同。你需要重新计算R4的值R4 (Vcc - 2Vf - Vce_sat) / If。例如Vcc5V Vf1.4V22.8V If100mA则R4 ≈ (5-2.8-0.2)/0.1 20Ω。同时使用透镜或反光杯聚光能显著增加有效发射距离。提高稳定性在面包板上搭建高频40kHz电路容易受分布电容和电感影响。如果发现波形不好或频率漂移可以考虑将核心的振荡器部分U1A、R1、RV1、C1焊接在一块小万用板上再用排针连接到面包板的其他部分。功耗考虑本电路在发射时调制信号高电平期间红外LED消耗主要电流。如果用于电池供电设备可以考虑降低驱动电流如调整R4使If20-50mA并优化调制编码让发射脉冲尽可能短以节省电量。理解“数字AM”我们这个电路实现的调制方式非常直观地展示了幅移键控ASK的概念。载波的存在与否代表了数字信号的“1”和“0”在本例中有载波代表调制信号高电平无载波代表低电平。通过用单片机生成复杂的编码序列来替代简单的方波你就能发射任何你想要的红外指令了。这个基于CD4093的红外发射器项目其价值远不止于制作一个能用的遥控器。它像一把钥匙帮你打开了理解数字振荡、逻辑门应用和基础调制技术的大门。相比于面对一个封装好的红外发射模块亲手从门电路开始搭建一切会让你对“信号”如何产生、如何被操控、如何被发送有了具象而深刻的认识。当你看到通过调节一个电阻就能改变频率通过改变一个输入电平就能控制载波的输出与否时那些教科书上的概念瞬间就变得生动起来。这正是模拟与数字电路结合的魅力所在——简单却蕴含着坚实的基础原理。

相关新闻