CircuitJS(原名 Falstad Circuit Simulator)是一款完全在浏览器中运行的开源电子电路仿真器,由Paul Falstad 最初开发,后由Iain Sharp 等人使用Google Web Toolkit (GWT) 技术移植到现代浏览器环境。它采用 GPL-2.0 开源协议,无需安装任何软件,打开网页即可使用。

官方在线版:https://www.falstad.com/circuit/
国内镜像:
https://lushprojects.com/circuitjs/circuitjs.html
https://www.eetree.cn/circuitjs/circuitjs.html
离线版:GitHub 下载 Electron/NW.js 封装版本,解压后双击运行
打开 CircuitJS 后,默认会加载一个 RLC 振荡电路作为示例。整个界面可分为四大区域。

文件菜单 (File)

💡 小技巧:导出为链接是 CircuitJS 最强大的分享功能。生成的 URL 包含了完整的电路数据,无需发送文件,直接复制链接即可。
编辑菜单 (Edit)

💡 查找组件:当电路复杂时,用 / 键输入元件名(如 "R1" 或 "电容"),系统会自动高亮定位该元件。
绘制菜单 (Draw)

无源元件

输入和电源类

输出和标签

有源元件
有源集成电路

逻辑门、输入和输出

数字芯片
模拟混合芯片

示波器菜单 (Scopes)
选项菜单 (Options)
电路菜单 (Circuits)
这是 CircuitJS 的宝藏功能,内置了数百个经典示例电路:
💡 学习建议:每学一个新概念,先去电路菜单找对应示例,观察波形和参数,再自己动手搭建。
基本操作
鼠标操作详解
元件右键菜单
右键点击任意元件,可看到:
编辑 (Edit) → 修改参数
删除 (Delete) → 删除元件
旋转 (Rotate) → 90° 顺时针旋转
镜像 (Flip) → 水平 / 垂直翻转
示波器 (Scope) → 添加示波器观测该点
导线绘制技巧
自动连接:当两个元件端点靠近时,会自动吸附连接。
手动绘制:在端点上按住左键,拖动到目标端点松开。
导线节点:两条导线交叉时:
有实心圆点 = 电气连接
无圆点 = 只是交叉,不连接
添加节点:在导线上双击,可添加连接点 (Junction)。
仿真控制区

当前电路参数区
当选中某个元件时,这里会显示该元件的实时参数和调节滑块:
电容 / 电感:显示当前储能(能量 = ½CV² 或 ½LI²)
电阻:显示当前功耗(P = I²R)
开关:显示当前状态 (开 / 关)
电源:显示当前输出功率

示波器基本结构
底部示波器是双踪 (或多踪) 数字存储示波器,包含:
添加信号到示波器
方法一:右键点击电路中的导线或节点 → 示波器 → 添加示波器
方法二:使用示波器探头元件(绘制 → 输入和电源 → 添加示波器),将其连接到要观测的点
示波器设置
示波器高级功能
按下快捷键后,光标变为 + 十字线,在画布上按住左键拖动即可放置元件。
目标:熟悉元件放置、连线、参数修改和仿真运行。
操作步骤
清空画布:文件 → 创建新的空白电路(或 电路 → 空白的电路)
放置电源:按 V 键,在画布上拖动放置一个直流电压源。注意红色端为正极 (+),灰色端为负极 (-)
放置电阻:按 R 键放置一个电阻,作为限流电阻
放置 LED:按 l(小写 L)键放置一个 LED。LED 是单向导电器件,鼠标悬停时会显示箭头方向,箭头指向允许电流的方向
放置接地:按 G 键放置接地符号 (GND),作为电路参考零电位
连线:
电源 (+) → 电阻一端
电阻另一端 → LED 阳极(箭头尾巴端 / 宽边)
LED 阴极(箭头尖端)→ 电源 (-)
电源 (-) → GND(可选,但建议养成接地习惯)
连线方法:在元件端点上按下左键,拖动到目标端点松开
修改参数:
双击电源,设置电压为 5V
双击电阻,设置阻值为 220Ω(直接输入 220 或 220ohm)
LED 默认参数即可
运行仿真:点击左上角的红色运行按钮(或按 空格),按钮变绿表示运行中
理论解释
ED 正向导通时具有约 2V 的导通压降。根据欧姆定律:
这是一个安全的 LED 工作电流。如果电阻太小(如 22Ω ),电流会过大导致 LED "烧毁"(仿真中 LED 会变红闪烁提示过流)。
故障排查
LED 不亮:检查 LED 方向是否接反;检查是否形成了闭合回路;检查电源电压是否过低
LED 显示红色过流:增大限流电阻阻值
目标:使用虚拟仪表测量,验证
电路搭建
放置直流电压源 (V),设置电压为 10V
放置电阻 (R),设置阻值为 1kΩ
放置电流表(绘制 → 输入和电源 → 添加电流表),串联在回路中
放置电压表(绘制 → 输入和电源 → 添加电压表),并联在电阻两端
连接成闭合回路,并接地
测量与验证
仿真值与理论值误差约 0.4%,这是因为电流表和电压表本身有微小内阻。
进阶:观察功率
在 选项 菜单中勾选 "显示功率",电阻上会显示消耗的功率
目标:理解电容的频率特性,学会使用示波器观察波形。
理论基础
RC 低通滤波器允许低频信号通过,衰减高频信号。其截止频率 (-3dB 点) 为:
当 R=1kΩ ,C=100nF 时:
输入频率 f≪fc :信号几乎无衰减通过
输入频率 f=fc :输出幅度衰减为输入的 1/2≈0.707 (-3dB)
输入频率 f≫fc :信号被大幅衰减,衰减斜率约 -20dB/十倍频
电路搭建
放置交流电压源(绘制 → 输入和电源 → 添加交流电压源)
放置电阻
放置电容
接地
连接成串联结构:电源 (+) → 电阻 → 电容 → GND
从电阻和电容的连接点引出输出端
示波器设置
在电阻与电容连接点处右键 → 示波器 → 添加示波器,选择 "自由的示波器" 或固定在下方的示波器
同样给电源正极也添加一个示波器通道,用于对比输入输出
双击示波器窗口,或在底部波形区点击齿轮图标,设置:
幅值:
耦合:DC
仿真观察
双击交流电压源,设置不同频率,观察输出幅度变化:
在 处,输出恰好是输入的 0.707 倍,相位滞后 45°,与理论完全吻合。
可视化理解
运行仿真时观察画布:
绿色 / 红色亮度:表示该点电压高低。高频时电容后端 (输出端) 颜色很淡,说明电压幅度小
黄色电流点:高频时电流明显减小
目标:理解谐振现象,观察阻抗的频率特性。
理论基础
RLC 串联电路的阻抗为:
当感抗等于容抗时发生谐振:
此时电路呈纯阻性,阻抗最小,电流最大。
参数设计
取
搭建与观测
串联连接:电源 → 电阻 → 电感 → 电容 → GND
在电阻两端添加示波器(观察电流,因为 )
在电容两端添加示波器(观察输出电压)
设置交流电源为 1V 幅度,扫描频率从 到
现象:
在 时,电阻两端电压(代表电流)达到最大
电容两端电压可远大于电源电压(电压谐振),这是谐振电路的特征
目标:使用集成电路构建一个实际的方波发生器。
理论基础
555 定时器构成的无稳态多谐振荡器 (Astable Multivibrator) 输出方波,频率由外部 RC 决定:
占空比:
搭建步骤
从 绘制 → 芯片 → 添加 555 定时器 放置 555 芯片
按典型电路连接:
VCC (Pin 8) → 5V 电源
GND (Pin 1) → 接地
Pin 7 (Discharge) 经 接 VCC,经 接 Pin 6 (Threshold)
Pin 6 和 Pin 2 (Trigger) 短接,经电容 C 接地
Pin 3 (Output) 作为方波输出
设置
在输出端接示波器
计算与验证
示波器应显示约 6.9Hz 的方波,高电平约 5V,低电平约 0V。
目标:验证基本逻辑运算,理解数字电路仿真。
电路搭建
放置两个 Logic Input(绘制 → 逻辑门 → 添加逻辑输入,快捷键 I)
放置一个 AND Gate(绘制 → 逻辑门 → 添加与门)
放置一个 Logic Output(绘制 → 逻辑门 → 添加逻辑输出)
连接:Input A → AND 输入 1,Input B → AND 输入 2,AND 输出 → Output
真值表验证
点击逻辑输入可切换 0/1 状态(蓝色 = 1,暗色 = 0),观察输出:
可用同样方法验证 OR、NOT、XOR、NAND 等门。
当电路复杂时,可将常用模块封装成子电路重复使用。
创建子电路
搭建好要封装的电路模块
添加 输入 / 输出端口(绘制 → 输出和标签 → 添加输入 / 输出)
选中整个模块(框选)
文件 → 创建分支电路 (子电路)
命名并保存
使用子电路
绘制 → 绘制分支电路
选择已保存的子电路
像普通元件一样放置到主电路中
自动显示输入 / 输出引脚,可连接使用
应用场景:将常用的电源模块、放大器模块、滤波器模块封装,提高设计效率。
⚠️ 注意:子电路保存在浏览器本地存储中,清除缓存会丢失。
CircuitJS 支持对某个元件进行参数扫描,观察电路特性变化:
放置一个电位器(可变电阻)或选中某个元件
右键 → 参数扫描(部分版本支持)
设置扫描范围和步进,观察示波器波形或电压表读数的变化趋势
对于大型电路:
隐藏无关部分:编辑 → 隐藏 暂时不需要关注的电路
关闭视觉效果:在选项中取消勾选 "显示电流"、"显示功率#34;显示功率&#
调整仿真精度:电路 → 仿真选项 中放宽精度要求
使用 Fast Simulation:对稳定状态分析可开启快速模式
如果你是初学者,建议按以下顺序学习:
第 1-2 天:熟悉界面,完成 LED 点亮、欧姆定律验证
第 3-5 天:RC/RL 电路,理解充放电过程,学会用示波器
第 6-10 天:RLC 谐振、滤波器设计、运放基础电路(反相 / 同相放大)
第 11-15 天:半导体器件(二极管整流、三极管放大)、555 电路
第 16-20 天:数字逻辑、组合逻辑电路、时序电路(触发器、计数器)
持续:研究内置示例电路(电路菜单中有数百个),阅读每个示例的说明文字
B 站教程合集
抖音 / 西瓜视频教程合集
微信视频号 / 配套教程
CircuitJS 是一款将 直观性 和 教育性 做到极致的电路仿真工具。它的核心优势不在于替代专业 SPICE 工具(如 LTspice、Multisim)进行高精度工业级仿真,而在于让电路"活"起来——你可以实时看到电子在导线中流动,看到电容充放电的渐变过程,看到滤波器如何"雕刻"信号波形。
对于理论学习,它提供了即时验证;对于电路设计,它提供了快速原型;对于教学演示,它提供了无可替代的视觉效果。掌握 CircuitJS,你就拥有了一个随时待命的虚拟电子实验室。
修改:新增绘制界面功能描述。
增加:教程基本描述章节。